kdiff3-0.9.97/0000755000175100001440000000000012011572734012322 5ustar joachimuserskdiff3-0.9.97/po/0000755000175100001440000000000012010303403012720 5ustar joachimuserskdiff3-0.9.97/po/pt/0000755000175100001440000000000011626145654013373 5ustar joachimuserskdiff3-0.9.97/po/pt/kdiff3plugin.po0000644000175100001440000000613611626145612016320 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-02 09:08+0100\n" "Last-Translator: José Nuno Coelho Pires \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-POFile-SpellExtra: Eibl Joachim KDiff\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Comparar com %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Reunir com %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Gravar '%1' para a posteridade" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Reunião a 3-níveis com a base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Comparar com ..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Limpar a lista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Comparar" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparação a 3 níveis" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Acerca do 'plugin' de menu do KDiff3 ..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "'Plugin' de Menu do KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Página Web do KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Para usar a extensão do menu de contexto:\n" "Para uma comparação simples de dois ficheiros seleccionados, escolha a opção " "\"Comparar\".\n" "Se o outro ficheiro estiver noutro local qualquer, pode \"Gravar\" o " "primeiro ficheiro posteriormente, para que depois apareça no submenu " "\"Comparar Com ...\". Aí, poderá usar a opção \"Comparar Com\" no segundo " "ficheiro.\n" "Para uma reunião a 3 níveis, primeiro pode \"Gravar\" o ficheiro de base, " "depois a ramificação a reunir e depois escolha a opção \"junção a 3 níveis " "com a base\" sobre a ramificação que servirá de destino.\n" "O mesmo se aplica à comparação e reunião de pastas." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Acerca do 'Plugin' de Menu do KDiff3" kdiff3-0.9.97/po/pt/CMakeLists.txt0000644000175100001440000000016311626145612016125 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(pt ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/pt/kdiff3fileitemactionplugin.po0000644000175100001440000000605011626145612021230 0ustar joachimusersmsgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 10:29+0100\n" "Last-Translator: José Nuno Coelho Pires \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-POFile-SpellExtra: Eibl Joachim KDiff\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Comparar com %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Reunir com %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Gravar '%1' para a posteridade" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Reunião a 3-níveis com a base" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Comparar com ..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Limpar a lista" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Comparar" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Comparação a 3 níveis" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Acerca do 'plugin' de menu do KDiff3 ..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "'Plugin' de Acção sobre Itens de Ficheiros: Copyright (C) 2011 Joachim Eibl\n" "Página Web do KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Usar a extensão do menu de contexto:\n" "Para uma comparação simples entre dois ficheiros seleccionados, escolha " "\"Comparar\".\n" "Se o outro ficheiro estiver noutro lado qualquer, pode \"Gravar\" o primeiro " "ficheiro para a posteridade. Irá depois aparecer no submenu \"Comparar " "Com ...\". Depois use o \"Comparar Com\" no segundo ficheiro.\n" "Para uma junção a 3-níveis, pode \"Gravar\" o ficheiro de base, depois a " "ramificação a reunir e escolher \"Reunião 3-níveis com a base\" na outra " "ramificação que será usada como destino.\n" "O mesmo também se aplica à comparação e junção de pastas." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Acerca do 'Plugin' de Acção sobre Itens de Ficheiros do KDiff3" kdiff3-0.9.97/po/pt/kdiff3.po0000644000175100001440000025034111626145612015100 0ustar joachimusersmsgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 10:26+0100\n" "Last-Translator: Pedro Morais \n" "Language-Team: pt \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-POFile-IgnoreConsistency: White\n" "X-POFile-IgnoreConsistency: Diff Settings\n" "X-POFile-SpellExtra: LF return Dif carriage ms diff CR KDiff cvsignore\n" "X-POFile-SpellExtra: orig Log bin map lib mgrs Rational ClearCase rename\n" "X-POFile-IgnoreConsistency: End\n" "X-POFile-SpellExtra: copyLink Part Latin Dest Atrib AutoAdvance Tab\n" "X-POFile-SpellExtra: mergeResultSaved vs rmdir mpMFI cs Diff txt makeDir\n" "X-POFile-SpellExtra: novoficheiro Dir delete Sauer Faure Gehrmann Joachim\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-POFile-SpellExtra: Eibl Woebbeking Stephan Manfred Schmidt Bernd Mee\n" "X-POFile-SpellExtra: Mike Binner Zorin Sergey Eike Stefan Len Fricker Mac\n" "X-POFile-SpellExtra: Valentin StringMatcher kdiff Boellsterling Diffutils\n" "X-POFile-SpellExtra: Stallman Cervisia Hayes CvsIgnoreList Sebastien Tower\n" "X-POFile-SpellExtra: Rusu Help Koehler Denio Andre Eggert Partheymueller\n" "X-POFile-SpellExtra: Haertel Astals Scherrer Silvan\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continuar" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancelar" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Sair" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Ajuda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Predefinições" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Ficheiro" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Editar" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Pasta" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Movimento" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iferenças" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Reu&nir" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Janela" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Configuração" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "A&juda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Acerca" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utoria" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "Agradecimen&tos a" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operação de Junção do Item Actual" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operação de Sincronização do Item Actual" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Abrir" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Gravar" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Gravar Como..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimir..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Cortar" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copiar" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Colar" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Seleccionar Tudo" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostrar a Barra de Ferramentas" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Mostrar a Barra de E&stado" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configurar o %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Acerca" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Procurar" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Procurar o Seguinte" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Seleccione o Tipo de Letra" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Você seleccionou um tamanho de letra variável.\n" "\n" "Dado que este programa não lida correctamente com tipos de letra\n" "de largura variável, você poderá ter problemas ao editar.\n" "\n" "Deseja continuar ou prefere seleccionar outro tipo de letra." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Tipo de letra incompatível." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continuar por minha conta" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Seleccionar outro tipo de letra" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Para mais documentação, veja o menu de ajuda ou o documento das sub-pastas." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Utilização do KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorar" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Sair" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" "A escrita de dados da área de transferência para o ficheiro temporário " "falhou." #: diff.cpp:255 msgid "From Clipboard" msgstr "Da Área de Transferência" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Era esperado um espaço após as aspas de fecho." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Existem aspas sem correspondência." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Detectaram-se aspas inesperadas dentro do argumento." #: diff.cpp:503 msgid "No program specified." msgstr "Não foi indicado nenhum programa." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "O pré-processamento possivelmente falhou. Verifique este comando:\n" " %1\n" "O comando de pré-processamento vai ser desactivado." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "O pré-processamento com procura de linhas possivelmente falhou. Verifique " "este comando:\n" " %1\n" "O comando de pré-processamento com procura de linhas vai ser desactivado." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Erro de perda de dados:\n" "Se for reprodutível, contacte por favor o autor.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Erro Interno Grave" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mistura de ligações e ficheiros normais." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Ligação: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Tamanho. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data e Tamanho: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "A criação da cópia temporária do %1 falhou." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "O acesso ao %1 foi mal-sucedido." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "A comparar o ficheiro..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Erro ao ler de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nome" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operação" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Estado" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Não resolvido" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Resolvido" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Não vazio" #: directorymergewindow.cpp:359 msgid "White" msgstr "Vazio" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Você está neste momento a fazer uma junção de pastas. Tem a certeza que " "deseja interromper a junção e analisar a pasta de novo?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Aviso" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Pesquisar de Novo" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continuar a Junção" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "O acesso às pastas foi mal-sucedido:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "A pasta A \"%1\" não existe ou não é uma pasta.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "A pasta B \"%1\" não existe ou não é uma pasta.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "A pasta C \"%1\" não existe ou não é uma pasta.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Erro de Acesso à Pasta" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "A pasta de destino não pode ser a mesma que a A ou a B quando são reunidas " "três pastas.\n" "Verifique de novo antes de continuar." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Aviso do Parâmetro" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "A pesquisar as pastas..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "A Ler a Pasta A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "A Ler a Pasta B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "A Ler a Pasta C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Algumas das sub-pastas não eram legíveis" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Verifique as permissões das sub-pastas." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Pronto." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Estado da Comparação da Pasta" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Número de sub-pastas:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Número de ficheiros iguais:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Número de ficheiros diferentes:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Número de junções manuais:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Isto afecta todas as operações de junção." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "A Mudar Todas as Operações de Junção" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "A processar " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "A fazer." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copiar A para B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copiar B para A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Apagar A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Apagar B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Apagar A e B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Juntar a A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Juntar a B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Juntar a A e B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Apagar (se existir)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Reunir" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Juntar (manual)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Erro: Tipos de Ficheiros em Conflito" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Erro: Alterado e Apagado" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Erro: As datas são iguais mas os ficheiros não." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Esta operação não é possível de momento." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operação Não Possível" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Isto nunca deve acontecer:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Se souber como reproduzir isto, contacte por favor o autor do programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Erro no Programa" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Ocorreu um erro ao copiar.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Erro" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Erro na Junção" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Erro." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Terminado." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Não gravado." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operação de junção desconhecida. (Isto nunca deve acontecer!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operação de junção desconhecida." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "A junção está prestes a começar.\n" "\n" "Escolha \"Fazê-lo\" se leu as instruções e sabe o que está a fazer.\n" "Se escolher \"Simulá-lo\" irá saber o que iria acontecer.\n" "\n" "Tenha em atenção que este programa está ainda em estado Beta e NÃO EXISTE " "NENHUMA GARANTIA! Faça cópias de segurança dos seus dados vitais!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "A Iniciar a Junção" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Fazê-lo" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulá-lo" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "O item realçado tem um tipo diferente nas várias pastas. Seleccione o que " "fazer." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "As datas de modificação dos ficheiros são iguais mas estes não o são. " "Seleccione o que fazer." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "O item realçado foi alterado numa pasta e modificado na outra. Seleccione o " "que fazer." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Esta operação não é possível de momento que a junção da pasta está a " "decorrer." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Ocorreu um erro no último passo.\n" "Deseja continuar com o item que causou o erro ou deseja saltar este item?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continuar a junção após um erro" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continuar com o Último Item" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Saltar o Item" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Ignorado." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Em progresso..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "A operação de junção terminou." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Junção Completa" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "A simulação da junção terminou: Verifique se concorda com as operações " "propostas." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Ocorreu um erro. Carregue em OK para ver a informação detalhada.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Erro: Ao tentar apagar o %1: a criação da cópia de segurança falhou." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "apagar recursivamente as pastas( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "delete( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Erro: a operação de remoção da pasta falhou ao tentar ler a pasta." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Erro: a operação rmdir( %1 ) falhou." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Erro: a operação de remoção falhou." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "junção manual( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Nota: Após uma junção manual o utilizador deve continuar com o F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Erro: a cópia( %1 -> %2 ) falhou. A remoção do destino existente falhou." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Erro: o copyLink falhou: As ligações remotas ainda não são suportadas." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Erro: o copyLink falhou." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "cópia( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Erro durante o rename( %1 -> %2 ): Não é possível remover o destino " "existente." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rename( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Erro: A mudança de nome falhou." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Erro durante o makeDir do %1. Não é possível remover o ficheiro existente." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Erro ao criar a pasta." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipo" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Tamanho" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atrib" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Última Modificação" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Ligação-Destino" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Ficheiro" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "não disponível" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Gravar o Estado da Junção de Pastas Como..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Iniciar/Continuar a Junção da Pasta" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Executar a Operação no Item Actual" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Comparar o Ficheiro Seleccionado" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Juntar o Ficheiro Actual" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Reunir o\n" "Ficheiro" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Fechar Todas as Sub-Pasta" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Expandir Todas as Sub-Pastas" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Seleccionar Todos os Itens do A" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Seleccionar Todos os Itens do B" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Seleccionar Todos os Itens do C" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Escolher Automaticamente a Operação para Todos os Itens" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Nenhuma Operação para Todos os Itens" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostrar os Ficheiros Idênticos" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Ficheiros\n" "Idênticos" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostrar os Ficheiros Diferentes" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostrar os Ficheiros Apenas no A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Ficheiros \n" "Apenas no A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostrar os Ficheiros Apenas no B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Ficheiros\n" "Apenas no B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostrar os Ficheiros Apenas no C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Ficheiros\n" "Apenas no C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Comparar os Ficheiros Seleccionados Explicitamente" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Juntar os Ficheiros Seleccionados Explicitamente" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Não Fazer Nada" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Apagar A e B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Juntar a A e B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorado. (Definido pelo utilizador.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Ferramenta para Comparação e Junção de Ficheiros e Pastas" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Correcções de erros, manutenção do pacote Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instalador para o Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "ajuda em I18N" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Correcção da Área de Transferência" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Help" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Classe CvsIgnoreList do Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Classe StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Correcção de Coloração da Igualdade de Pastas" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Correcção dos arranques lentos no Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Extensão Diff para o Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Testes intensivos, utilização e reacções" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Suporte para Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Passagem para o KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Versão para o OS/2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "Muitos agradecimentos a todos os que comunicaram erros e contribuíram ideias!" #: main.cpp:196 msgid "Merge the input." msgstr "Juntar a entrada." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" "Ficheiro de base explícito. Para a compatibilidade com certas ferramentas." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Ficheiro de saída. Implica o -m. P.ex.: -o novoficheiro.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Ficheiro de saída, de novo. (para a compatibilidade com certas ferramentas)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Sem interface se todos os conflitos são resolvidos automaticamente (precisa " "do -o ficheiro)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Não resolver os conflitos automaticamente. (Para compatibilidade...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Substituição do nome visível para o ficheiro de entrada 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Substituição do nome visível para o ficheiro de entrada 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Substituição do nome visível para o ficheiro de entrada 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Substituição alternativa do nome visível. Indique isto para cada entrada." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Substitui uma opção de configuração. Use uma vez para todas as opções. P." "ex.: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Mostra uma lista das opções de configuração e os valores actuais." #: main.cpp:208 msgid "Use a different config file." msgstr "Usar um ficheiro de configuração diferente." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "o ficheiro 1 a abrir (base, se não for indicado através do --base)" #: main.cpp:212 msgid "file2 to open" msgstr "o ficheiro 2 a abrir" #: main.cpp:213 msgid "file3 to open" msgstr "o ficheiro 3 a abrir" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Número de conflitos por resolver: %1 (dos quais %2 são espaço em branco)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "O resultado foi modificado.\n" "Se você continuar as suas alterações serão perdidas." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Todos os ficheiros de entrada são iguais a nível binário." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Todos os ficheiros de entrada contêm o mesmo texto." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Os ficheiros %1 e %2 são iguais a nível binário.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Os ficheiros %1 e %2 têm texto igual.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Número total de conflitos: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Número total de conflitos resolvidos automaticamente: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Número de conflitos por resolver: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflitos" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Nem todos os conflitos estão ainda resolvidos.\n" "O ficheiro não foi gravado.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflitos Restantes" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Existe um conflito de fins de linha. Escolha por favor o estilo " "manualmente.\n" "O ficheiro não foi gravado.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "A criação de salvaguarda falhou. Ficheiro não gravado." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Erro na Gravação do Ficheiro" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Erro ao gravar." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Resultado" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificado]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codificação da gravação" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Estilo de fim de linha:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflito" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codificador de" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Não foi possível encontrar os ficheiros a comparar." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Ao tentar fazer uma cópia de segurança, a remoção de uma cópia anterior " "falhou. \n" "Ficheiro: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Ao tentar fazer uma cópia de segurança, a mudança de nome falhou. \n" "Ficheiros: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "A obter o estado do ficheiro: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "A ler o ficheiro: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "A escrever o ficheiro: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Sem memória" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "A criar a pasta: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "A remover a pasta: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "A remover o ficheiro. %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "A criar a ligação simbólica: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "A mudar o nome do ficheiro: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "A copiar o ficheiro: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Erro durante a operação de cópia do ficheiro: O acesso ao ficheiro para " "leitura falhou. Ficheiro: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Erro durante a operação de cópia do ficheiro: O acesso ao ficheiro para " "escrita falhou. Ficheiro: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Erro durante a operação de cópia do ficheiro: A leitura falhou. Ficheiro: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Erro durante a operação de cópia do ficheiro: A escrita falhou. Ficheiro: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "A ler a pasta: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "A analisar a pasta: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancelar" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linha" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Linha não disponível" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codificação:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Linha de topo" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fim" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuração Actual:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Erro da Opção de Configuração:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "A opção --auto foi indicada, mas não foi especificado nenhum ficheiro de " "saída." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "A opção --auto é ignorada para a comparação de pastas." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "A gravação falhou." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "O acesso a estes ficheiros falhou:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Erro de Acesso ao Ficheiro" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Abre os documentos para os comparar..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Actualizar" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Grava o resultado da gravação. Todos os conflitos devem ficar resolvidos!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Grava o documento actual como..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Imprimir as diferenças" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Sai da aplicação" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Corta a secção seleccionada e coloca-a na área de transferência" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia a secção seleccionada para a área de transferência" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Cola o conteúdo da área de transferência na posição actual" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Selecciona tudo na janela actual" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Procura por um texto" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Procura de novo pelo texto" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Activa/desactiva a barra de estado" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configurar o KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Ir para o Delta Actual" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Delta\n" "Actual" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Ir para o Primeiro Delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Primeiro\n" "Delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Ir para o Último Delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Último\n" "Delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Ignora as diferenças de espaço em branco quando \"Mostrar os Espaços em " "Branco\" está desactivado.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Não ignora as diferenças de espaço em branco mesmo quando \"Mostrar os " "Espaços em Branco\" está desactivado.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Ir para o Delta Anterior" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Delta\n" "Anterior" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Ir para o Próximo Delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Delta\n" "Seguinte" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Ir para o Conflito Anterior" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflito\n" "Anterior" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Ir para o Próximo Conflito" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflito\n" "Seguinte" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Ir para o Conflito por Resolver Anterior" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Não Resolvido\n" "Anterior" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Ir para o Conflito por Resolver Seguinte" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Não Resolvido\n" "Seguinte" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Seleccionar as Linhas do A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Escolher\n" "o A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Seleccionar as Linhas do B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Escolher\n" "o B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Seleccionar as Linhas do C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Escolher\n" "o C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Ir Automaticamente para o Próximo Conflito por Resolver Após a Selecção do " "Código" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Seguinte\n" "Automático" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Mostrar as Diferenças de Espaços e Tabulações" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Espaços\n" "em Branco" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostrar os Espaços em Branco" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Diferenças\n" "em Branco" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostrar os Números de Linha" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Números\n" "de Linha" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Escolher o A em Todo o Lado" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Escolher o B em Todo o Lado" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Escolher o C em Todo o Lado" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Escolher A em Todos os Conflitos por Resolver" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Escolher B em Todos os Conflitos por Resolver" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Escolher C em Todos os Conflitos por Resolver" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Escolher A em Todos os Conflitos de Espaço em Branco por Resolver" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Escolher B em Todos os Conflitos de Espaço em Branco por Resolver" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Escolher C em Todos os Conflitos de Espaço em Branco por Resolver" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Resolver Automaticamente os Conflitos Simples" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Passar os Deltas para Conflitos" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Executar a Junção Automática de Expressões Regulares" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Resolver Automaticamente os Conflitos do Histórico" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Dividir a Diferença na Selecção" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Juntar as Diferenças Seleccionadas" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostrar a Janela A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostrar a Janela B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostrar a Janela C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Foco na Próxima Janela" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Vista Normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Vista A vs. B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Vista A vs. C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Vista B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Quebrar Linha nas Janelas de Diferenças" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Adicionar o Alinhamento Manual das Diferenças" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Limpar Todos os Alinhamentos de Diferenças Manuais" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Foco na Janela Anterior" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Comutar a Orientação da Repartição" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Janela Repartida de Pastas e Texto" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Mudar Entre a Janela de Pastas e de Texto" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "O resultado da junção não foi ainda gravado." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Gravar e Sair" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Sair sem Gravar" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "A gravação do resultado da junção falhou." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Você está a fazer uma junção de pastas de momento. Tem a certeza que quer " "interromper?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "A gravar o ficheiro..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "A gravar o ficheiro com um novo nome..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "A impressão não está implementada." #: kdiff3.cpp:815 msgid "Printing..." msgstr "A imprimir..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selecção" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "A impressão terminou." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "A impressão foi interrompida." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "A sair..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "A comutar a barra de ferramentas..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Comutar a barra de estado..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Ficheiro..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Pasta..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Opcional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Trocar/Copiar os Nomes ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Trocar o %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copiar o %1->Resultado" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Trocar o %1<->Resultado" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Resultado (opcional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configurar..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Texto da procura:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Distinguir capitalização" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Procurar A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Procurar B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Procurar C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Resultado da procura" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Procurar" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Teste de Expressões Regulares" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Expressão regular de junção automática:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Linha de junção automática do exemplo:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Para um teste da junção automática, copie uma linha usada nos seus ficheiros." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultado correspondente:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expressão regular do início do histórico:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Linha inicial do histórico do exemplo (com o comentário inicial):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copie uma linha inicial do histórico, como a usada nos seus ficheiros,\n" "incluindo o comentário inicial." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expressão regular do início do item de histórico:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Ordem da chave do histórico:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Linha inicial do item do histórico do exemplo (sem o comentário inicial):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copie uma linha inicial do item de histórico, como a usada nos seus " "ficheiros,\n" "mas omita o comentário inicial." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resultado da chave de ordenação:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Sucesso da correspondência." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "A correspondência falhou." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Os parêntesis de abertura e fecho não correspondem na expressão regular." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Altere isto se os caracteres não-ASCII não são mostrados correctamente." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configurar" #: optiondialog.cpp:531 msgid "Font" msgstr "Tipo de Letra" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Tipo de Letra do Resultado do Diff e do Editor" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Texto itálico para os deltas" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Seleccionar a versão itálica do texto para as diferenças.\n" "Se o tipo de letra não suportar caracteres itálicos, isto não fará nada." #: optiondialog.cpp:568 msgid "Color" msgstr "Cor" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Configuração das Cores" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Áreas do Editor e das Diferenças:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Cor principal:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Cor de fundo:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Cor de fundo das diferenças:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Cor A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Cor B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Cor C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Cor do conflito:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Cor de fundo do intervalo actual:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Cor de fundo da diferença do intervalo actual:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Cor dos intervalos de diferenças alinhados manualmente:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Área de Comparação das Pastas:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Cor do ficheiro mais recente:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Se mudar esta cor, só fará efeito ao iniciar a próxima comparação de pastas." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Cor do ficheiro mais antigo:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Cor dos ficheiros intermédios:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Cor dos ficheiros em falta:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportamento do Editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "O Tab insere espaços" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Ligado: se carregar no Tab gera o número apropriado de espaços.\n" "Desligado: será introduzido um carácter Tab." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tamanho das tabulações:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Indentação automática" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Ligado: A indentação da linha anterior é usada para uma nova linha.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Copiar automaticamente a selecção" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Ligado: Qualquer selecção é posta automaticamente na área de transferência.\n" "Desligado: Você tem de copiar explicitamente, p.ex., com o Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "DOS/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Auto-detectar" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Escolhe os fins de linha para quando um ficheiro editado é gravado.\n" "DOS/Windows: CR+LF; UNIX: LF; com CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diferenças" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Configuração das Diferenças" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Tratar como espaços em branco." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorar os números" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignora os caracteres numéricos durante a fase de correspondência das linhas " "(Semelhante ao Ignorar os Espaços).\n" "Pode ajudar a comparar os ficheiros com dados numéricos." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorar comentários de C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Tratar os comentários de C/C++ como espaço em branco." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorar a capitalização" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Tratar diferenças de capitalização como mudanças de espaço em branco. " "('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Comando do pré-processador:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Pré-processamento definido pelo utilizador. (Veja a documentação para mais " "detalhes)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Comando do pré-processador para a correspondência de linhas:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Este pré-processador só é usado na correspondência das linhas.\n" "(Veja a documentação para mais detalhes)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Tentar com persistência (lento)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Activa a opção --minimal do 'diff' externo.\n" "A análise dos ficheiros grandes será muito mais lenta." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Alinhar o B e o C para 3 ficheiros de entrada" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Tentar alinhar o B e o C ao comparar ou reunir três ficheiros de entrada.\n" "Não é recomendado para a reunião, dado que esta se poderá tornar mais " "complicada.\n" "(Por omissão está desligada.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Configuração da Junção" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Atraso no avanço automático (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Quando estiver no modo de Avanço Automático, o resultado da selecção actual " "é mostrado durante o período indicado, antes de saltar para o próximo " "conflito. Intervalo: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostrar as janelas informativas" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostrar uma janela com informações sobre o número de conflitos." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Junção de espaço em branco com 2 ficheiros:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Escolha Manual" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Permite ao algoritmo de junção escolher automaticamente o ficheiro a " "utilizar para as alterações de apenas espaço em branco." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Junção de espaço em branco com 3 ficheiros:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Expressão Regular de Junção Automática" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "A expressão regular das linhas em que o KDiff3 deverá escolher " "automaticamente uma origem.\n" "Quando uma linha com um conflito corresponder à expressão regular então será " "-\n" "se disponível - o C, caso contrário será escolhido o B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Executar a junção automática da expressão regular ao iniciar a junção" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Executa a junção para as expressões regulares de junção automática\n" "imediatamente após o início de uma junção.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Junção do Histórico do Controlo de Versões" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "A expressão regular para o início do item de histórico da junção.\n" "Normalmente, este valor contém a palavra-chave \"$Log$\".\n" "Valor por omissão: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Um item de histórico da junção consiste em várias linhas.\n" "Indique a expressão regular usada para detectar a primeira linha (sem o " "comentário inicial).\n" "Use os parêntesis para agrupar as chaves que deseja usar na ordenação.\n" "Se for deixado em branco, o KDiff3 assume que as linhas em branco separar os " "itens de histórico.\n" "Veja a documentação para saber mais detalhes." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordenação da junção do histórico" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordenar o histórico do controlo de versões por uma chave." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Ordem da chave de ordenação do início do item de histórico:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Cada um dos parêntesis usados na expressão regular no item inicial do " "histórico\n" "agrupa uma chave que poderá ser usada na ordenação.\n" "Indique a lista de chaves (que são numeradas por ordem de ocorrência,\n" "a começar no 1), usando o ',' como separador (p.ex., \"4,5,6,1,2,3,7\").\n" "Se for deixado em branco, não será feita nenhuma ordenação.\n" "Veja a documentação para saber mais detalhes." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Juntar o histórico do controlo de versões ao iniciar a junção" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Executar a junção automática do histórico do controlo de versões ao iniciar " "a junção." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Número máximo de itens do histórico:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Cortar ao fim do número indicado. Usar o -1 para um número infinito de " "elementos." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Testar as suas expressões regulares" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Comando de junção irrelevante:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Se for indicado, este programa é executado após a junção automática,\n" "quando não forem detectadas mais alterações relevantes.\n" "É invocado com os parâmetros: ficheiro1 ficheiro2 ficheiro3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Gravar automaticamente e sair na junção sem conflitos" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Quando o KDiff3 foi iniciado para uma junção de ficheiros na linha de " "comandos e todos os conflitos podem ser resolvidos sem interacção do " "utilizador, então grava e sair automaticamente.\n" "(Semelhante à opção da linha de comandos \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Pasta" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Pastas recursivas" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Se se analisam as sub-pastas ou não." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Padrões de ficheiros:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Os padrões dos ficheiros a analisar.\n" "Caracteres especiais: '*' e '?'\n" "Podem ser indicados vários padrões usando o separador: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Anti-padrões de ficheiros:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Os padrões dos ficheiros a excluir da análise.\n" "Caracteres especiais: '*' e '?'\n" "Podem ser indicados vários padrões usando o separador: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Anti-padrões de pastas:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Os padrões das pastas a excluir da análise.\n" "Caracteres especiais: '*' e '?'\n" "Podem ser indicados vários padrões usando o separador: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Usar o .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Extende o anti-padrão para tudo o que seria ignorado pelo CVS.\n" "Isto pode ser específico para cada pasta, através dos ficheiros '.cvsignore' " "locais." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Procurar os ficheiros e pastas escondidos" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Procura os ficheiros e pastas com o atributo 'escondido'." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Procura os ficheiros e pastas que comecem por '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Seguir as ligações de ficheiros" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Ligado: Compara o ficheiro para o qual a ligação aponta.\n" "Desligado: Compara as ligações." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Seguir as ligações de pastas" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Ligado: Compara a pastas para a qual a ligação aponta.\n" "Desligado: Compara as ligações." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Comparação de nomes de ficheiros com distinção de maiúsculas" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "A comparação de pastas irá comparar os ficheiros ou pastas quando os seus " "nomes corresponderem.\n" "Configure esta opção, no caso de os nomes terem mesmo de corresponder. (Por " "omissão, no Windows, está desligada; caso contrário, está ligada.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Modo de Comparação de Ficheiros" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparação binária" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparação binária de cada ficheiro. (Por omissão)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Análise completa" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Fazer uma análise completa e mostrar informações estatísticas em colunas " "extra.\n" "(Mais lento que a comparação binária, muito mais lento para ficheiros " "binários.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Confiar no tamanho e data de modificação (inseguro)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Assumir que os ficheiros são iguais se a data de modificação e o tamanho do " "ficheiro são iguais.\n" "Os ficheiros com conteúdo igual mas datas de modificação diferentes irão " "aparecer como diferentes.\n" "Útil para as pastas grandes ou para redes lentas." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Confiar na data e tamanho, mas usar uma comparação binária se a data não " "corresponder (inseguro)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Assumir que os ficheiros são iguais se a data de modificação e o tamanho do " "ficheiro são iguais.\n" "Se a data não for igual, mas os tamanhos forem, usar uma comparação " "binária.\n" "Útil para as pastas grandes ou para redes lentas." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Confiar no tamanho (inseguro)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Assumir que os ficheiros são iguais se o seu tamanho é igual.\n" "Útil para as pastas grandes ou para redes lentas." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronizar as pastas" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Oferece-se para armazenar os ficheiros em ambas as pastas\n" "de modo a que ambas as pastas fiquem iguais no fim.\n" "Funciona apenas ao comparar duas pastas sem indicar um destino." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Diferenças de espaço em branco consideradas iguais" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Se os ficheiros apenas diferem em espaço em branco considerá-los iguais.\n" "Isto está activo apenas quando é escolhida a análise completa." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copiar o mais recente em vez de juntar (inseguro)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Não analisa os ficheiros, selecciona apenas o ficheiro mais recente.\n" "(Use isto apenas se souber o que está a fazer!)\n" "Só faz efeito ao comparar duas pastas." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Salvaguarda dos ficheiros (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Quando um ficheiro for gravado por cima de um anterior, então o ficheiro\n" "antigo será renomeado para uma extensão '.orig' em vez de ser removido." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Configuração Regional" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Língua (necessário reiniciar)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Escolha a língua da interface gráfica ou \"Auto\".\n" "Para mudar de língua tem que reiniciar o KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Utilizar a mesma codificação para tudo:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Active isto para permitir modificar todas as codificações alterando apenas a " "primeira.\n" "Torne inactivo se forem necessárias opções individuais." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: A codificação local é" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codificação do Ficheiro A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Se estiver activo, então será detectada a codificação Unicode (UTF-16 ou " "UTF-8).\n" "Se a codificação do ficheiro não for detectada, então será usada a " "codificação seleccionada como alternativa.\n" "(A detecção de Unicode depende dos primeiros 'bytes' de um ficheiro.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Auto-Detectar o Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codificação do Ficheiro B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codificação do Ficheiro C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codificação do Ficheiro para Junção de Resultado e Gravação:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Selecção Automática" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Se estiver activada a opção, será usada a codificação dos ficheiros de " "entrada.\n" "Nos casos ambíguos, irá aparecer uma janela a perguntar ao utilizador qual a " "codificação com que deseja gravar." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codificação do Ficheiro dos Ficheiros de Pré-processador:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Língua da Direita para a Esquerda" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Algumas línguas são lidas da direita para esquerda.\n" "Esta opção muda o visualizador e editor de acordo com elas." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integração" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Configuração da Integração" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opções da linha de comandos a ignorar:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Uma lista das opções da linha de comandos que deverão ser ignoradas, quando " "o KDiff3 for usado por outras ferramentas.\n" "Se desejar indicar vários valores, separe-os por ';'\n" "Isto irá eliminar o erro de \"Opção desconhecida\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Sair também com a tecla Escape" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Um método rápido para sair.\n" "Para os que estão habituados a usar a tecla Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrar com o ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra com o Rational ClearCase da IBM.\n" "Modifica o ficheiro \"map\" na sub-pasta do ClearCase \"lib/mgrs\"\n" "(Só está activo quando a pasta \"bin\" do ClearCase está na PATH.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Remover a Integração com o ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Repõe o antigo ficheiro \"map\" antes de fazer a integração com o ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Tipo de Letra Incompatível" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continuar à Mesma" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Seleccionar Outro Tipo de Letra" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Isto repõe todas as opções, não só as do tópico actual." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Comando do pré-processador: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "As seguintes opções que seleccionou podem alterar os dados:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "\n" "Muito provavelmente isto não é desejável durante uma junção.\n" "Quer desactivar estas configurações ou continuar com elas activas?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opção Insegura para Junção" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Usar Estas Opções Durante a Junção" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Desactivar Opções Inseguras" #: pdiff.cpp:300 msgid "Loading A" msgstr "A Carregar o A" #: pdiff.cpp:304 msgid "Loading B" msgstr "A Carregar o B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diferenças: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Dif. Linhas: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "A Carregar o C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diferenças: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diferenças: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Dif. Linhas: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Dif. Linhas: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Todos os ficheiros de entrada contêm o mesmo texto, mas não são iguais a " "nível binário." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Os ficheiros %1 e %2 têm texto igual, mas não são iguais a nível binário.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Alguns dos ficheiros de entrada não parecem ser ficheiros de texto puros.\n" "Lembre-se que a junção do KDiff3 não foi pensada para os dados binários.\n" "Continue por sua conta e risco." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Alguns caracteres de entrada não puderam ser convertidos para Unicode " "válido.\n" "Poderá estar a usar o codificador errado (p.ex. UTF-8 para ficheiros não-" "UTF-8).\n" "Não grave o resultado se não tiver a certeza. Prossiga por sua conta e " "risco.\n" "Os ficheiros de entrada afectados estão em %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Interromper" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "A aceder aos ficheiros..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Erro ao abrir o ficheiro" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "A cortar a selecção..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "A copiar a selecção para a área de transferência..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "A inserir o conteúdo da área de transferência..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Gravar e Continuar" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continuar sem Gravar" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Procura terminada." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Procura Terminada" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" "Não está nada seleccionado em nenhuma janela de entrada das diferenças." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Erro ao adicionar o intervalo manual de diferenças" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Não foi possível obter a componente do KDiff3.\n" "Isto acontece normalmente devido a um problema de instalação. Leia por favor " "o ficheiro README no pacote de código para mais detalhes." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "José Nuno Pires" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "zepires@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configurar o KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra Principal" kdiff3-0.9.97/po/mai/0000755000175100001440000000000011626145654013516 5ustar joachimuserskdiff3-0.9.97/po/mai/CMakeLists.txt0000644000175100001440000000016411626145610016247 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(mai ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/mai/kdiff3.po0000644000175100001440000016362111626145610015225 0ustar joachimusers# translation of kdiff3.po to Maithili # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Rajesh Ranjan , 2010. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-09-24 20:11+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Maithili \n" "Language: mai\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "जारी राखू" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "रद करू" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "बाहर" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "ठीक" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "मद्दति " #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "मूलभूत" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "फाइल (&F)" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "सँपादित करू (&E)" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "विंडो (&W)" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "जमावट (&S)" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "मद्दति (&H)" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "क' संबंधमे (&A) " #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "लेखक (&u)" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "हिनका धन्यवाद (&T)" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "खोलू" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "सहेजू" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "एहन सहेजू..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "छापू..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "काटू" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "कापी करू" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "साटू" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "सभ चुनू" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "अओजारपट्टी देखाउ" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 बिन्यस्त करू करू...(&C)" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "क' बारेमे" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "खोजू" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "अगिला खोजू" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "फोन्ट चुनू" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "उपेक्षा" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "निकास" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "क्लिपबोर्ड सँ" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "नाम" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "सँक्रिया" #: directorymergewindow.cpp:358 msgid "Status" msgstr "स्थिति" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "उज्जर" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "चेतावनी" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "मिलाबू" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "त्रुटि" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "त्रुटि." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "सम्पन्न" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "निर्देशिका" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "प्रकार" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "आकार" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "फाइल" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "उपलब्ध नहि" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "किछु नहि करू" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "स्टीफन बिनर" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "डेविड फाउरे" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "बेर्न्द गेहर्मन" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "संघर्ष" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "आउटपुट" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "विरोध" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "स्मृति सँ बाहर" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "रद्द करू (&C)" #: difftextwindow.cpp:403 msgid "Line" msgstr "रेखा" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "एनकोडिंग:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "अंत" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "पुनः लोड करू" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "स्ट्रिंग लेल ढूँढू" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "पंक्ति सँख्यासभ देखाबू" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "छपाइ भए रहल अछि..." #: kdiff3.cpp:956 msgid "Selection" msgstr "चुनाव" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "कान्फिगर..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "बेस (&O)" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "स्थितिक प्रति संवेदनशील" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "खोज (&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "बेस" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "यूनिकोड" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "बिन्यस्त करू" #: optiondialog.cpp:531 msgid "Font" msgstr "फोन्ट" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "रंग" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "अग्रभूमि क' रंगः" #: optiondialog.cpp:603 msgid "Background color:" msgstr "पृष्ठभूमि क' रंगः" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "संपादक" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "विंडो (&W)" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "स्वतः चुनू" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "निर्देशिका" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "स्वतः चुनू" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "संयोजन" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "छोड़ू" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "खोज पूर्ण भेल." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "संगीता कुमारी" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "sangeeta09@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "मुख्य अओजार पट्टी" kdiff3-0.9.97/po/cs/0000755000175100001440000000000011626145654013355 5ustar joachimuserskdiff3-0.9.97/po/cs/kdiff3plugin.po0000644000175100001440000000426511626145606016306 0ustar joachimusers# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Vít Pelčák , 2010. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-01-29 10:02+0100\n" "Last-Translator: Vít Pelčák \n" "Language-Team: Czech \n" "Language: csX-Generator: Lokalize 1.1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Porovnat s %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Sloučit s %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Uložit '%1' na později" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Porovnat s..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Vyčistit seznam" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Porovnat" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Trojcestné porovnání" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/cs/CMakeLists.txt0000644000175100001440000000016311626145606016112 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(cs ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/cs/kdiff3fileitemactionplugin.po0000644000175100001440000000442411626145606021220 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Vít Pelčák , 2011. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-06-27 14:29+0200\n" "Last-Translator: Vít Pelčák \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Porovnat s %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Sloučit s %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Uložit '%1' na později" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Porovnat s..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Vymazat seznam" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Porovnat" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Trojcestné porovnání" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/cs/kdiff3.po0000644000175100001440000024332111626145606015065 0ustar joachimusers# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Vít Pelčák , 2010, 2011. # msgid "" msgstr "" "Project-Id-Version: trunk_kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-06-27 14:28+0200\n" "Last-Translator: Vít Pelčák \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 1.2\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Pokračovat" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Zrušit" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Ukončit" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Nápověda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Výchozí" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "S&oubor" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "Ú&pravy" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Adresář" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Přejít" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "&Zobrazit rozdíly" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Slouč&it" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "O&kno" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "Na&stavení" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "Nápo&věda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "O progr&amu" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "Díky pa&tří" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operace sloučení aktuální položky" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operace synchronizace aktuální položky" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Otevřít" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Uložit" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Uložit jako..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Tisk..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Vyjmout" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopírovat" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Vložit" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Vybrat vše" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Zobrazit panel nástrojů" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Zobrazit &stavový řádek" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Nastavit %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "O programu" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Najít" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Najít další" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Zvolit písmo" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Zvolili jste proměnnou šířku písma.\n" "\n" "Jelikož tento program nepracuje správně s písmem s proměnnou\n" "šířkou, můžete zkusit vyřešit problém při editaci.\n" "\n" "Chcete pokračovat, nebo zvolit jiné písmo?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Nekompatibilní písmo." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Pokračovat na vlastní riziko" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Vybrat jiné písmo" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Další dokumentaci naleznete v nabídce Nápověda, nebo v podadresáři doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Použití KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorovat" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Ukončit" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Zápis dat schránky do dočasného souboru selhal." #: diff.cpp:255 msgid "From Clipboard" msgstr "Ze schránky" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Neočekávaná uvozovka uvnitř argumentu" #: diff.cpp:503 msgid "No program specified." msgstr "Nebyl zadán program." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Předběžné zpracování zřejmě selhalo. Zkontrolujte příkaz:\n" "\n" " %1\n" "\n" "Příkaz předběžného zpracování bude nyní vypnut." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Předběžné zpracování shody řádku zřejmě selhalo. Zkontrolujte příkaz:\n" "\n" " %1\n" "\n" "Příkaz předběžného zpracování shody řádku bude nyní vypnut." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Chyba ztráty dat:\n" "Pokud lze chybu reprodukovat, kontaktujte autora.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Závažná interní chyba" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Směs odkazů a běžných souborů." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Odkaz: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Velikost" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Datum a velikost: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Vytváření dočasné kopie %1 selhalo." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Otevření %1 selhalo." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Porovnávám soubory..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Chyba načítání z %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Jméno" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operace" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stav" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Nevyřešeno" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Vyřešeno" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Nebílý" #: directorymergewindow.cpp:359 msgid "White" msgstr "Bílá" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Právě probíhá slučování adresářů. Opravdu chcete slučování ukončit a znovu " "prohledat adresář?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Upozornění" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Znovu prohledat" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Pokračovat se slučováním" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Otevírání adresářů selhalo:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Adresář A \"%1\" neexistuje nebo není adresářem.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Adresář B \"%1\" neexistuje nebo není adresářem.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Adresář C \"%1\" neexistuje nebo není adresářem.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Chyba otvírání adresáře" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Cílový adresář nesmí být při slučování tří adresářů shodný s A nebo B.\n" "Před pokračováním proveďte kontrolu." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Varování - parametr" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Prohledávání adresářů..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Načítání adresáře A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Načítání adresáře B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Načítání adresáře C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Některé podadresáře byly nečitelné v" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Zkontrolujte oprávnění podadresářů." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Připraven." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Stav porovnání adresářů" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Počet podadresářů:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Počet shodných souborů:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Počet rozdílných souborů:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Počet ručních sloučení:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Toto ovlivňuje všechny operace slučování." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Změna všech operací sloučení" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Probíhá zpracování " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Udělat." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Zkopírovat A do B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Zkopírovat B do A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Smazat A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Smazat B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Smazat A a B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Sloučit do A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Sloučit do B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Sloučit do A a B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Smazat (pokud existuje)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Sloučení" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Sloučit (ručně)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Chyba: Konflikt typů souborů" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Chyba: Změněno a smazáno" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Chyba: Data jsou shodná, ale soubory nikoliv." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Tuto operaci nelze nyní provést." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operaci nelze provést" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Toto by se nemělo nikdy stát:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Pokud tuto situaci umíte reprodukovat, kontaktujte prosím autora programu." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Chyba programu" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Během kopírování se stala chyba.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Chyba" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Chyba slučování" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Chyba." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Hotovo." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Neuloženo." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Neznámá slučovací operace. (Toto se nesmí nikdy stát!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Neznámá slučovací operace." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Sloučení může začít.\n" "\n" "Zvolte \"Provést\" pokud jste si přečetli instrukce a máte dělat.\n" "Zvolením \"Simulovat\" vám bude sděleno, co by se mělo stát.\n" "\n" "Uvědomte si, že tento program je stále ve stavu beta a proto není vůbec " "žádná ZÁRUKA! Vaše důležitá data si zazálohujte!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Spouští se sloučení" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Provést" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulovat" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "Zvýrazněná položka je jiného typu v jiném adresáři. Zvolte co udělat." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "Datum změny souboru je shodné, soubory však nikoliv. Zvolte co udělat." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Zvýrazněná položka byla pozměněna v jednom adresáři a v druhém byla smazána. " "Zvolte co udělat." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Tato operace není nyní možná, protože slučování adresáře právě probíhá." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "V posledním kroku došlo k chybě.\n" "Chcete pokračovat s položkou, která chybu způsobila, nebo si přejete položku " "přeskočit?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Pokračovat se slučováním po chybě" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Pokračovat s poslední položkou" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Přeskočit položku" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Přeskočeno." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Probíhá..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operace sloučení dokončena." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Slučování dokončeno" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulované sloučení dokončeno: Ověřte si, zda souhlasíte s navrženými " "operacemi." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Vyskytla se chyba. Detailní informace uvidíte po stisknutí OK.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Chyba: při mazání %1: Vytvoření zálohy selhalo." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "smazat adresář rekurzivně( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "odstranit( %1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Chyba: operace mazání adresáře selhala při pokusu načítání adresáře." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Chyba: operace smazat adresář( %1 ) selhala." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Chyba: operace mazání selhala." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "ručně sloučit( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "Pozn.: Po ručním slučování by měl uživatel pokračovat stiskem F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Chyba: Kopírování ( %1 -> %2 ) selhalo. Existující cíl nelze odstranit." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Kopírovat odkaz ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Chyba: kopírování odkazu selhalo: Vzdálené odkazy nejsou nyní podporovány." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Chyba: kopírování odkazu selhalo." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopírovat( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Chyba při přejmenování ( %1 -> %2 ): Existující cíl nelze odstranit." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "přejmenovat( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Chyba: Přejmenování selhalo." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Chyba při vytvoření adresáře %1. Nelze odstranit existující soubor." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Vytvořit adresář ( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Chyba při vytvoření adresáře." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Cíl" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Adresář" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Typ" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Velikost" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atributy" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Poslední změna" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Cíl odkazu" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Soubor" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "nedostupný" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (cíl): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (základní): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (cíl): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (cíl): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Cíl: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Uložit stav sloučení adresáře jako..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Spustit / pokračovat ve sloučení adresářů" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Spustit operaci pro aktuální položku" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Porovnat vybraný soubor" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Sloučit aktuální soubory" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Sloučit\n" "Soubor" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Sbalit všechny podadresáře" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Rozbalit všechny podadresáře" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Zvolit A pro všechny položky" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Zvolit B pro všechny položky" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Zvolit C pro všechny položky" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Automaticky zvolit operaci pro všechny položky" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Žádná operace pro všechny položky" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Zobrazit identické soubory" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Shodné\n" "Soubory" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Zobrazit rozdílné soubory" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Zobrazit soubory pouze v A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Soubory\n" "pouze v A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Zobrazit soubory pouze v B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Soubory\n" "pouze v B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Zobrazit soubory pouze v C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Soubory\n" "pouze v C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Porovnat výlučně vybrané soubory" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Sloučit výlučně vybrané soubory" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nedělat nic" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Smazat A a B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Sloučit do A a B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorováno (Nastaveno uživatelem)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Nástroj pro porovnávání a slučování souborů a adresářů" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Oprava chyb, hlavní správce balíčků Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instalátor Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-help" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Patch schránky" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Nápověda KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Třída CvsIgnoreList od Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Třída StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Patch pro barevné rozlišení při porovnávání adresářů" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Oprava pomalého spuštění ve Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergej Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Externí Diff pro Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intenzivní testování, používání a zpětné informace" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Podpora pro Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portování na KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Port na OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+Poděkování všem, kteří hlásili chyby a přispívali nápady!" #: main.cpp:196 msgid "Merge the input." msgstr "Sloučit vstup." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Výhradně základní soubor. Pro kompatibilitu s některými nástroji." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Název výstupního souboru. Např.: -o novysoubor.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Výstupní soubor znovu. (Kvůli kompatibilitě s určitými nástroji.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Nezobrazovat GUI, pokud jsou všechny konflikty řešitelné automaticky. " "(Potřebuje -o soubor)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Neřešit problémy automaticky. (Kvůli kompatibilitě...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Náhradní název pro vstupní soubor 1 (základní)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Náhradní název pro vstupní soubor 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Náhradní název pro vstupní soubor 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "Alternativa náhradního názvu. Tato možnost se nabízí pro každý vstup." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Přepsat konfiguraci. Použít pro každé nastavení. Např.: --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Zobrazit seznam všech nastavení a aktuálních hodnot." #: main.cpp:208 msgid "Use a different config file." msgstr "Použít rozdílný konfigurační soubor." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "první soubor k otevření (základní, pokud není zadáno pomocí --base)" #: main.cpp:212 msgid "file2 to open" msgstr "druhý soubor k otevření" #: main.cpp:213 msgid "file3 to open" msgstr "třetí soubor k otevření" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Počet zbývajících nevyřešených konfliktů: %1 (z nichž počet mezer je %2)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Výstup byl poměněn.\n" "Pokud budete pokračovat, vaše změny budou ztraceny." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Všechny vstupní soubory jsou binárně shodné." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Všechny vstupní soubory obsahují shodný text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Soubor %1 a %2 je binárně shodný.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Soubory %1 a %2 mají shodný text.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Celkový počet konfliktů: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Počet automaticky vyřešených konfliktů: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Počet nevyřešených konfliktů: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikty" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<Žádný řádek ve frontě>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Všechny konflikty nejsou vyřešeny.\n" "Soubor nebyl uložen.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Zbývající konflikty" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Konflikt druhu konce řádku. Zvolte prosím druh konce řádku ručně.\n" "Soubor nebyl uložen.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Vytvoření zálohy selhalo. Soubor nebyl uložen." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Chyba ukládání souboru" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Chyba při zápisu." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Výstup" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Pozměněno]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Kódování pro uložení" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Styl konce řádku:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Kodek od" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Nelze nalézt soubory k porovnání." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "Komponenty KDiff3" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Při pokusu o vytvoření zálohy selhalo odstraňování staré zálohy. \n" "Název souboru: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Při pokusu o vytvoření zálohy selhalo přejmenování. \n" "Název souboru: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Získávám stav souboru: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Načítám soubor: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Zapisuji soubor: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Nedostatek paměti" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Vytvářím adresář: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Odstraňuji adresář: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Odstraňuji soubor: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Vytvářím symbolický odkaz: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Přejmenovávám soubor: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopíruji soubor: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Chyba při operaci kopírování souboru: Otevírání souboru pro čtení selhalo. " "Název souboru: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Chyba při operaci kopírování souboru: Otevírání souboru pro zápis selhalo. " "Název souboru: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Chyba při operaci kopírování souboru: Načítání selhalo. Název souboru: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Chyba při operaci kopírování souboru: Zápis selhal. Název souboru: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Načítám adresář: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Výpis adresáře: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "Z&rušit" #: difftextwindow.cpp:403 msgid "Line" msgstr "Řádek" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Řádek není dostupný" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kódování:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Horní řádek" #: difftextwindow.cpp:1769 msgid "End" msgstr "Konec" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Aktuální nastavení:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Chyba volby nastavení:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Je použit parametr --auto, ale není zadán výstupní soubor." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Parametr --auto je při porovnávání adresářů ignorován." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Ukládání selhalo." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Otevření těchto souborů selhalo:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Chyba otevírání souboru" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Otevře dokumenty pro porovnání..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Obnovit" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Uloží výsledek sloučení. Musí být vyřešeny všechny konflikty!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Uloží aktuální dokument jako..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Vytisknout rozdíly" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Ukončí aplikaci" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Vyjme současný výběr a umístí jej do schránky" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Zkopíruje vybranou sekci do schránky" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Vloží současný obsah schránky na aktuální pozici" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Vybrat vše v aktuálním okně" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Hledání řetězce" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Další hledání řetězce" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Povolí/zakáže stavovou lištu" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Nastavit: KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Přejít na aktuální rozdíl" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Aktuální\n" "rozdíl" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Přejít na první rozdíl" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "První\n" "rozdíl" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Přejít na poslední rozdíl" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Poslední\n" "rozdíl" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Přeskočí rozdíly v mezerách pokud je vypnuta volba \"Zobrazit mezery\".)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Nepřeskočí rozdíly v mezerách ani pokud je vypnuta volba \"Zobrazit mezery" "\".)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Přejít na předchozí rozdíl" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Předchozí\n" "rozdíl" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Přejít na další rozdíl" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Další\n" "rozdíl" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Přejít na předchozí konflikt" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Předchozí\n" "Konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Přejít na další konflikt" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Další\n" "Konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Přejít na předchozí nevyřešený konflikt" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Předchozí\n" "Nevyřešeno" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Přejít na další nevyřešený konflikt" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Další\n" "Nevyřešeno" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Vybrat řádky z A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Zvolit\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Vybrat řádky z B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Zvolit\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Vybrat řádky z C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Zvolit\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Po výběru zdroje automaticky přejít na další nevyřešený konflikt" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automaticky\n" "Další" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Zobrazit znaky mezer a tabulátorů v rozdílech" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Bílé\n" "znaky" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Zobrazit mezery" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Mezery\n" "rozdíly" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Zobrazit čísla řádků" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Řádky\n" "čísla" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Všude zvolit A" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Všude zvolit B" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Všude zvolit C" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Zvolit A pro všechny nevyřešené konflikty" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Zvolit B pro všechny nevyřešené konflikty" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Zvolit C pro všechny nevyřešené konflikty" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Zvolit A pro všechny nevyřešené konflikty s mezerami" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Zvolit B pro všechny nevyřešené konflikty s mezerami" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Zvolit C pro všechny nevyřešené konflikty s mezerami" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Automaticky vyřešit jednoduché konflikty" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Všechny rozdíly považovat za konflikty" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Spustit regulární výraz automatického sloučení" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Automaticky vyřešit historii konfliktů" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Rozdělit rozdíl ve výběru" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Sloučit vybrané rozdíly" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Zobrazit okno A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Zobrazit okno B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Zobrazit okno C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Zaostřit další okno" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normální přehled" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Přehled A proti B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Přehled A proti C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Přehled B proti C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Zalamovat řádky v porovnávacích oknech" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Ručně přidat zarovnání" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Odstranit všechna ručně přidaná zarovnání" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Zaostřit předchozí okno" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Přepnout orientaci rozdělení" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Zobrazit rozdělení obrazovky na adresáře a text" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Přepnout mezi zobrazením adresáře textu" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Výsledek sloučení nebyl uložen." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Uložit a ukončit" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Ukončit bez uložení" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Uložení výsledku sloučení selhalo." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Právě probíhá sloučení adresářů. Opravdu jej chcete ukončit?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Ukládám soubor..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Ukládám soubor pod jiným názvem..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Tisk neimplementován" #: kdiff3.cpp:815 msgid "Printing..." msgstr "Tisknu..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Výběr" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Tisk dokončen." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Tisk přerušen." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Ukončuji..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Přepínání panelu nástrojů..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Přepnout stavovou lištu..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (základní):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Soubor..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Adresář..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (nepovinné):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Prohodit/kopírovat názvy ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Prohodit %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Kopírovat %1->Výstup" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Prohodit %1<->Výstup" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Výstup (nepovinné):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Nastavit..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Hledat text:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Rozlišovat VELKÁ/malá" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Prohledat A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Prohledat B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Prohledat C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Prohledat výstup" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Hledat" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Testovat regulární výraz" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Automaticky sloučit regulární výraz:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Příklad řádku automatického sloučení:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Pro vyzkoušení automatického sloučení zkopírujte řádek z vašeho souboru." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Výsledek shody:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Historie spuštění regulárních výrazů:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Příklad počátečního řádku historie (včetně úvodního komentáře):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Zkopírujte úvodní řádek historie z vašeho souboru\n" "včetně úvodního komentáře." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Regulární výraz pro záznamy historie spouštění:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Klíč k setřídění historie:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Příklad počátečního řádku záznamů historie (bez úvodního komentáře):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Zkopírujte úvodní řádek záznamů historie z vašeho souboru,\n" "avšak vynechte úvodní komentář." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Výsledek klíče k setřídění:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Shoda úspěšná." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Shoda selhala." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Levé a pravé závorky se do regulárního výrazu nehodí." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Pokud nejsou jiné než ASCII znaky správně zobrazeny, změňte tuto hodnotu." #: optiondialog.cpp:465 msgid "Configure" msgstr "Nastavit" #: optiondialog.cpp:531 msgid "Font" msgstr "Písmo" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Výstupní písmo editoru & porovnávání" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Zobrazit rozdíly kurzívou" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Pro rozdíly zvolí styl písma Kurzíva.\n" "Pokud písmo kurzívu nepodporuje, pak se nic nezmění." #: optiondialog.cpp:568 msgid "Color" msgstr "Barva" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Nastavení barev" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Zobrazení editoru a porovnávání:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Barva popředí:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Barva pozadí:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Barva pozadí rozdílů:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Barva A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Barva B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Barva C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Barva konfliktů:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Barva pozadí rozdílů v aktuální oblasti:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Barva pozadí aktuální oblasti:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Barva pro ručně upravené rozdíly oblasti:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Zobrazení porovnání adresářů:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Barva nejnovějšího souboru:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Změna této barvy je účinná pouze při spuštění porovnávání dalšího adresáře." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Barva nejstaršího souboru:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Barva středně starého souboru:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Barva chybějících souborů:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Chování editoru" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tabulátor vloží mezery" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Vyp: Stisknutí tabulátoru vygeneruje příslušný počet míst.\n" "Vyp: Bude vložen znak tabulátoru." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Velikost tabulátoru:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automaticky odsadit" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Zap: Odsazení z předchozího řádku bude použito pro nový řádek.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Automaticky zkopírovat výběr" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Zap: Celý výběr je ihned vložen do schránky.\n" "Vyp: Výběr musíte zkopírovat např.: pomocí Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Automaticky detekovat" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Zvolte kódování konce řádku při uložení editovaného souboru.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Porovnávání" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Nastavení porovnávání" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Zacházet jako s prázdným místem." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorovat čísla" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Během průběhu srovnávání řádků ignoruje číselné znaky. (Podobné jako " "Ignorovat prázdná místa.)\n" "Může pomoci porovnávat soubory s číselnými znaky." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorovat komentáře C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Považuje komentáře C/C++ za prázdné místo." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorovat velikost písmen" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Nakládá s rozdíly malých a VELKÝCH písmen jako se změnami prázdných míst. " "('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Příkaz předběžného zpracování:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Uživatelsky nastavené předběžné zpracování. (Podrobnosti získáte v " "dokumentaci.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Příkaz předběžného zpracování shody řádku:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Toto předběžné zpracování je použito pouze při shodě řádku.\n" "(Podrobnosti získáte v dokumentaci.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Důkladné hledání (pomalejší)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Pro externí porovnávání přidá parametr --minimal.\n" "Analýza velkých souborů bude mnohem pomalejší." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Přizpůsobit B a C pro 3 vstupní soubory" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Zkusí přizpůsobit B a C při porovnávání nebo slučování třech vstupních " "souborů.\n" "Pro slučování se nedoporučuje, protože sloučení může způsobit více " "komplikací.\n" "(Výchozí ve vypnuto.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Nastavení sloučení" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Zpoždění pro automatický posun:" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "V režimu automatického posunu bude před přechodem na další konflikt \n" "zobrazen aktuální výběr po zadaný počet sekund. Rozsah: 0-2000ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Zobrazit informační dialogy" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Zobrazí dialog s informacemi o počtu konfliktů." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Výchozí (hodnota) pro mezery při sloučení dvou souborů:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Zvolit ručně" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Umožní slučovacímu algoritmu automaticky zvolit vstup pouze pro změny " "prázdných míst." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Výchozí (hodnota) pro mezery při sloučení třech souborů:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Automatické sloučení regulárních výrazů" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regulární výraz pro řádky, kde by měl KDiff3 automaticky zvolit zdroj.\n" "Pokud řádek s konfliktem odpovídá regulárnímu výrazu, pak bude vybrán C,\n" "pokud je dostupný, v opačném případě B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Spustit regulární výraz automatického sloučení při spuštění sloučení" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Spustí automatické sloučení regulárních výrazů\n" "ihned při spuštění sloučení.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Sloučení historie správy verzí" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regulární výraz pro spuštění záznamů historie správy verzí.\n" "Obvykle tento řádek obsahuje klíčové slovo \"$Log$\".\n" "Výchozí hodnota: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Záznamy historie správy verzí se skládají z několika řádků.\n" "Zadejte regulární výraz k rozeznání prvního řádku (bez úvodního komentáře).\n" "Pro seskupení klíčů, které zvolíte k setřídění použijte závorky.\n" "Pokud zůstane prázdné, předpokládá KDiff3, že prázdné řádky oddělují záznamy " "historie.\n" "Podrobnosti získáte v dokumentaci." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Třídit historii sloučení" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Setřídit historii správy verzí podle klíče." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Klíč k setřídění záznamů historie spuštění:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Každý pár závorek použitých v regulárním výrazu pro záznam historie " "spuštění\n" "seskupuje klíč, který lze použít pro setřídění.\n" "Zadejte seznam klíčů (číslovaný dle počtu výskytů začínající od 1)\n" " oddělený ',' (např. \"4,5,6,1,2,3,7\").\n" "Pokud zůstane prázdné, potom k setřídění nedojde.\n" "Podrobnosti získáte v dokumentaci." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Při spuštění sloučení sloučit historii správy verzí" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Při spuštění sloučení spustí automatické sloučení historie správy verzí." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Maximální počet záznamů historie:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Po zadaném čísle odstřihnout. Číslo -1 znamená nekonečno položek." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Vyzkoušet vaše regulární výrazy" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Příkaz při irelevantním sloučení:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Při zvolení bude po automatickém sloučení spuštěn tento skript,\n" "pokud nebudou zjištěny další relevantní změny.\n" "Voláno s parametry: NázevSouboru1 NázevSouboru3 NázevSouboru3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Automaticky uložit a ukončit při sloučení bez konfliktů" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Pokud je KDiff3 pro sloučení souboru spuštěn z příkazového řádku a všechny\n" "konflikty jsou vyřešeny bez zásahu uživatele, pak bude uložení a ukončení " "automatické.\n" "(Podobně jako volba příkazového řádku \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Adresář" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekurzivní adresáře" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Zda analyzovat podadresáře, nebo nikoliv." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Maska souborů:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Maska souborů, které mají být analyzovány.\n" "Zástupné znaky: '*' a '?'\n" " Více šablon lze zadat při použití oddělovače: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Anti-maska souborů:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Maska souborů, které mají být vyloučeny z analýzy.\n" "Zástupné znaky: '*' a '?'\n" " Více šablon lze zadat při použití oddělovače: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Anti-maska adresářů:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Maska adresářů, které mají být vyloučeny z analýzy.\n" "Zástupné znaky: '*' a '?'\n" " Více šablon lze zadat při použití oddělovače: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Použít .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Rozšiřuje anti-masku na vše co by CVS ignoroval.\n" "Pomocí souborů \".cvsignore\" může být zvolen adresář." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Prohledat skryté soubory a adresáře" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Prohledá soubory a adresáře s atributem Skrytý." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Prohledá soubory a adresáře začínající tečkou." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Sledovat odkazy souborů" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Zap: Porovná soubor na který odkaz ukazuje.\n" "Vyp: Porovná odkazy." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Sledovat odkazy adresářů" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Zap: Porovná adresář na který odkaz ukazuje.\n" "Vyp: Porovná odkazy." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Při porovnávání rozlišovat VELKÁ/malá písmena v názvu souboru" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Porovnávání adresářů bude porovnávat soubory a adresáře v případě, že se " "jejich názvy shodují.\n" "Volbu nastavte, pokud se názvy musí shodovat. (Výchozí pro Windows je Vyp., " "v ostatních případech Zap.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Režim porovnávání souborů" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binární porovnávání" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binárně porovnává každý soubor. (Výchozí)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Důkladná analýza" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Provede důkladnou analýzu a zobrazí statistické informace ve zvláštních " "sloupcích.\n" "(Pomalejší než binární porovnávání, mnohem pomalejší pro binární soubory.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Důvěřovat velikosti a datu změny (nejisté)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Předpokládá se, že soubory jsou shodné, pokud se shoduje jejich datum změny " "a velikost.\n" "Soubory se stejným obsahem, ale rozdílným datumem změny. budou považovány za " "rozdílné.\n" "Vhodné pro velké adresáře, nebo pomalé sítě." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Důvěřovat velikosti a datu, ale pokud se datum neshoduje, porovnat binárně " "(nejisté)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Předpokládá se, že soubory jsou shodné, pokud se shoduje jejich délka a " "datum změny.\n" "Pokud se datumy neshodují, ale velikost ano, bude použito binární " "porovnávání.\n" "Vhodné pro velké adresáře, nebo pomalé sítě." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Důvěřovat velikosti (nejisté)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Předpokládá se, že soubory jsou shodné, pokud je shodná jejich délka.\n" "Vhodné pro velké adresáře, nebo pomalé sítě, pokud bude datum upraven při " "stahování." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synchronizovat adresáře" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Nabízí uložení souborů v obou adresářích,\n" "takže jsou potom oba adresáře stejné.\n" "Funguje pouze při porovnávání dvou adresářů bez určení cíle." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Při rozdílech v mezerách pokládat za shodné" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Pokud se soubory liší pouze v mezerách, považují se za shodné.\n" "Aktivní pouze pokud je vybrána volba Důkladná analýza." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Kopírovat novější namísto sloučení (nejisté)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Nedívá se dovnitř souboru, ale použije novější soubor.\n" "(Použít jen pokud víte co děláte!)\n" "Účinné pouze při porovnávání dvou adresářů." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Zálohovat soubory (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Pokud by byl soubor uložen přes starý soubor, pak bude původní soubor\n" "uložen s příponou '.orig' místo toho, aby byl smazán." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Místní nastavení" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Jazyk (požadován restart)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Zvolte jazyk pro GUI, nebo \"Automaticky\".\n" "Změny se projeví po příštím spuštění KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Použít stejné kódování pro všechny:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Zapnout, pokud chcete změnit všechna kódování pouze podle změny prvního.\n" "Vypnout, pokud je požadováno rozdílné nastavení." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Pozn.: Místní kódování je " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Kódování souboru A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Pokud je volba zapnuta, bude rozeznáno kódování Unicode (UTF-16 a UTF-8).\n" "Pokud není soubor Unicode, pak bude vybrané kódování použito jako náhradní.\n" "(Detekce Unicode závisí na prvním bajtu souboru.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Automaticky rozeznat Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Kódování souboru B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Kódování souboru C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Kódování souboru pro výstup sloučení a uložení:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Automaticky vybrat" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Pokud je volba zapnuta, bude použito kódování ze vstupního souboru.\n" "V nejasných případech bude uživatel dotázán dialogem na výběr kódování pro " "uložení." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Kódování souboru pro soubory předběžného zpracování:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Jazyky čtené zprava doleva" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Některé jazyky se čtou zprava doleva.\n" "Tato volba podle toho upraví prohlížeč a editor." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integrace" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Nastavení integrace" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Ignorovat volby příkazového řádku:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Seznam voleb příkazového řádku, které by měly být ignorovány, pokud je " "KDiff3 používán jinými nástroji.\n" "Může být použito několik hodnot pokud jsou odděleny ';'\n" "Tímto bude potlačena chyba \"Unknown option\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Ukončit také klávesou Escape" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Rychlý způsob ukončení.\n" "Pro ty, kteří jsou zvyklí používat klávesu Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrovat s ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integruje s inteligentním ClearCase od IBM.\n" "Pozmění soubos s \"mapou\" v podadresáři ClearCase \"lib/mgrs\"\n" "(Povoleno pouze pokud je pro adresář ClearCase \"bin\" zadána cesta \"path" "\".)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Odstranit integraci ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Obnoví soubor se starou \"mapou\" z dříve provedené integrace ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Nekompatibilní písmo" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Pokračovat na vlastní nebezpečí" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Zvolte jiné písmo" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Budou obnovena všechna nastavení, nikoliv pouze aktuální téma." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Příkaz předběžného zpracování: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Následující vámi vybraná volba může změnit data:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Pravděpodobně není během slučování požadováno.\n" "Chcete toto nastavení vypnout, nebo pokračovat s tímto nastavením aktivním?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Volba je pro slučování nejistá" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Použít tuto volbu během slučování" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Zakázat nebezpečné volby" #: pdiff.cpp:300 msgid "Loading A" msgstr "Načítám A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Načítám B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Rozdíly: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Rozdíly řádků: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Načítám C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Rozdíly: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Rozdíly: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Rozdíly řádků: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Rozdíly řádků: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Všechny vstupní soubory obsahují stejný text, ale nejsou binárně shodné." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Soubor %1 a %2 obsahuje stejný text, ale není binárně shodný. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Některé vstupní soubory nevypadají jako čistě textové soubory.\n" "Vezměte na vědomí, že slučování v KDiff3 nebylo myšleno pro binární data.\n" "Pokračování na vlastní riziko." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Přerušit" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Otevírám soubory..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Chyba otevírání souboru" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Vyjímám výběr..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopíruji výběr do schránky..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Vkládám obsah schránky..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Uložit a pokračovat" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Pokračovat bez ukládání" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Vyhledávání dokončeno." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Vyhledávání dokončeno" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Není nic vybráno v žádném vstupním okně rozdílů." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Chyba ručního přidávání rozsahu k porovnání" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Nelze inicializovat úlohu KDiff3.\n" "To je obvykle způsobeno problémem při instalaci. Podrobnosti si prosím " "přečtěte v souboru README v balíčku se zdroji." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Zdeněk Pech" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "dom.toretto@seznam.cz" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Nastavit: KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Hlavní nástrojová lišta" kdiff3-0.9.97/po/el/0000755000175100001440000000000011626145654013350 5ustar joachimuserskdiff3-0.9.97/po/el/kdiff3plugin.po0000644000175100001440000000721111626145612016270 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Toussis Manolis , 2008. # Stelios , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-26 09:29+0300\n" "Last-Translator: Stelios \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Σύγκριση με το %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Συγχώνευση με το %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Αποθήκευση του '%1' για αργότερα" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Τριπλή συγχώνευση με βάση" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Σύγκριση με..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Καθαρισμός λίστας" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Σύγκριση" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Τριπλή σύγκριση" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Σχετικά με το πρόσθετο μενού του KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Πρόσθετο μενού του KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Ιστοσελίδα του KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Χρήση της επέκτασης μενού:\n" "Για απλή σύγκριση δύο επιλεγμένων αρχείων επιλέξτε το «Σύγκριση».\n" "Αν το δεύτερο αρχείο βρίσκεται κάπου αλλού, «Αποθηκεύστε» το πρώτο αρχείο " "για αργότερα. Θα εμφανιστεί στο υπομενού «Σύγκριση με...». Στη συνέχεια " "χρησιμοποιήστε το «Σύγκριση με» στο δεύτερο αρχείο.\n" "Για να κάνετε τριπλή συγχώνευση «Αποθηκεύστε» το αρχείο βάσης, και τον προς " "συγχώνευση κλάδο και επιλέξτε «Τριπλή συγχώνευση με βάση» στον άλλο κλάδο, ο " "οποίος θα χρησιμοποιηθεί ως προορισμός.\n" "Τα ίδια ισχύουν και για τη σύγκριση και συγχώνευση καταλόγων." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Σχετικά με το πρόσθετο μενού του KDiff3" kdiff3-0.9.97/po/el/CMakeLists.txt0000644000175100001440000000016311626145612016102 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(el ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/el/kdiff3fileitemactionplugin.po0000644000175100001440000000754111626145612021213 0ustar joachimusers# el translation of kdiff3fileitemactionplugin.po # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # # Stelios , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-26 04:33+0300\n" "Last-Translator: Stelios \n" "Language-Team: American English \n" "Language: en_US\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.2\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Σύγκριση με %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Συγχώνευση με %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "αποθήκευση του '%1' για αργότερα" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Τριπλή συγχώνευση με τη βάση" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Σύγκριση με ..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Καθαρισμός λίστας" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Σύγκριση" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Τριπλή σύγκριση" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Σχετικά με το πρόσθετο για το μενού του KDiff3 ..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Πρόσθετο ενέργειας αντικειμένου αρχείου KDiff3: Copyright (C) 2011 Joachim " "Eibl\n" "Ιστοσελίδα KDiff3: http://kdiff3.sourceforge.net\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Χρησιμοποιώντας την επέκταση contextmenu:\n" "Για απλή σύγκριση δύο επιλεγμένων αρχείων επιλέξτε «Σύγκριση».\n" "Αν το άλλο αρχείο βρίσκεται κάπου αλλού «Αποθηκεύστε» το πρώτο αρχείο για " "αργότερα. Θα εμφανιστεί στο υπομενού «Σύγκριση με ...». Τότε χρησιμοποιήστε " "το «Σύγκριση με» στο δεύτερο αρχείο.\n" "για τριπλή συγχώνευση πρώτα »Αποθηκεύστε» το βασικό αρχείο, έπειτα τον προς " "συγχώνευση κλάδο και επιλέξτε «Τριπλή συγχώνευση με τη βάση» στον άλλο κλάδο " "ο οποίος θα χρησιμεύσει ως προορισμός.\n" "Το ίδιο ισχύει και για τη σύγκριση και συγχώνευση καταλόγων." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Σχετικά με το πρόσθετο ενέργειας αντικειμένου αρχείου του KDiff3" kdiff3-0.9.97/po/el/kdiff3.po0000644000175100001440000032357511626145612015067 0ustar joachimusers# translation of kdiff3.po to Greek # # Spiros Georgaras , 2005, 2006, 2007. # Toussis Manolis , 2005, 2006, 2007, 2008, 2009. # George Pantsis , 2008. # Stelios , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-26 05:11+0300\n" "Last-Translator: Stelios \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Συνέχεια" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Ακύρωση" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Έξοδος" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Εντάξει" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Βοήθεια" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Προκαθορισμένα" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Αρχείο" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Επεξεργασία" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Κατάλογος" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Μετακίνηση" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Προβολή &διαφορών" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Συγχώνευση" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Παράθυρο" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Ρυθμίσεις" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Βοήθεια" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Σχετικά" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "Συ&γγραφέας" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Ευχαριστήρια σε" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Λειτουργία συγχώνευσης του τρέχοντος αντικειμένου" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Λειτουργία συγχρονισμού του τρέχοντος αντικειμένου" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Άνοιγμα" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Αποθήκευση" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Αποθήκευση ως..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Εκτύπωση..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Αποκοπή" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Αντιγραφή" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Επικόλληση" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Επιλογή όλων" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Εμφάνιση γραμμής εργαλείων" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Εμφάνιση γραμμής κατά&στασης" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Διαμόρφωση %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Σχετικά" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Αναζήτηση" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Εύρεση επόμενου" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Επιλογή γραμματοσειράς" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Επιλέξατε μία γραμματοσειρά μεταβλητού μήκους.\n" "\n" "Επειδή το πρόγραμμα δε διαχειρίζεται σωστά γραμματοσειρές μεταβλητού \n" "μήκους ίσως έχετε προβλήματα κατά την επεξεργασία.\n" "Επιθυμείτε τη συνέχεια ή την επιλογή μιας άλλης γραμματοσειράς;" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Μη συμβατή γραμματοσειρά." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Συνέχεια με δικιά σας ευθύνη" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Επιλέξτε μία άλλη γραμματοσειρά" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Για περισσότερη τεκμηρίωση, δείτε το μενού βοήθειας ή τον υποκατάλογο doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Χρήση KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Αγνόηση" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Έξοδος" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Η εγγραφή δεδομένων στο προσωρινό αρχείο απέτυχε." #: diff.cpp:255 msgid "From Clipboard" msgstr "Από το πρόχειρο" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Αναμένεται κενό έπειτα από το κλείσιμο του εισαγωγικού." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Τα εισαγωγικά δεν ταιριάζουν." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Μη αναμενόμενο εισαγωγικό με το όρισμα." #: diff.cpp:503 msgid "No program specified." msgstr "Δεν έχει προσδιοριστεί πρόγραμμα." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Η προεπεξεργασία απέτυχε. Ελέγξτε αυτή την εντολή:\n" "\n" " %1\n" "\n" "Η εντολή προεπεξεργασίας θα απενεργοποιηθεί τώρα." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Η δυνατότητα προεπεξεργασίας αντιστοίχησης γραμμών απέτυχε. Ελέγξτε αυτή την " "εντολή:\n" "\n" " %1\n" "\n" "Η δυνατότητα προεπεξεργασίας αντιστοίχησης γραμμών θα απενεργοποιηθεί τώρα." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Σφάλμα απώλειας δεδομένων:\n" "Αν αναπαράγεται το σφάλμα, παρακαλώ επικοινωνήστε με τον συγγραφέα.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Σοβαρό εσωτερικό σφάλμα" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Ανάμιξη δεσμών και κανονικών αρχείων." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Σύνδεσμος: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Μέγεθος. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Ημερομηνία & μέγεθος: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Η δημιουργία του προσωρινού αντιγράφου για το %1 απέτυχε." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Το άνοιγμα του %1 απέτυχε." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Σύγκριση αρχείου..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Σφάλμα ανάγνωσης από το %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Όνομα" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Λειτουργία" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Κατάσταση" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Μη λυμένο" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Λυμένο" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Μη κενό" #: directorymergewindow.cpp:359 msgid "White" msgstr "Κενό" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Αυτή τη στιγμή κάνετε μια συγχώνευση καταλόγου. Είστε σίγουροι ότι " "επιθυμείτε την εγκατάλειψη της συγχώνευσης και την επανασάρωση του καταλόγου;" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Προειδοποίηση" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Επανασάρωση" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Συνέχεια συγχώνευσης" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Το άνοιγμα των καταλόγων απέτυχε:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Ο κατάλογος Α \"%1\" δεν υπάρχει ή δεν είναι κατάλογος.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Ο κατάλογος Β \"%1\" δεν υπάρχει ή δεν είναι κατάλογος.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Ο κατάλογος Γ \"%1\" δεν υπάρχει ή δεν είναι κατάλογος.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Σφάλμα ανοίγματος Καταλόγου" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Ο κατάλογος προορισμού δεν πρέπει να είναι ίδιος με τους Α ή Β όταν " "συγχωνεύονται τρεις κατάλογοι.\n" "Κάντε έναν έλεγχο ξανά πριν συνεχίσετε." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Προειδοποίηση παραμέτρου" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Σάρωση καταλόγων..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Ανάγνωση καταλόγου Α" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Ανάγνωση καταλόγου Β" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Ανάγνωση καταλόγου Γ" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Μερικοί υποκατάλογοι δεν είναι αναγνώσιμοι στο" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Ελέγξτε τις άδειες χρήσης των υποκαταλόγων." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Έτοιμο." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Κατάσταση σύγκρισης καταλόγου" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Αριθμός υποκαταλόγων:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Αριθμός ίδιων αρχείων:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Αριθμός διαφορετικών αρχείων:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Αριθμός χειροκίνητων συγχωνεύσεων:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Αυτό επηρεάζει όλες τις συγχωνεύσεις." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Αλλαγή όλων των λειτουργιών συγχώνευσης" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Επεξεργασία " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Προς υλοποίηση." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Αντιγραφή του Α στο Β" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Αντιγραφή του Β στο Α" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Διαγραφή του Α" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Διαγραφή του Β" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Διαγραφή των Α & Β" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Συγχώνευση στο Α" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Συγχώνευση στο Β" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Συγχώνευση στα Α & Β" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Διαγραφή (αν υπάρχει)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Συγχώνευση" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Συγχώνευση (χειροκίνητη)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Σφάλμα: Σύγκρουση τύπου αρχείων" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Σφάλμα: τροποποιήθηκε και διαγράφτηκε" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Σφάλμα: Οι ημερομηνίες είναι ίδιες αλλά τα αρχεία όχι." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Αυτή η λειτουργία δεν είναι δυνατή αυτή τη στιγμή." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Μη δυνατή λειτουργία" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Αυτό δε θα έπρεπε να συμβεί ποτέ: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Αν μπορείτε να το αναπαράγετε, παρακαλώ επικοινωνήστε με το συγγραφέα του " "προγράμματος." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Σφάλμα προγράμματος" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Ένα σφάλμα παρουσιάστηκε κατά την αντιγραφή.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Σφάλμα" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Σφάλμα συγχώνευσης" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Σφάλμα." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Έγινε." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Δεν αποθηκεύτηκε." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Άγνωστη λειτουργία συγχώνευσης. (Δε θα έπρεπε να συμβεί ποτέ!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Άγνωστη λειτουργία συγχώνευσης." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Η συγχώνευση είναι έτοιμη να ξεκινήσει.\n" "\n" "Επιλέξτε το \"Εκτέλεση\" αν διαβάσατε αρκετές οδηγίες και γνωρίζετε τι " "κάνετε.\n" "Επιλέγοντας την \"Εξομοίωση\" θα γίνει αναφορά του τι θα συμβεί.\n" "\n" "Σημειώστε ότι το αυτό το πρόγραμμα βρίσκεται ακόμη σε κατάσταση beta και δεν " "υπάρχει ΕΓΓΥΗΣΗ ούτως ή άλλως! Κάντε αντίγραφα ασφαλείας για τα σημαντικά " "δεδομένα σας!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Εκκίνηση συγχώνευσης" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Εκτέλεση" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Εξομοίωση" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Το τονισμένο αντικείμενο έχει διαφορετικό τύπο σε διαφορετικούς καταλόγους. " "Επιλέξτε τι θέλετε να κάνετε." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Οι ημερομηνίες τροποποίησης των αρχείων είναι ίδιες αλλά τα αρχεία δεν " "είναι. Επιλέξτε τι θέλετε να κάνετε." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Το τονισμένο αντικείμενο άλλαξε σε έναν κατάλογο και διαγράφτηκε σε έναν " "άλλο. Επιλέξτε τι θέλετε να κάνετε." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Αυτή η λειτουργία δεν είναι αυτή τη στιγμή δυνατή γιατί η συγχώνευση " "καταλόγου εκτελείται αυτήν τη στιγμή." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Υπήρξε ένα σφάλμα στο τελευταίο βήμα.\n" "Επιθυμείτε τη συνέχεια με το αντικείμενο που προκάλεσε το σφάλμα ή " "επιθυμείτε την παράλειψή του;" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Συνέχεια συγχώνευσης μετά από ένα σφάλμα" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Συνέχεια με το τελευταίο αντικείμενο" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Παράλειψη αντικειμένου" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Παραλείφθηκε." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Σε πρόοδο..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Η λειτουργία συγχώνευσης ολοκληρώθηκε." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Η συγχώνευση ολοκληρώθηκε" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Η εξομοίωση συγχώνευσης ολοκληρώθηκε: Ελέγξτε αν συμφωνείτε με τις " "προτεινόμενες ενέργειες." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "Παρουσιάστηκε ένα σφάλμα. Πατήστε το Εντάξει για να δείτε λεπτομερείς " "πληροφορίες.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" "Σφάλμα: Κατά τη διαγραφή του %1: Η δημιουργία του αντιγράφου ασφαλείας " "απέτυχε." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "αναδρομική διαγραφή καταλόγου( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "διαγραφή ( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Σφάλμα: η διαγραφή καταλόγου απέτυχε κατά την προσπάθεια ανάγνωσης του " "καταλόγου." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Σφάλμα: η λειτουργία rmdir( %1 ) απέτυχε." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Σφάλμα: η διαγραφή απέτυχε." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "χειροκίνητη συγχώνευση( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Σημείωση: Μετά από μία χειροκίνητη συγχώνευση ο χρήστης θα πρέπει να " "συνεχίσει πατώντας F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Σφάλμα: η αντιγραφή ( %1 -> %2 ) απέτυχε. Η διαγραφή του υπάρχοντος " "προορισμού απέτυχε." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Αντιγραφή δεσμού( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Σφάλμα: η αντιγραφή δεσμού απέτυχε: Οι απομακρυσμένοι δεσμοί δεν " "υποστηρίζονται ακόμα." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Σφάλμα: η αντιγραφή δεσμού απέτυχε." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "αντιγραφή ( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Σφάλμα κατά την μετονομασία( %1 -> %2 ): Αδυναμία διαγραφής του υπάρχοντος " "προορισμού." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "μετονομασία ( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Σφάλμα: Η μετονομασία απέτυχε." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Σφάλμα κατά τη δημιουργία του καταλόγου %1. Αδύνατη η διαγραφή υπάρχοντος " "αρχείου." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Δημιουργία καταλόγου( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Σφάλμα κατά τη δημιουργία του καταλόγου." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Προορ." #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Κατ" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Τύπος" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Μέγεθος" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Ιδιοτ" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Τελευταία τροποποίηση" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Δεσμός-προορισμός" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Αρχείο" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "μη διαθέσιμο" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Προορ): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Βάση): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Προορ): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "Γ (Προορ): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Προορ: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Αποθήκευση κατάστασης συγχώνευσης καταλόγου ως..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Έναρξη/συνέχεια συγχώνευσης καταλόγου" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Εκτέλεση της λειτουργίας για το τρέχον αντικείμενο" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Σύγκριση του επιλεγμένου αρχείου" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Συγχώνευση του επιλεγμένου αρχείου" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Συγχώνευση\n" "αρχείου" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Αναδίπλωση όλων των υποκαταλόγων" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Ανάπτυξη όλων των υποκαταλόγων" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Επιλογή του Α για όλα τα αντικείμενα" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Επιλογή του Β για όλα τα αντικείμενα" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Επιλογή του Γ για Όλα τα αντικείμενα" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Λειτουργία αυτόματης επιλογής για όλα τα αντικείμενα" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Καμία λειτουργία για όλα τα αντικείμενα" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Εμφάνιση ταυτόσημων αρχείων" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Ταυτόσημα\n" "αρχεία" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Εμφάνιση διαφορετικών αρχείων" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Εμφάνιση αρχείων μόνο στο Α" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Αρχεία\n" "μόνο στο Α" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Εμφάνιση αρχείων μόνο στο Β" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Αρχεία\n" "μόνο στο Β" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Εμφάνιση αρχείων μόνο στο Γ" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Αρχεία\n" "μόνο στο Γ" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Σύγκριση άμεσα επιλεγμένων αρχείων" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Συγχώνευση άμεσα επιλεγμένων αρχείων" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Να μη γίνει τίποτα" #: directorymergewindow.cpp:2989 msgid "A" msgstr "Α" #: directorymergewindow.cpp:2990 msgid "B" msgstr "Β" #: directorymergewindow.cpp:2991 msgid "C" msgstr "Γ" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Διαγραφή των A && B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Συγχώνευση σε A && B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Παραλείφθηκε. (ορισμένο από τον χρήστη.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Εργαλείο για σύγκριση και συγχώνευση αρχείων και καταλόγων" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Διορθώσεις, συντηρητής πακέτου του Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Εγκαταστάτης Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "βοήθεια i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Διόρθωση προχείρου" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Βοήθεια KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Κλάση CvsIgnoreList από το Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Κλάση StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Διόρθωση ισότητας-χρωματισμού καταλόγου" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Διόρθωση για την αργή εκκίνηση στα Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext για τα Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Εξονυχιστικός έλεγχος, δοκιμή και πληροφορίες χρήσης" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Υποστήριξη Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Μεταφορά στο KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Θύρα OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ Πολλές ευχαριστίες σε όσους ανέφεραν σφάλματα και συνεισέφεραν ιδέες!" #: main.cpp:196 msgid "Merge the input." msgstr "Συγχώνευση της εισόδου." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Άμεσο αρχείο βάση. Για συμβατότητα με ορισμένα εργαλεία." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Αρχείο εξόδου. Εννοείται η επιλογή -m. Π.χ.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Αρχείο εξόδου, και πάλι. (Για συμβατότητα με ορισμένα εργαλεία.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Χωρίς γραφικό περιβάλλον αν όλες οι συγκρούσεις μπορούν να επιλυθούν " "αυτόματα. (Απαιτεί το -o file)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Να μη γίνει αυτόματη επίλυση συγκρούσεων. (Για συμβατότητα...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 1 (βάση)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Ορατή αντικατάσταση ονόματος για το αρχείο εισόδου 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Εναλλακτική ορατή αντικατάσταση ονόματος. Δώστε το μία φορά για κάθε είσοδο." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Αντικατάσταση μίας ρύθμισης διαμόρφωσης. Χρήση μία φορά για κάθε ρύθμιση. Π." "χ.: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Εμφάνιση λίστας ρυθμίσεων διαμόρφωσης και τρεχουσών τιμών." #: main.cpp:208 msgid "Use a different config file." msgstr "Χρήση ενός διαφορετικού αρχείου διαμόρφωσης." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "αρχείο1 για άνοιγμα (βάση, αν δεν καθοριστεί μέσω του --base)" #: main.cpp:212 msgid "file2 to open" msgstr "αρχείο2 για άνοιγμα" #: main.cpp:213 msgid "file3 to open" msgstr "αρχείο3 για άνοιγμα" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Αριθμός εναπομείναντων ανεπίλυτων συγκρούσεων: %1 ( %2 από τις οποίες " "αφορούν κενά)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Η έξοδος έχει τροποποιηθεί.\n" "Αν συνεχίσετε οι αλλαγές σας θα χαθούν." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Όλα τα αρχεία εισόδου είναι δυαδικά ίσα." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Όλα τα αρχεία εισόδου περιέχουν το ίδιο κείμενο." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Τα αρχεία %1 και %2 είναι δυαδικά ίσα.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Τα αρχεία %1 και %2 περιέχουν το ίδιο κείμενο. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Συνολικός αριθμός συγκρούσεων: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Αριθμός αυτόματα επιλυμένων συγκρούσεων: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Αριθμός ανεπίλυτων συγκρούσεων: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Συγκρούσεις" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<Χωρίς γραμμή πηγής>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<Σύγκρουση συγχώνευσης (μόνο κενών)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<Σύγκρουση συγχώνευσης>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Δεν έχουν επιλυθεί ακόμη όλες οι συγκρούσεις.\n" "Το αρχείο δεν αποθηκεύτηκε.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Συγκρούσεις που απομένουν" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Υπάρχει μια σύγκρουση στυλ τέλους γραμμής. Παρακαλώ επιλέξτε ένα στυλ τέλους " "γραμμής χειροκίνητα.\n" "Το αρχείο δεν αποθηκεύτηκε.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Η δημιουργία αντιγράφου ασφαλείας απέτυχε. Το αρχείο δεν αποθηκεύτηκε." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Σφάλμα εγγραφής αρχείου" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Σφάλμα κατά την εγγραφή." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Έξοδος" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Τροποποιημένο]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Κωδικοποίηση για την αποθήκευση" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Στυλ τέλους γραμμής:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Σύγκρουση" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Κωδικοποιητής από" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Δε βρέθηκαν αρχεία για σύγκριση." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Αποτυχία διαγραφής ενός παλιότερου αντιγράφου ασφαλείας, κατά τη δημιουργία " "αντιγράφου ασφαλείας. \n" "Όνομα αρχείου: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Αποτυχία μετονομασίας, κατά τη δημιουργία αντιγράφου ασφαλείας. \n" "Ονόματα αρχείων: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Ανάκτηση κατάστασης αρχείου: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Ανάγνωση αρχείου: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Εγγραφή αρχείου: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Τέλος μνήμης" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Δημιουργία καταλόγου: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Αφαίρεση καταλόγου: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Αφαίρεση αρχείου: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Δημιουργία συμβολικού δεσμού: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Μετονομασία αρχείου: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Αντιγραφή αρχείου: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Σφάλμα κατά την αντιγραφή: Το άνοιγμα του αρχείου για ανάγνωση απέτυχε. " "Όνομα αρχείου: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Σφάλμα κατά την αντιγραφή: Το άνοιγμα του αρχείου για εγγραφή απέτυχε. Όνομα " "αρχείου: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Σφάλμα κατά την αντιγραφή: Η ανάγνωση απέτυχε. Όνομα αρχείου: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Σφάλμα κατά την αντιγραφή: Η εγγραφή απέτυχε. Όνομα αρχείου: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Ανάγνωση καταλόγου: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Εμφάνιση καταλόγου: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Ακύρωση" #: difftextwindow.cpp:403 msgid "Line" msgstr "Γραμμή" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Μη διαθέσιμη γραμμή" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Κωδικοποίηση:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Πάνω γραμμή" #: difftextwindow.cpp:1769 msgid "End" msgstr "Τέλος" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Τρέχουσα διαμόρφωση:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Σφάλμα διαμόρφωσης επιλογής:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Χρησιμοποιήθηκε η επιλογή --auto, αλλά δεν καθορίστηκε αρχείο εξόδου." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Η επιλογή --auto αγνοήθηκε για τη σύγκριση καταλόγων." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Η αποθήκευση απέτυχε." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Το άνοιγμα αυτών των αρχείων απέτυχε:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Σφάλμα ανοίγματος αρχείου" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Ανοίγει έγγραφα για σύγκριση..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Επαναφόρτωση" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Αποθηκεύει το αποτέλεσμα της συγχώνευσης. Όλες οι συγκρούσεις θα πρέπει να " "έχουν επιλυθεί!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Αποθηκεύει το τρέχον έγγραφο ως..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Εκτύπωση των διαφορών" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Κλείνει την εφαρμογή" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Αποκοπή του επιλεγμένου τμήματος και τοποθέτηση στο πρόχειρο" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Αντιγραφή του επιλεγμένου τμήματος στο πρόχειρο" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Επικόλληση των περιεχομένων του πρόχειρου στην ενεργή θέση" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Επιλογή όλων στο τρέχον παράθυρο" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Αναζήτηση για μια συμβολοσειρά" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Αναζήτηση ξανά για μια συμβολοσειρά" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Ενεργοποιεί/απενεργοποιεί τη γραμμή κατάστασης" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Διαμόρφωση του KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Μετάβαση στην τρέχουσα διαφορά" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Τρέχουσα\n" "διαφορά" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Μετάβαση στη πρώτη διαφορά" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Πρώτη\n" "διαφορά" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Μετάβαση στην τελευταία διαφορά" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Τελευταία\n" "διαφορά" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Παράλειψη των διαφορών στα κενά όταν είναι απενεργοποιημένη η \"Εμφάνιση " "κενών\")" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Μη παράλειψη των διαφορών στα κενά ακόμη και αν είναι απενεργοποιημένη η " "\"Εμφάνιση κενών\")" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Μετάβαση στη προηγούμενη διαφορά" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Προηγούμενη\n" "διαφορά" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Μετάβαση στην επόμενη διαφορά" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Επόμενη\n" "διαφορά" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Μετάβαση στην προηγούμενη σύγκρουση" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Προηγούμενη\n" "σύγκρουση" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Μετάβαση στην επόμενη σύγκρουση" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Επόμενη\n" "σύγκρουση" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Μετάβαση στην προηγούμενη μη λυμένη σύγκρουση" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Προηγούμενη\n" "μη λυμένη" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Μετάβαση στην επόμενη μη λυμένη σύγκρουση" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Επόμενη\n" "μη λυμένη" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Επιλογή γραμμής(ών) από το Α" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Επιλογή\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Επιλογή γραμμής(ών) από το Β" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Επιλογή\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Επιλογή γραμμής(ών) από το Γ" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Επιλογή\n" "Γ" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Αυτόματη μετάβαση στην επόμενη μη λυμένη σύγκρουση μετά την επιλογή πηγής" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Αυτόματα\n" "επόμενο" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Εμφάνιση κενών && χαρακτήρων οριοθέτησης για διαφορές" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Κενοί\n" "χαρακτήρες" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Εμφάνιση κενών" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Κενές\n" "διαφορές" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Εμφάνιση αριθμών γραμμής" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Αριθμοί\n" "γραμμών" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Επιλογή παντού του Α" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Επιλογή παντού του Β" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Επιλογή παντού το Γ" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Επιλογή του Α για όλες τις μη λυμένες διαφορές" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Επιλογή του Β για όλες τις μη λυμένες διαφορές" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Επιλογή του Γ για όλες τις μη λυμένες διαφορές" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Επιλογή του Α για όλες τις μη λυμένες διαφορές κενών" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Επιλογή του Β για όλες τις μη λυμένες διαφορές κενών" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Επιλογή του Γ για όλες τις μη λυμένες διαφορές κενών" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Αυτόματη επίλυση απλών συγκρούσεων" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Ορισμός διαφορών στις συγκρούσεις" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Εκτέλεση κανονικής έκφρασης αυτόματης συγχώνευσης" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Αυτόματη επίλυση συγκρούσεων ιστορικού" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Διαίρεση διαφορών στην επιλογή" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Ένωση των επιλεγμένων διαφορών" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Εμφάνιση του παραθύρου Α" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Εμφάνιση του παραθύρου Β" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Εμφάνιση του παραθύρου Γ" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Εστίαση στο επόμενο παράθυρο" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Κανονική επισκόπηση" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Επισκόπηση Α με το Β" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Επισκόπηση Α με το Γ" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Επισκόπηση Β με το Γ" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Αναδίπλωση λέξεων στα παράθυρα διαφοράς" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Προσθήκη χειροκίνητης στοίχισης διαφορών" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Καθαρισμός όλων των χειροκίνητων στοιχίσεων διαφορών" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Εστίαση στο προηγούμενο παράθυρο" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Εναλλαγή προσανατολισμού διαίρεσης" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Διαίρεση προβολής καταλόγου && κειμένου" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Εναλλαγή μεταξύ προβολής καταλόγου && κειμένου" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Το αποτέλεσμα της συγχώνευσης δεν έχει αποθηκευτεί." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Αποθήκευση && έξοδος" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Έξοδος χωρίς αποθήκευση" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Αποτυχία αποθήκευσης του αποτελέσματος συγχώνευσης." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Αυτή τη στιγμή εκτελείται μια συγχώνευση καταλόγου. Είστε σίγουροι ότι " "επιθυμείτε να την εγκαταλείψετε;" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Αποθήκευση αρχείου..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Αποθήκευση αρχείου με ένα νέο όνομα..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Η εκτύπωση δεν πραγματοποιήθηκε." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Εκτύπωση..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Επιλογή" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Η εκτύπωση ολοκληρώθηκε." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Εγκατάλειψη εκτύπωσης." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Έξοδος..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Εναλλαγή γραμμής εργαλείων..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Εναλλαγή της γραμμής κατάστασης..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "Α (Βάση):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Αρχείο..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Κατάλογος..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "Γ (Προαιρετικό):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Εναλλαγή/Αντιγραφή ονομάτων..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Εναλλαγή %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Αντιγραφή %1->Έξοδο" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Εναλλαγή %1<->Έξοδος" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Έξοδος (προαιρετική):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Διαμόρφωση..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Εντάξει" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Αναζήτηση κειμένου:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Διάκριση πεζών/κεφαλαίων" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Αναζήτηση στο Α" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Αναζήτηση στο Β" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Αναζήτηση στο Γ" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Έξοδος αναζήτησης" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Αναζήτηση" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Δοκιμή κανονικής έκφρασης" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Κανονική έκφραση αυτόματης συγχώνευσης:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Παράδειγμα γραμμής αυτόματης συγχώνευσης:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Για τη δοκιμή αυτόματης συγχώνευσης, αντιγράψτε μια γραμμή όπως αυτή " "χρησιμοποιείται στα αρχεία σας." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Αποτέλεσμα ταιριάσματος:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Κανονική έκφραση έναρξης ιστορικού:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Παράδειγμα γραμμής αρχής ιστορικού (χωρίς το σχόλιο που προηγείται):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Αντιγραφή μίας γραμμής αρχής ιστορικού όπως αυτή χρησιμοποιείται στα αρχεία " "σας,\n" "χωρίς να περιληφθεί το σχόλιο που προηγείται." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Κανονική έκφραση για την έναρξη της καταχώρησης ιστορικού:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Σειρά κλειδιών ταξινόμησης ιστορικού:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Παράδειγμα γραμμής αρχής καταχώρησης ιστορικού (χωρίς το σχόλιο που " "προηγείται):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Αντιγράψτε μία γραμμή αρχής καταχώρησης ιστορικού όπως αυτή χρησιμοποιείται " "στα αρχεία σας,\n" "χωρίς να περιλάβετε το σχόλιο που προηγείται." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Αποτέλεσμα κλειδιού ταξινόμησης:" #: smalldialogs.cpp:508 msgid "OK" msgstr "Εντάξει" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Επιτυχία ταιριάσματος." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Αποτυχία ταιριάσματος." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Αδυναμία ταιριάσματος παρενθέσεων ανοίγματος και κλεισίματος στην κανονική " "έκφραση." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Τροποποιήστε αυτό αν οι μη ASCII χαρακτήρες δεν εμφανίζονται σωστά." #: optiondialog.cpp:465 msgid "Configure" msgstr "Διαμόρφωση" #: optiondialog.cpp:531 msgid "Font" msgstr "Γραμματοσειρά" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Γραμματοσειρά επεξεργαστή & εξόδου διαφορών" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Πλάγια γραφή για διαφορές" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Επιλέγει την πλάγια έκδοση της γραμματοσειράς για τις διαφορές.\n" "Αν η γραμματοσειρά δεν υποστηρίζει τους πλάγιους χαρακτήρες, τότε αυτό δεν " "έχει αποτέλεσμα." #: optiondialog.cpp:568 msgid "Color" msgstr "Χρώμα" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Ρυθμίσεις χρωμάτων" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Προβολές επεξεργαστή και διαφορών:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Χρώμα προσκηνίου:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Χρώμα φόντου:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Χρώμα φόντου διαφορών:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Χρώμα Α:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Χρώμα Β:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Χρώμα Γ:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Χρώμα σύγκρουσης:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Τρέχον εύρος χρώματος φόντου:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Τρέχον εύρος χρώματος φόντου διαφορών:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Χρώμα για χειροκίνητα στοιχισμένα εύρη διαφορών:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Προβολή σύγκρισης καταλόγου:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Χρώμα νεότερου αρχείου:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Η τροποποίηση αυτού του χρώματος θα έχει ισχύ κατά την επόμενη σύγκριση " "καταλόγου." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Χρώμα παλαιότερου αρχείου:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Χρώμα μέσου αρχείου:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Χρώμα αρχείων που λείπουν:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Επεξεργαστής" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Συμπεριφορά επεξεργαστή" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Το Tab εισάγει κενά" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Ενεργοποιημένο: Πατώντας το tab εισάγεται ο κατάλληλος αριθμός κενών.\n" "Απενεργοποιημένο: Θα εισαχθεί ο χαρακτήρας στηλοθέτη (tab)." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Μέγεθος στηλοθέτη:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Αυτόματη χρήση εσοχών" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" "Ενεργοποιημένο: Η εσοχή της προηγούμενης γραμμής θα χρησιμοποιηθεί για μια " "νέα γραμμή.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Αυτόματη αντιγραφή επιλογής" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Ενεργοποιημένο: Οποιαδήποτε επιλογή γράφεται άμεσα στο πρόχειρο. " "Απενεργοποιημένο: Θα πρέπει να την αντιγράψετε εσείς π.χ. μέσω του Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Αυτόματη ανίχνευση" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Καθορίζει τον τύπο τέλους γραμμής όταν αποθηκεύεται ένα επεξεργασμένο " "αρχείο.\n" "DOS/Windows: CR+LF; UNIX: LF; με τα CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Ρυθμίσεις του Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Θεώρηση ως κενά." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Παράβλεψη αριθμών" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Παράβλεψη αριθμών κατά τη φάση ταιριάσματος γραμμών. (Αντίστοιχο με την " "παράβλεψη κενών).\n" "Μπορεί να φανεί χρήσιμο κατά τη σύγκριση αρχείων με αριθμητικά δεδομένα." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Παράβλεψη σχολίων C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Θεώρηση των σχολίων C/C++ σαν κενά." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Αγνόηση διάκρισης πεζών/κεφαλαίων" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Χειρισμός των διαφορών σε πεζά/κεφαλαία ως αλλαγές κενών. ('α'<=>'Α')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Εντολή προεπεξεργαστή:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Προεπεξεργασία ορισμένη από το χρήστη. (Δείτε τα εγχειρίδια για " "λεπτομέρειες)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Εντολή προεπεξεργαστή για ταίριασμα γραμμών:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Ο προεπεξεργαστής χρησιμοποιείται μόνο κατά το ταίριασμα γραμμών.\n" "(Δείτε τα εγχειρίδια για λεπτομέρειες)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Εις βάθος ανάλυση (πιο αργό)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Ενεργοποιεί την επιλογή --minimal για το εξωτερικό diff.\n" "Η ανάλυση μεγάλων αρχείων θα είναι αισθητά πιο αργή." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Στοίχιση Β και Γ για 3 αρχεία εισόδου" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Προσπάθεια στοίχισης των Β και Γ κατά τη σύγκριση ή συγχώνευση τριών αρχείων " "εισόδου.\n" "
Δεν προτείνεται για τις συγχωνεύσεις καθώς αυτή μπορεί να είναι πολύπλοκη " "διαδικασία.\n" "
(Προκαθορισμένα ανενεργό.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Ρυθμίσεις συγχώνευσης" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Καθυστέρηση αυτόματης μετάβασης (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Όταν βρίσκεστε στη λειτουργία αυτόματης μετάβασης εμφανίζεται το αποτέλεσμα " "της τρέχουσας επιλογής\n" "για τον καθορισμένο χρόνο, πριν την μεταπήδηση στην επόμενη σύγκρουση. " "Εύρος: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Εμφάνιση παραθύρων διαλόγου πληροφοριών" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" "Εμφανίζει ένα παράθυρο διαλόγου με πληροφορία για τον αριθμό των συγκρούσεων." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Προκαθορισμός κενών διαφορών συγχώνευσης 2 αρχείων:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Χειροκίνητη επιλογή" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Επιτρέπει στον αλγόριθμο συγχώνευσης την αυτόματη επιλογή μιας εισόδου για " "διαφορές μόνο κενών." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Προκαθορισμός κενών διαφορών συγχώνευσης 3 αρχείων:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Κανονική έκφραση αυτόματης συγχώνευσης" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Κανονική έκφραση για γραμμές όπου το KDiff3 θα πρέπει να επιλέξει αυτόματα " "μία πηγή.\n" "Αν μία γραμμή με σύγκρουση ταιριάζει στην κανονική έκφραση τότε θα επιλεχθεί " "το Γ, αν\n" "είναι διαθέσιμο, ενώ σε άλλη περίπτωση το Β." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Εκτέλεση κανονικής έκφρασης αυτόματης συγχώνευσης στην αρχή της συγχώνευσης" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Εκτέλεση της συγχώνευσης για κανονικές εκφράσεις αυτόματης συγχώνευσης\n" "αμέσως μετά την έναρξη της συγχώνευσης.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Συγχώνευση ιστορικού ελέγχου έκδοσης" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Κανονική έκφραση για την έναρξη της καταχώρησης του ιστορικού συγχώνευσης.\n" "Συνήθως αυτή η γραμμή περιέχει τη λέξη κλειδί \"$Log$\".\n" "Η προκαθορισμένη τιμή είναι: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Μία καταχώρηση ιστορικού συγχώνευσης αποτελείται από πολλές γραμμές.\n" "Καθορίστε την κανονική έκφραση για τον εντοπισμό της πρώτης γραμμής (χωρίς " "το σχόλιο που προηγείται).\n" "Χρησιμοποιείστε παρενθέσεις για την ομαδοποίηση των κλειδιών που επιθυμείτε " "για την ταξινόμηση.\n" "Αν ορισθεί σαν κενή, τότε το KDiff3 θεωρεί ότι οι καταχωρήσεις ιστορικού " "διαχωρίζονται με κενές γραμμές.\n" "Δείτε την τεκμηρίωση για λεπτομέρειες." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ταξινόμηση ιστορικού συγχώνευσης" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ταξινόμηση ιστορικού ελέγχου εκδόσεων κατά ένα κλειδί." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Σειρά ταξινόμησης ιστορικού ελέγχου εκδόσεων:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Κάθε ζεύγος παρενθέσεων της κανονικής έκφρασης για την έναρξη καταχώρησης " "ιστορικού\n" "δημιουργεί ένα κλειδί που μπορεί να χρησιμοποιηθεί για ταξινόμηση.\n" "Καθορίστε τη λίστα των κλειδιών (τα οποία αριθμούνται με σειρά εμφάνισης\n" "ξεκινώντας από το 1) χρησιμοποιώντας το ',' ως διαχωριστικό (π.χ. " "\"4,5,6,1,2,3,7\").\n" "Αν μείνει κενό, τότε δεν θα γίνει ταξινόμηση.\n" "Δείτε την τεκμηρίωση για λεπτομέρειες." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Συγχώνευση ιστορικού ελέγχου έκδοσης κατά την έναρξη συγχώνευσης" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Εκτέλεση συγχώνευσης ιστορικού ελέγχου έκδοσης κατά την έναρξη συγχώνευσης." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Μέγιστος αριθμός καταχωρήσεων ιστορικού:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Αφαίρεση μετά από καθορισμένο αριθμό. Χρησιμοποιήστε το -1 για απεριόριστο " "αριθμό καταχωρήσεων." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Δοκιμή των κανονικών εκφράσεών σας" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Εντολή συγχώνευσης με σχετικού:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Αν καθοριστεί αυτό το σενάριο εκτελείται μετά την αυτόματη συγχώνευση\n" "όταν δεν εντοπιστούν άλλες σχετικές τροποποιήσεις.\n" "Καλείται με παραμέτρους τα: όνομααρχείου1 όνομααρχείου2 όνομααρχείου3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Αυτόματη αποθήκευση και έξοδος κατά τη συγχώνευση χωρίς συγκρούσεις" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Όταν το KDiff3 εκκινήσει για κάποια συγχώνευση αρχείου από τη γραμμή " "εντολών\n" "και όλες οι συγκρούσεις είναι επιλύσιμες χωρίς είσοδο από το χρήστη τότε " "γίνεται αυτόματη αποθήκευση και έξοδος.\n" "(Παρόμοιο με την επιλογή της γραμμής εντολών \"--auto\"." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Κατάλογος" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Αναδρομικά στους καταλόγους" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Αν θα αναλυθούν οι υποκατάλογοι ή όχι." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Μοτίβα αρχείου:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Μοτίβα αρχείων που θα αναλυθούν. \n" "Σύμβολα υποκατάστασης: '*' και '?'\n" "Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Αντίστροφα μοτίβα αρχείου:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Μοτίβα αρχείων που θα εξαιρεθούν από την ανάλυση. \n" "Σύμβολα υποκατάστασης: '*' και '?'\n" "Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Αντίστροφα μοτίβα καταλόγου:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Μοτίβα καταλόγων που θα εξαιρεθούν από την ανάλυση. \n" "Σύμβολα υποκατάστασης: '*' και '?'\n" "Μπορούν να οριστούν πολλαπλά μοτίβα χρησιμοποιώντας το διαχωριστικό: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Χρήση .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Επέκταση του αντίστροφου μοτίβου σε οτιδήποτε που θα αγνοηθεί στο CVS.\n" "Μέσω των τοπικών αρχείων \".cvsignore\" μπορεί αυτό να είναι συγκεκριμένου " "καταλόγου." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Αναζήτηση κρυφών αρχείων και καταλόγων" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Αναζητεί αρχεία και καταλόγους που είναι κρυφά." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Αναζητεί αρχεία και καταλόγους που αρχίζουν με '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Ακολούθηση δεσμών αρχείων" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Ενεργοποιημένο: Σύγκριση του αρχείου στο οποίο δείχνει ο δεσμός.\n" "Απενεργοποιημένο: Σύγκριση των δεσμών." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Ακολούθηση δεσμών καταλόγων" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Ενεργοποιημένο: Σύγκριση του καταλόγου στο οποίο δείχνει ο δεσμός.\n" "Απενεργοποιημένο: Σύγκριση των δεσμών." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Σύγκριση αρχείων με ευαισθησία κεφαλαίων/πεζών" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Η σύγκριση καταλόγων θα εκτελέσει σύγκριση των αρχείων όταν ταιριάζουν τα " "ονόματά τους.\n" "Ενεργοποιήστε αυτή την επιλογή όταν τα ονόματα των αρχείων πρέπει να " "ταιριάζουν. (Προκαθορισμένο για τα Windows είναι ανενεργό, ενώ σε άλλη " "περίπτωση είναι ενεργό.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Λειτουργία σύγκρισης αρχείου" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Δυαδική σύγκριση" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Δυαδική σύγκριση του κάθε αρχείου (Προκαθορισμένο)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Πλήρης ανάλυση" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Πραγματοποιεί πλήρη ανάλυση και εμφανίζει στατιστικά σε επιπλέον στήλες.\n" "(Πιο αργό από τη δυαδική σύγκριση, και πολύ πιο αργό για δυαδικά αρχεία)." #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Εμπιστοσύνη στο μέγεθος και την ημερομηνία τροποποίησης (μη ασφαλές)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Θεώρησε ότι τα αρχεία είναι ίσα αν η ημερομηνία τροποποίησης και το μέγεθος " "των αρχείων είναι ίσα.\n" "Αρχεία με ίσα περιεχόμενα αλλά διαφορετικές ημερομηνίες τροποποίησης θα " "εμφανίζονται ως διαφορετικά.\n" "Χρήσιμο για μεγάλους καταλόγους ή αργά δίκτυα." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Δείξτε εμπιστοσύνη στο μέγεθος και στην ημερομηνία, αλλά χρησιμοποιήστε " "δυαδική σύγκριση αν η ημερομηνία δεν είναι ίδια (μη ασφαλές)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Θεωρείστε ότι τα αρχεία είναι ίσα αν η ημερομηνία τροποποίησης και το " "μέγεθος των αρχείων είναι ίσα.\n" "Αν οι ημερομηνίες δεν είναι ίσες αλλά τα μεγέθη είναι, τότε να γίνει χρήση " "δυαδικής σύγκρισης.\n" "Χρήσιμο για μεγάλους καταλόγους ή αργά δίκτυα." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Δείξτε εμπιστοσύνη στο μέγεθος (μη ασφαλές)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Θεώρησε ότι τα αρχεία είναι ίσα αν το μέγεθος των αρχείων είναι ίσο.\n" "Χρήσιμο για μεγάλους καταλόγους ή αργά δίκτυα όπου η ημερομηνία " "τροποποιείται κατά τη λήψη." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Συγχρονισμός καταλόγων" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Προσφέρει την αποθήκευση αρχείων και στους δύο καταλόγους\n" "ώστε στο τέλος οι δύο κατάλογοι να είναι ίδιοι.\n" "Δουλεύει μόνο κατά τη σύγκριση δύο καταλόγων χωρίς να έχει καθοριστεί " "προορισμός." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Οι διαφορές των κενών θεωρούνται ίσες" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Αν τα αρχεία διαφέρουν μόνο σε κενούς χαρακτήρες θεωρούνται ότι είναι ίσα.\n" "Αυτό είναι ενεργοποιημένο μόνο όταν επιλεγεί η πλήρης ανάλυση." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Αντιγραφή του νεότερου αντί για συγχώνευση (μη ασφαλές)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Να μη γίνει ανάλυση, αλλά απλά να ληφθεί το νεότερο αρχείο.\n" "(Χρησιμοποιήστε το μόνο αν ξέρετε τι κάνετε!)\n" "Δουλεύει μόνο όταν συγκρίνονται δύο κατάλογοι." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Δημιουργία αντιγράφων ασφαλείας (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Όταν ένα αρχείο αποθηκευτεί με το όνομα ενός υπάρχοντος αρχείου, το υπάρχον " "αρχείο θα μετονομαστεί με επέκταση '.orig' αντί να διαγραφεί." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Ρυθμίσεις περιοχής" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Γλώσσα (απαιτείται επανεκκίνηση)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Επιλέξτε τη γλώσσα των μηνυμάτων του γραφικού περιβάλλοντος ή επιλέξτε " "\"Αυτόματη\".\n" "Για να γίνει η αλλαγή της γλώσσας, επανεκκινήστε το KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Χρήση της ίδιας κωδικοποίησης παντού:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Ενεργοποιώντας αυτή την επιλογή επιτρέπει την αλλαγή όλων των κωδικοποιήσεων " "αλλάζοντας μόνο την πρώτη.\n" "Απενεργοποιήστε αυτή την επιλογή αν χρειάζεστε διαφορετικές επί μέρους " "επιλογές." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Σημείωση: Η τοπική κωδικοποίηση είναι " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Κωδικοποίηση αρχείου για το Α:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Αν ενεργοποιηθεί θα γίνει ανίχνευση της κωδικοποίησης Unicode (UTF-16 or " "UTF-8).\n" "Αν το αρχείο δεν είναι Unicode θα χρησιμοποιηθεί η επιλεγμένη κωδικοποίηση.\n" "(Η ανίχνευση του Unicode εξαρτάται από τα πρώτα byte του αρχείου.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Αυτόματη ανίχνευση Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Κωδικοποίηση αρχείου για το Β:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Κωδικοποίηση αρχείου για το Γ:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Κωδικοποίηση αρχείου για την έξοδο συγχώνευσης και την αποθήκευση:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Αυτόματη επιλογή" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Αν ενεργοποιηθεί, θα χρησιμοποιηθεί η κωδικοποίηση του αρχείου εισόδου.\n" "Σε περίπτωση αμφιβολίας θα εμφανιστεί ένα παράθυρο διαλόγου όπου ο χρήστης " "θα πρέπει να επιλέξει την κωδικοποίηση για την αποθήκευση." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Κωδικοποίηση για τα αρχεία του προεπεξεργαστή:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Γλώσσας αναγνώσιμη από δεξιά στα αριστερά" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Μερικές γλώσσες διαβάζονται από δεξιά στα αριστερά.\n" "Αυτή η ρύθμιση θα τροποποίηση τον προβολέα και τον επεξεργαστή κατάλληλα." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Ενσωμάτωση" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Ρυθμίσεις ενσωμάτωσης" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Επιλογές γραμμής εντολών για αγνόηση:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Λίστα τον επιλογών της γραμμής εντολών που θα πρέπει να αγνοηθούν όταν το " "KDiff3 χρησιμοποιείται από άλλα εργαλεία.\n" "Μπορούν να ορισθούν πολλές τιμές διαχωρισμένες με το ';'\n" "Αυτό καταστέλλει το σφάλμα \"Άγνωστης επιλογής\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Έξοδος επίσης και με το πλήκτρο Esc" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Γρήγορη μέθοδος εξόδου.\n" "
Γι' αυτούς που έχουν συνηθίσει τη χρήση του πλήκτρου Esc." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Ενσωμάτωση με το ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Ενσωμάτωση με το Rational ClearCase από την IBM.\n" "Τροποποιεί το αρχείο \"map\" στον υποκατάλογο ClearCase \"lib/mgrs\"\n" "(Ενεργοποιημένο μόνο αν ο κατάλογος \"bin\" του ClearCase βρίσκεται στη " "διαδρομή του συστήματος.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Αφαίρεση ενσωμάτωσης ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Επαναφορά του παλιού αρχείου \"map\" πριν την εκτέλεση ενσωμάτωσης Clearcase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Μη συμβατή γραμματοσειρά" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Συνέχεια με δικιά σας ευθύνη" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Επιλέξτε μία άλλη γραμματοσειρά" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Αυτό επαναφέρει όλες τις επιλογές. Όχι μόνο αυτές του τρέχοντος θέματος." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Εντολή προεπεξεργαστή: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Οι ακόλουθες επιλογές που κάνατε ίσως τροποποιήσουν δεδομένα:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Το πιθανότερο είναι ότι αυτό δεν είναι επιθυμητό κατά τη συγχώνευση.\n" "Θέλετε να απενεργοποιήσετε αυτές τις επιλογές ή να συνεχίσετε όπως είναι;" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Μη ασφαλής επιλογή για συγχώνευση" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Χρήση αυτών των επιλογών κατά τη συγχώνευση" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Απενεργοποίηση μη ασφαλών επιλογών" #: pdiff.cpp:300 msgid "Loading A" msgstr "Φόρτωση του Α" #: pdiff.cpp:304 msgid "Loading B" msgstr "Φόρτωση του Β" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Διαφορά: Α <-> Β" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Διαφορά γραμμής: Α <-> Β" #: pdiff.cpp:338 msgid "Loading C" msgstr "Φόρτωση του Γ" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Διαφορά: Β <-> Γ" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Διαφορά: Α <-> Γ" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Διαφορά γραμμής: Β <-> Γ" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Διαφορά γραμμής: Α <-> Γ" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Όλα τα αρχεία εισόδου περιέχουν το ίδιο κείμενο, αλλά δεν είναι δυαδικά ίσα." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Τα αρχεία %1 και %2 περιέχουν το ίδιο κείμενο, αλλά δεν είναι δυαδικά ίσα.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Μερικά από τα αρχεία εισόδου δε φαίνεται να είναι αρχεία κειμένου.\n" "Σημειώστε ότι το KDiff3-merge δε φτιάχτηκε για δυαδικά δεδομένα.\n" "Αν συνεχίσετε θα είναι με δική σας ευθύνη." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Κάποιοι χαρακτήρες εισόδου δεν ήταν δυνατό να μετατραπούν σε έγκυρο " "unicode.\n" "Ίσως χρησιμοποιείτε λανθασμένο τύπο κωδικοποίησης (π.χ. UTF-8 για μη UTF-8 " "αρχεία).\n" "Μην αποθηκεύσετε το αποτέλεσμα αν δεν είστε βέβαιοι. Συνεχίστε με δική σας " "ευθύνη.\n" "Τα επηρεαζόμενα αρχεία εισόδου είναι στο %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Εγκατάλειψη" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Άνοιγμα αρχείων..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Σφάλμα ανοίγματος αρχείου" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Αποκοπή επιλογής..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Αντιγραφή της επιλογής στο πρόχειρο..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Εισαγωγή των περιεχομένων του προχείρου..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Αποθήκευση && συνέχεια" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Συνέχεια χωρίς αποθήκευση" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Η αναζήτηση ολοκληρώθηκε." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Η αναζήτηση ολοκληρώθηκε" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Δεν έχει επιλεγεί τίποτα σε κανένα παράθυρο εισαγωγής διαφορών." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Σφάλμα κατά την προσθήκη χειροκίνητου εύρους διαφορών" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Αδυναμία αρχικοποίησης του τμήματος του KDiff3\n" "Αυτό συνήθως συμβαίνει εξαιτίας ενός προβλήματος εγκατάστασης. Παρακαλώ " "διαβάστε το αρχείο README στο πακέτο του πηγαίου κώδικα για λεπτομέρειες." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Τούσης Μανώλης, Γιώργος Πάντσης" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "manolis@koppermind.homelinux.org, gpantsis@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Διαμόρφωση του KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Κύρια γραμμή εργαλείων" #~ msgid "Directory Merge" #~ msgstr "Συγχώνευση καταλόγου" kdiff3-0.9.97/po/ar/0000755000175100001440000000000011626145654013352 5ustar joachimuserskdiff3-0.9.97/po/ar/CMakeLists.txt0000644000175100001440000000016311626145607016110 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ar ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ar/kdiff3.po0000644000175100001440000016663111626145607015073 0ustar joachimusers# translation of kdiff3.po to Arabic # # محمد سعد Mohamed SAAD , 2006. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2006-12-03 19:06+0100\n" "Last-Translator: محمد سعد Mohamed SAAD \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "&تابع" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "العملية" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "" #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Delete A" msgid "Select All" msgstr "أمحي A" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "فشل كتابة بيانات الحافظة إلى الملف المؤقت." #: diff.cpp:255 msgid "From Clipboard" msgstr "من الحافظة" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "إحتمال فشل الإجراء التمهيدي. إفحص هذا الأمر:\n" "\n" " %1\n" "\n" "سيتم تعطيل الإجراء التمهيدي الآن." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "خطأ داخلي فادح" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "القياس: " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "التاريخ و القياس: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "فشل إنشاء نسخة مؤقتة من %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "فشل فتح %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "جاري مقارنة الملف..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "خطأ عند القراءة من %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "الاسم" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "العملية" #: directorymergewindow.cpp:358 msgid "Status" msgstr "الحالة" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "أبيض" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "إعادة المسح" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "فشل فتح المجلّدات:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "الدليل A \"%1\" غير موجود أو هو ليس دليل.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "الدليل B \"%1\" غير موجود أو هو ليس دليل.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "الدليل C \"%1\" غير موجود أو هو ليس دليل.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "خطأ فتح الدليل" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "تحذير بشأن الضوابط" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "جاري مسح المجلّدات...." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "قراءة الدليل A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "قراءة الدليل B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "قراءة الدليل C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "إفحص الأذون للمجلّدات الفرعية." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "جاهز." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "حالة مقارنة المجلّدات" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "عدد المجلّدات الفرعية:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "عدد الملفات المتساوية:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "عدد الملفات المختلفة:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "جاري الإجراء " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "واجب العمل." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "أنسخ A إلى B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "أنسخ B إلى A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "أمحي A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "أمحي B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "أمحي A و B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "أمحي ( إذا كان موجود )" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "هذه العملية ليست ممكنة حالياً." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "العملية غير ممكنة" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "خطأ في البرنامج" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "حصل خطأ عند النسخ.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "خطأ." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "خطأ." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "إنتهيت." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "غير محفوظ." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "إفعله" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "تابع بلبند الأخير" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "جاري..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "حصل خطأ. إضغط موافق لترى المعلومات المفصلة.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "نسخ( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "إعادة تسمية( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "خطأ: فشلت إعادة التسمية." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "خطأ عند إنشاء الدليل." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "الهدف" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "الدليل" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "النوع" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "الحجم" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "آخر تغيير" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "غير متوفر" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "الهدف: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "نفّذ العملية للبند الحالي" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "قارن الملفات المختارة" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "عملية إختيار تلقائية لكل البنود" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "لا عملية لكل البنود" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "أعرض الملفات المتشابهة" #: directorymergewindow.cpp:2977 #, fuzzy #| msgid "Show Identical Files" msgid "" "Identical\n" "Files" msgstr "أعرض الملفات المتشابهة" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "أعرض الملفات المختلفة" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "أعرض الملفات فقط في أ" #: directorymergewindow.cpp:2979 #, fuzzy #| msgid "Show Files only in A" msgid "" "Files\n" "only in A" msgstr "أعرض الملفات فقط في أ" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "أعرض الملفات فقط في ب" #: directorymergewindow.cpp:2980 #, fuzzy #| msgid "Show Files only in B" msgid "" "Files\n" "only in B" msgstr "أعرض الملفات فقط في ب" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "أعرض الملفات فقط في س" #: directorymergewindow.cpp:2981 #, fuzzy #| msgid "Show Files only in C" msgid "" "Files\n" "only in C" msgstr "أعرض الملفات فقط في س" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "لا تفعل أي شيئ" #: directorymergewindow.cpp:2989 msgid "A" msgstr "أ" #: directorymergewindow.cpp:2990 msgid "B" msgstr "ب" #: directorymergewindow.cpp:2991 msgid "C" msgstr "س" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "أمحي أ و ب" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "من الحافظة" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy #| msgid "Directory Comparison Status" msgid "Directory Equality-Coloring patch" msgstr "حالة مقارنة المجلّدات" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "لا تفعل أي شيئ" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "جاري طلب حالة الملف: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "جاري قراءة الملف: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "جاري كتابة الملف: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "إعادة تسمية الملف: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "نسخ الملف: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 msgid "Line" msgstr "" #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "غير متوفر" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "السطر الأعلى" #: difftextwindow.cpp:1769 msgid "End" msgstr "النهاية" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "جاهز." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "يخرج من التطبيق" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "" #: kdiff3.cpp:956 #, fuzzy #| msgid "Delete A" msgid "Selection" msgstr "أمحي A" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "" #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 #, fuzzy #| msgid "C&ontinue" msgid "Configure" msgstr "&تابع" #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "" #: optiondialog.cpp:603 msgid "Background color:" msgstr "" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "عدد المجلّدات الفرعية:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "Reading Directory A" msgid "Directory" msgstr "قراءة الدليل A" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "C&ontinue" #~ msgstr "&تابع" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Mohamed SAAD محمد سعد" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "metehyi@free.fr" kdiff3-0.9.97/po/nds/0000755000175100001440000000000011626145654013534 5ustar joachimuserskdiff3-0.9.97/po/nds/kdiff3plugin.po0000644000175100001440000000606111626145607016462 0ustar joachimusers# Translation of kdiff3plugin.po to Low Saxon # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Sönke Dibbern , 2008. # Manfred Wiese , 2009, 2011. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-07 06:13+0200\n" "Last-Translator: Manfred Wiese \n" "Language-Team: Low Saxon \n" "Language: nds\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Mit \"%1\" verglieken" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Mit \"%1\" tosamenföhren" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "\"%1\" för later sekern" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-Weeg-Tosamenföhren mit Grundlaag" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Verglieken mit..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "List leddig maken" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Verglieken" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3-Weeg-Verglieken" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Över dat KDiff3-Menümoduul..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3-Menümoduul. Copyright © 2008 Jaochim Eibl\n" "KDiff3-Tohuussiet: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "De Rechtsklickmenü-Verwiedern bruken:\n" "Twee utsöcht Dateien laat sik eenfach mit »Verglieken« verglieken.\n" "Is de anner Datei an en anner Steed, »Seker« de eerste Datei »för later«, se " "dukt denn in't Ünnermenü »Verglieken mit...« op, dat Du för de twete Datei " "opröppst.\n" "Wullt Du 3 Dateien tosamenföhren, »seker« toeerst de Grunddatei, denn den " "Telg, den Du tosamenföhren wullt, un för de drüdde Datei bruukst Du »3-Weeg-" "Tosamenföhren mit Grundlaag«, se warrt denn dat Teel.\n" "Dat sülve gellt ok för't Verglieken un Tosamenföhren vun Ornern." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Över dat KDiff3-Menümoduul…" kdiff3-0.9.97/po/nds/CMakeLists.txt0000644000175100001440000000016411626145607016273 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(nds ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/nds/kdiff3fileitemactionplugin.po0000644000175100001440000000465611626145607021407 0ustar joachimusers# translation of kdiff3fileitemactionplugin.po to Low Saxon # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Manfred Wiese , 2011. # msgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-07 06:14+0200\n" "Last-Translator: Manfred Wiese \n" "Language-Team: Low Saxon \n" "Language: nds\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3…" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Mit \"%1\" verglieken" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Mit \"%1\" tosamenföhren" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "\"%1\" för later sekern" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "3-Weeg-Tosamenföhren mit Grundlaag" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Verglieken mit..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "List leddig maken" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Verglieken" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "3-Weeg-Verglieken" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Över dat KDiff3-Menümoduul…" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/nds/kdiff3.po0000644000175100001440000024307711626145607015255 0ustar joachimusers# Translation of kdiff3.po to Low Saxon # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Sönke Dibbern , 2008, 2009. # Manfred Wiese , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-07 05:53+0200\n" "Last-Translator: Manfred Wiese \n" "Language-Team: Low Saxon \n" "Language: nds\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Wiedermaken" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Afbreken" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Utmaken" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Hülp" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Vörinstellen" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Datei" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Bewerken" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Orner" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Verschuven" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Verscheel&ansicht" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Tosamenföhren" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Finster" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Instellen" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hülp" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Vertell wat över" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Dank" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Tosamenföhr-Akschoon för aktuell Element" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Synkroniseer-Akschoon för aktuell Element" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Opmaken" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Sekern" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Sekern as..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Drucken..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Knippen" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Koperen" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Infögen" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "All utsöken" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Warktüüchbalken wiesen" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Statusbalken wiesen" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 &instellen..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Över" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Söken" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Nakamen söken" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Schriftoort utsöken" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Du hest en Schriftoort mit variabel Breed utsöcht.\n" "\n" "Dit Programm kann Schriftoorden mit variabel Breed nich richtig\n" "bruken, Du hest villicht Problemen bi't Bewerken vun Dateien.\n" "\n" "Wullt Du wiedermaken oder en anner Schriftoort utsöken?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Schriftoort is nich kompatibel." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Op mien egen Riskanz wiedermaken" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "En anner Schriftoort utsöken" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Anner Dokmentatschoon gifft dat in't Hülp-Menü oder in't Kapitel Ünnerornern." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3-Bruuk" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Övergahn" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Utstiegen" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Twischenaflaag-Daten laat sik nich as Temporeerdatei sekern." #: diff.cpp:255 msgid "From Clipboard" msgstr "Ut Twischenaflaag" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "Keen Programm angeven" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Dat Vörverarbeiden is villicht fehlslaan. Prööv dissen Befehl:\n" "\n" " %1\n" "\n" "De Vörverarbeid-Befehl warrt nu utmaakt." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "De Vörverarbeiden för de Regenutrichten is villicht fehlslaan. Prööv dissen " "Befehl:\n" "\n" " %1\n" "\n" "De Vörverarbeid-Befehl för de Regenutrichten warrt nu utmaakt." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Daten sünd wegkamen:\n" "Lett sik dit wedderhalen, snack dor bitte den Autor op an.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Swoor intern Fehler" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mischen vun Links un normaal Dateien" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Link: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Grött: " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Datum un Grött: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Temporeerkopie vun \"%1\" lett sik nich opstellen" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "\"%1\" lett sik nich opmaken" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Datei warrt vergleken..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "\"%1\" lett sik nich lesen" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Naam" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Akschoon" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Nich oplööst" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Oplööst" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Nichfree" #: directorymergewindow.cpp:359 msgid "White" msgstr "Free" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Du büst jüst togang un föhrst Ornern tosamen. Wullt Du dat Tosamenföhren " "redig afbreken un den Orner nieg dörkieken?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Wohrschoen" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Nieg dörkieken" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Tosamenföhren wiedermaken" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Opmaken vun Ornern fehlslaan:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Orner A \"%1\" gifft dat nich oder is keen Orner.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Orner B \"%1\" gifft dat nich oder is keen Orner.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Orner C \"%1\" gifft dat nich oder is keen Orner.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Fehler bi't Ornern-Opmaken" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "De Teelorner mutt bi't Tosamenföhren vun 3 Dateien nich de sülve wesen as A " "oder B.\n" "\n" "Prööv dat bitte, ehr Du wiedermaakst." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameter-Wohrschoen" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Ornern warrt dörkeken..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Orner A warrt leest" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Orner B warrt leest" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Orner C warrt leest" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "En Reeg Ünnerornern lett sik nich lesen binnen" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Prööv bitte de Verlöven vun de Ünnerornern." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Praat." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Ornervergliek-Status" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Tall vun Ünnerornern:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Tall vun liek Dateien:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Tall vun verscheden Dateien:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Tall vun Tosamenföhren vun Hand:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Dit bedröppt all Tosamenföhr-Akschonen" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "All Tosamenföhr-Akschonen ännern" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Bi to verarbeiden: " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Opgaav" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A op B koperen" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B op A koperen" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A wegdoon" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B wegdoon" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A un B wegdoon" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Mit A tosamenföhren" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Mit B tosamenföhren" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Mit A un B tosamenföhren" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Wegdoon (wenn vörhannen)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Tosamenföhren" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Tosamenföhren (vun Hand)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Fehler: Inkompatibel Dateitypen" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Fehler: Ännert un wegdaan" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Fehler: De Daten sünd liek, man de Dateien nich." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Disse Akschoon is opstunns nich mööglich." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Akschoon nich mööglich" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Dit schull nienich vörkamen.\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Lett sik dit wedderhalen, snack dor bitte den Programmschriever op an." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programmfehler" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Dat geev en Fehler bi't Koperen.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Fehler" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Tosamenföhr-Fehler" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Fehler." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Afslaten." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Nich sekert" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Nich begäng Tosamenföhrakschoon (Dit mutt nienich vörkamen!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Nich begäng Tosamenföhrakschoon" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Dat Tosamenföhren kann nu loosgahn.\n" "\n" "Klick op \"Utföhren\", wenn Du de Anwiesen leest hest un weetst, wat Du " "deist.\n" "Klick op \"Simuleren\", wenn Du weten wullt, wat passeren dee.\n" "\n" "Beacht bitte, dit Programm hett jümmers noch Beta-Status un dat gifft keen " "Garantien, för gor nix. Maak Sekerheitkopien vun Dien wichtige Daten!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Tosamenföhren starten" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Doon" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simuleren" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "De rutheevte Indrag hett binnen de verscheden Ornern verscheden Typen. Wat " "wullt Du doon?" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "De Ännerdaten vun de Dateien sünd liek, man de Dateien sünd dat nich. Wat " "wullt Du doon?" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "De rutheevte Indrag wöör binnen een Orner ännert un ut den anner wegdaan. " "Wat wullt Du doon?" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Disse Akschoon lett sik opstunns nich utföhren, dor löppt en Orner-" "Tosamenföhren." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Bi den verleden Schritt hett dat en Fehler geven.\n" "Wullt Du mit dat Element wiedermaken, dat den Fehler utlööst hett, oder " "wullt Du dat utlaten?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Tosamenföhren na Fehler wiedermaken" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Mit verleden Element wiedermaken" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Element utlaten" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Utlaten." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "In de Maak..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Tosamenföhren afslaten." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Tosamenföhren afslaten" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Dat simuleerte Tosamensmölten is afslaten Kiek, wat Du de vörslaan Akschonen " "utföhren wullt." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "Dat hett en Fehler geven. Klick op OK, wenn Du de Enkelheiten ankieken " "wullt.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" "Fehler bi't Wegdoon vun \"%1\": Opstellen vun Sekerheitkopie fehlslaan." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "Orner un Ünnerornern wegdoon (%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "wegdoon (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Fehler: Wegdoon vun Orner fehlslaan, bides he leest wöör." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Fehler: rmdir-Akschoon (%1) fehlslaan." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Fehler: Wegdoon fehlslaan." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "Vun Hand tosamenföhren (%1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Beacht bitte: Na't Tosamenföhren vun Hand schull de Bruker mit F7 " "wiedermaken" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Fehler: Koperen (%1 -> %2) fehlslaan. Wegdoon vun vörhannen Teel fehlslaan." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Link koperen (%1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Fehler: Koperen vun Link fehlslaan. Feern links warrt noch nich ünnerstütt." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Fehler: Koperen vun Link fehlslaan." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "Koperen (%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Fehler bi't Ümnömen (%1 -> %2): Vörhannen Teel lett sik nich wegmaken." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "Ümnömen (%1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Fehler: Ümnömen fehlslaan." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Fehler bi't Opstellen vun Orner \"%1\". Vörhannen Datei lett sik nich " "wegdoon." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Orner opstellen (%1)" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Fehler bi't Opstellen vun Orner." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Teel" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Orner" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Typ" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Grött" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Verleden Ännern" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Link-Teel" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Datei" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "nich verföögbor" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Teel): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "B (Grundl.): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Teel): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Teel): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Teel: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Orner-Tosamenföhrstatus sekern as..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Orner-Tosamenföhren starten/wiedermaken" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Akschoon mit aktuell Element utföhren" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Utsöcht Datei verglieken" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Aktuell Datei tosamenföhren" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Datei\n" "tosamenföhren" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "All Ünnerornern infoolden" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "All Ünnerornern utfoolden" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "A bi all Indrääg utsöken" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "B bi all Indrääg utsöken" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "C bi all Indrääg utsöken" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Akschoon bi all Indrääg automaatsch utsöken" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Keen Akschoon för all Indrääg" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Liek Dateien wiesen" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Liek\n" "Dateien" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Verscheden Dateien wiesen" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Dateien bloots in A wiesen" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Dateien\n" "bloots in A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Dateien bloots in B wiesen" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Dateien\n" "bloots in B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Dateien bloots in C wiesen" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Dateien\n" "bloots in C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Utsöcht Dateien verglieken" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Utsöcht Dateien tosamenföhren" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nix doon" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "A un B wegdoon" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Na A un B tosamenföhren" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Övergahn. (Vun'n Bruker fastleggt.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Tosamenföhr-Warktüüch för Dateien un Ornern" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2009, Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Fehlerrichten, Pleger för de Debian-Paketen" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows-Installeerprogramm" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-Hülp" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Twischenaflaag-Kodeplaster" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Hülp" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Klass \"CvsIgnoreList\" ut \"Cervisia\"" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Klass \"StringMatcher\"" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Kodeplaster för Orner-Liekheitklören" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Richten vun langsam Start op Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Extern Diff för Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Deegt Proberen, Bruuk un Resonanz" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac-Ünnerstütten" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Porteren na KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "Un velen Dank to all de Lüüd, de Fehlerberichten schreven un Vörslääg maakt " "hebbt!" #: main.cpp:196 msgid "Merge the input." msgstr "De Ingaav tosamenföhren" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Utspraken Basisdatei. För de Kompatibiliteet mit anner Warktüüch." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Utgaavdatei. Slutt \"-m\" in. Bispill: -o niegdatei.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Utgaavdatei, nochmaal. (För de Kompatibiliteet mit anner Warktüüch.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Keen Böversiet, wenn sik all Konflikten automaatsch oplösen laat (\"-o " "Utgaavdatei\" nödig)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Konflikt nich automaatsch oplösen. (För de Kompatibiliteet...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Sichtbor Tuuschnaam för Ingaavdatei 1 (Grundlaag)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Sichtbor Tuuschnaam för Ingaavdatei 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Sichtbor Tuuschnaam för Ingaavdatei 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "Anner sichtbor Tuuschnaam. Eenmaal för elkeen Ingaavdatei angeven." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "En Instellen överschrieven. Eenmaal för elkeen Instellen bruken, a.B.: »--cs " "\"AutoAdvance=1\"«" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "List vun Instellenoptschonen un Weerten wiesen" #: main.cpp:208 msgid "Use a different config file." msgstr "En anner Instellendatei bruken" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" "Eerste Datei, de Du opmaken wullt (Grundlaag, wenn nich mit \"--base\" " "angeven)" #: main.cpp:212 msgid "file2 to open" msgstr "Twete Datei, de Du opmaken wullt" #: main.cpp:213 msgid "file3 to open" msgstr "Drüdde Datei, de Du opmaken wullt" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Tall vun överbleven nich oplööst Konflikten: %1 (dor sünd %2 vun Freeruum-" "Konflikten)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Du hest de Utgaav ännert.\n" "Maakst Du wieder, kaamt Dien Ännern weg." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "All Ingaavdateien sünd bineer liek." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "All Ingaavdateien bargt den sülven Text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "De Dateien %1 un %2 sünd bineer liek.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "De Dateien %1 un %2 bargt den sülven Text.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Heel Tall vun Konflikt: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Tall vun automaatsch oplööst Konflikten: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Tall vun nich oplööst Konflikten: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikten" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Noch sünd nich all Konflikten oplööst.\n" "Datei nich sekert.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Konflikten na" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Dat giffft en Konflikt mit de Reegennen. Söök bitte den Reegenn-Stil vun " "Hand ut.\n" "Datei nich sekert.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Sekerheitkopie lett sik nich opstellen. Datei nich sekert." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Fehler bi't Sekern" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Fehler bi't Schrieven" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Utgaav" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Ännert]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Koderen bi't Sekern" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Reegenn-Stil:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Koderen vun" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Dateien för't Verglieken laat sik nich finnen." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Bi't Opstellen vun en Sekerheitkopie lett sik en öller Sekerheitkopie nich " "wegdoon.\n" "Dateinaam: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Bi't Opstellen vun en Sekerheitkopie lett sik en Datei nich ümnömen.\n" "Dateinaams: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Dateistatus warrt leest: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Datei warrt leest: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Datei warrt schreven: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Nich noog Spieker" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Orner warrt opstellt: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Orner warrt wegmaakt: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Datei warrt wegmaakt: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Symboolsch Link warrt opstellt: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Datei warrt ümnöömt: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Datei warrt kopeert: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "Fehler bi't Koperen: Datei lett sik nich lesen. Dateinaam: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "Fehler bi't Koperen: Datei lett sik nich schrieven. Dateinaam: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Fehler bi't Koperen: Lesen fehlslaan. Dateinaam: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Fehler bi't Koperen: Schrieven fehlslaan. Dateinaam: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Orner warrt leest: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Orner warrt oplist: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Afbreken" #: difftextwindow.cpp:403 msgid "Line" msgstr "Reeg" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Reeg nich verföögbor" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Koderen:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Böverst Reeg" #: difftextwindow.cpp:1769 msgid "End" msgstr "Enn" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Aktuell Instellen:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Fehler binnen de Instellen:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Optschoon \"--auto\" bruukt, man keen Utgaavdatei angeven." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Optschoon \"--auto\" warrt bi't Verglieken vun Ornern övergahn." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Sekern fehlslaan." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Disse Dateien laat sik nich opmaken:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fehler bi't Opmaken" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Dokmenten warrt för't Verglieken opmaakt..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Nieg laden" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Sekert dat Resultaat vun't Tosamenföhren. All Konflikten mööt oplööst wesen!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Sekert dat aktuelle Dokment as..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Verscheel drucken" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Maakt dat Programm ut" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Knippt dat utsöchte Rebeet un föögt dat na de Twischenaflaag in" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopeert den utsöchten Afsnitt na de Twischenaflaag" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Föögt de Twischenaflaag ehr Inholt bi de aktuelle Steed in." #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Allens binnen dat aktuelle Finster utsöken" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Na en Tekenkeed söken" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Nochmaal na en Tekenkeed söken" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Maakt den Statusbalken an oder ut" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 instellen..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Na aktuellen Verscheel gahn" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Aktuell\n" "Verscheel" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Na eersten Verscheel gahn" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Eerst\n" "Verscheel" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Na lesten Verscheel gahn" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Lest\n" "Verscheel" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "(Övergeiht Freeruum-Verschelen, wenn \"Freerüüm wiesen\" utmaakt is.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Övergeiht Freeruum-Verschelen nich, ok wenn \"Freerüüm wiesen\" utmaakt is.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Na verleden Verscheel gahn" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Verleden\n" "Verscheel" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Na nakamen Verscheel gahn" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Nakamen\n" "Verscheel" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Na verleden Konflikt gahn" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Verleden\n" "Konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Na nakamen Konflikt gahn" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Nakamen\n" "Konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Na verleden Konflikt gahn, de nich oplööst is" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Verleden\n" "n. oplööst" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Na nakamen Konflikt gahn, de nich oplööst is" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Nakamen\n" "n. oplööst" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Reeg ut A bruken" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "A\n" "bruken" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Reeg ut B bruken" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "B\n" "bruken" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Reeg ut C bruken" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "C\n" "bruken" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Na Bornköör automaatsch na nakamen nich oplöösten Konflikt gahn" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Autom.\n" "Nakamen" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Free- un Tab-Tekens as Verscheel wiesen" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "Freerüüm" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Freerüüm wiesen" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Freeruum-\n" "Verschelen" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Reegnummern wiesen" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Reeg-\n" "nummern" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Jümmers A bruken" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Jümmers B bruken" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Jümmers C bruken" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "A för all nich oplööst Konflikten bruken" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "B för all nich oplööst Konflikten bruken" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "C för all nich oplööst Konflikten bruken" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "A för all nich oplööst Freeruum-Konflikten bruken" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "B för all nich oplööst Freeruum-Konflikten bruken" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "C för all nich oplööst Freeruum-Konflikten bruken" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Eenfach Konflikten automaatsch oplösen" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "All Verschelen as Konflikten markeren" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Automaatsch Tosamenföhren mit reguleer Utdruck" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Vörgeschicht-Konflikten automaatsch oplösen" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Verscheel bi Köör delen" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Utsöcht Verschelen tosamenstellen" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Finster A wiesen" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Finster B wiesen" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Finster C wiesen" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Nakamen Finster anmaken" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normaal Översicht" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A-B-Översicht" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A-C-Översicht" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B-C-Översicht" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Regen ümbreken" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Verscheel-Utrichten vun Hand tofögen" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "All Vun-Hand-Utrichten wegmaken" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Verleden Finster anmaken" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Deelricht wesseln" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Deelt Ansicht för Orner un Text" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Orner- un Text-Ansicht wesseln" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Tosamenföhr-Resultaat wöör nich sekert" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Sekern && Utmaken" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Utmaken un nich Sekern" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Tosamenföhr-Resultaat lett sik nich sekern" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Du föhrst jüst Ornern tosamen. Wullt Du dat redig afbreken?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Datei warrt sekert..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Datei warrt mit en nieg Dateinaam sekert..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Drucken afslaten." #: kdiff3.cpp:815 msgid "Printing..." msgstr "An't Drucken..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Köör" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Drucken afslaten." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Drucken afbraken." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Bi to utstiegen..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Warktüüchbalken warrt an-/utmaakt..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Statusbalken an-/utmaken..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Basis):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Datei..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Orner..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (köörwies):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Naams tuschen/koperen..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "%1<->%2 tuschen" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "%1 -> Utgaav koperen" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "%1 <-> Utgaav tuschen" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Utgaav (köörwies):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Instellen..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Sööktext:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Op Groot-/Lüttschrieven kieken" #: smalldialogs.cpp:372 msgid "Search A" msgstr "A dörkieken" #: smalldialogs.cpp:377 msgid "Search B" msgstr "B dörkieken" #: smalldialogs.cpp:382 msgid "Search C" msgstr "C dörkieken" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Utgaav dörkieken" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Söken" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Reguleer Utdrück utproberen" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Reguleer Utdruck för't autom. Tosamenföhren:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Bispillreeg för't autom. Tosamenföhren:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Kopeer en Reeg, as se binnen Dien Dateien vörkamen kann, wenn Du dat autom. " "Tosamenföhren utproberen wullt." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Passen Resultaat:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Reguleer Utdruck för Vörgeschicht-Anfang:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Bispillreeg för en Vörgeschicht-Anfang (mit vöranstellt Kommentar):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopeer en Vörgeschicht-Anfangreeg, as se binnen\n" "Dien Dateien vörkamen kann, un ok den vöranstellten\n" "Kommentar." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Reguleer Utdruck för Vörgeschichtindrag-Anfang:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Vörgeschicht-Sorteerreeg:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Bispillreeg för en Vörgeschichtindrag-Anfang (ahn vöranstellt Kommentar):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopeer en Vörgeschichtindrag-Anfangreeg, as se\n" "binnen Dien Dateien vörkamen kann, man nich den\n" "vöranstellten Kommentar." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Sorteerresultaat:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Dreper funnen." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Keen Dreper funnen." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Binnen den reguleren Utdruck passt de linken un rechten Klemmen nich tosamen." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 Bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Änner dit, wenn Tekens buten dat ASCII-Rebeet nich propper wiest warrt." #: optiondialog.cpp:465 msgid "Configure" msgstr "Instellen" #: optiondialog.cpp:531 msgid "Font" msgstr "Schriftoort" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Editor- un Verscheel-Schriftoort" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kursievschrift för Verschelen" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Bruukt för Verschelen de Schriftoort in kursiev.\n" "Gifft dat för de Schriftoort keen kursive Tekens, deit disse Optschoon nix." #: optiondialog.cpp:568 msgid "Color" msgstr "Klöör" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Klören instellen" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Editor- un Verscheel-Ansichten:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Vörgrundklöör:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Achtergrundklöör:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Verscheel-Achtergrundklöör:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Klöör A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Klöör B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Klöör C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Konflikt-Klöör:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Achtergrundklöör för aktuell Rebeet:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Verscheel-Achtergrundklöör för aktuell Rebeet:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Klöör för vun Hand utricht Verscheelrebeden:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Ornerverscheel-Ansicht:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Klöör för niegst Datei:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Ännern an disse Klöör warrt eerst bi't nakamen Verglieken vun Ornern bruukt." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Klöör för öllst Datei:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Klöör för en middeloolt Datei:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Klöör för fehlen Dateien:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Editor-Bedregen" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tabtast föögt Freetekens in" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "An: De Tabtast föögt en propper Tall vun Freetekens in.\n" "Ut: De Tabtast föögt en Tabteken in." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tab-Breed:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Autom. inrücken" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "An: De Inrückdeepde ut de verleden Reeg warrt för de niege bruukt.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Köör autom. koperen" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "An: All Kören warrt fuurts na de Twischenaflaag kopeert.\n" "Ut: Du muttst dat Koperen sülven maken, a.B. mit Strg+C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Finster" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Autom. Köör" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Leggt de Tekens fast, de bi't Sekern för Reegennen bruukt warrt.\n" "DOS/Windows: CR+LF, UNIX: LF (CR = 0D, LF = 0A)" #: optiondialog.cpp:784 msgid "Diff" msgstr "Verscheel" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Verscheel-Instellen" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "As Freeruum hanteren" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Tallen övergahn" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Talltekens bi't Regenutrichten övergahn (liek to \"Freerüüm övergahn\").\n" "Mag bi't Verglieken vun Dateien mit Tallen beter Resultaten geven." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++-Kommentaren övergahn" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++-Kommentaren liek as Freerüüm hanteren." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Groot-/Lüttschrieven övergahn" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Verschelen in Groot- un Lüttschrieven liek as Freerüüm-Verschelen hanteren." #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Vörverarbeid-Befehl:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Vun Bruker fastleggt Vörverarbeiden (Enkelheiten binnen de Dokmentatschoon)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Vörverarbeid-Befehl för't Regenutrichten:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Disse Vörverarbeiden warrt bloots bi't Regenutrichten bruukt.\n" "(Enkelheiten binnen de Dokmentatschoon)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "In't Tüüch leggen (langsamer)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Bruukt de Optschoon \"--minimal\" vun't Diff-Programm.\n" "Dat Dörkieken vun groot Dateien warrt denn bannig wat langsamer." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "B un C för 3 Ingaavdateien utrichten" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "B un C bi't Verglieken oder Tosamenföhren vun 3 Ingaavdateien toenanner " "utrichten.\n" "Bi't Tosamenföhren nich anraadt, dat mag to vigeliensch warrn.\n" "(Standard is Ut.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Tosamenföhr-Instellen" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Töövtiet för't autom. Wiedergahn (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Is dat Automaatsche Wiedergahn anmaakt, warrt dat Resultaat vun de aktuelle " "Köör\n" "för de angeven Tiet wiest, ehr dat Programm na den nakamen Konflikt jumpt. " "Weerten: 0 - 2000 ms." #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Infodialogen wiesen" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "En Dialoog mit de Tall vun Konflikten wiesen" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Freeruum-Standard bi 2-Dateien-Tosamenföhren:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Köör vun Hand" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Den Tosamenföhr-Algoritmus bi Freeruum-Konflikten automaatsch en Born " "utsöken laten" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Freeruum-Standard bi 3-Dateien-Tosamenföhren:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Reguleer Utdruck för't autom. Tosamenföhren" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Reguleer Utdruck för Regen, bi de KDiff3 automaatsch een Born utsöken " "schall.\n" "Passt de Utdruck op en Reeg mit en Konflikt, warrt - wenn verföögbor - de " "Reeg\n" "ut Born C, sünst de Reeg ut Born B bruukt." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Bi't Starten vun't Tosamenföhren automaatsch na reguleer Utdruck " "tosamenföhren" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Dat automaatsche Tosamenföhren langs de reguleren\n" "Utdrück för't automaatsche Tosamenföhren direktemang\n" "utföhren, wenn dat Tosamenföhren anfangt.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Tosamenföhren mit Verschoonkuntrull-Vörgeschicht" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Reguleer Utdruck för den Anfang vun den Verschoonkuntrull-" "Vörgeschichtindrag.\n" "Normalerwies bargt disse Reeg dat Slötelwoort \"$Log$\".\n" "Standardweert: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "En Verschoonkuntrull-Vörgeschichtindrag geiht över mehr Regen.\n" "Hier kannst Du den reguleren Utdruck angeven, mit den sik de eerste Reeg " "kennen lett (ahn den vöranstellten Kommentar).\n" "Mit Klemmen kannst Du Slötels för't Sorteren tosamenkoppeln.\n" "Lettst Du dat leddig, nimmt KDiff3 an, dat leddig Regen twischen " "Vörgeschichtindrääg staht.\n" "De Enkelheiten staht binnen de Dokmentatschoon." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Sorteren bi Vörgeschicht-Tosamenföhren" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Verschoonkuntrull-Vörgeschicht na Slötel sorteren" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Sorteerreeg för Vörgeschichtindrag-Anfang:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Elkeen Klemmenpoor binnen den reguleren Utdruck för den Vörgeschichtindrag-" "Anfang\n" "koppelt en Slötel tosamen, de sik bi't Sorteren bruken lett.\n" "Hier kannst Du de Reeg för de Slötels över ehr Nummern angeven\n" "(fangt bi 1 an, nummereert na de Reeg, in de se in den reguleren Utdruck " "staht).\n" "Bruuk Kommas (\",\") as Trennteken (a.B.: \"4,5,6,1,2,3,7\").\n" "Lettst Du dat leddig, warrt nich sorteert.\n" "De Enkelheiten staht binnen de Dokmentatschoon." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" "Verschoonkuntrull-Vörgeschicht bi't Starten vun't Tosamenföhren tosamenföhren" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Bi't Starten vun't Tosamenföhren automaatsch Verschoonkuntrull-Vörgeschicht " "tosamenföhren" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Hööchsttall vun Vörgeschichtindrääg:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Na angeven Tall ophollen. Bi -1 nich ophollen." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Regulere Utdrück utproberen" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Tosamenföhr-Befehl bi fehlen Ännern:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Wenn angeven, warrt dit Skript na't automaatsche\n" "Tosamenföhren opropen, wenn dat sünst keen Ännern geven hett.\n" "Warrt mit disse Parameters opropen: Dateinaam1 Dateinaam2 Dateinaam3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Na't Tosamenföhren ahn Konflikten autom. sekern un utmaken" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Wenn KDiff3 för't Tosamenföhren vun Dateien opropen warrt un sik all\n" "Konflikten oplösen laat un de Bruker nix bidregen mutt, denn\n" "dat Resultaat automaatsch sekern un dat Programm utmaken.\n" "(Liek to de Befehlsreegoptschoon \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Orner" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekursiev" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Leggt fast, wat ok Ünnerornern dörkeken warrt." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Dateimuster(n):" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Muster(n) vun Dateien, de Du bekieken wullt.\n" "Platzholltekens: \"*\" un \"?\"\n" "Trennteken twischen Mustern: \";\"" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Datei-Utsluutmuster(n):" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Muster(n) för Dateien, de Du vun't Bekieken utsluten wullt.\n" "Platzholltekens: \"*\" un \"?\"\n" "Trennteken twischen Mustern: \";\"" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Orner-Utsluutmuster(n):" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Muster(n) för Ornern, de Du vun't Bekieken utsluten wullt.\n" "Platzholltekens: \"*\" un \"?\"\n" "Trennteken twischen Mustern: \";\"" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "\".cvsignore\" bruken" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Verwiedert dat Utsluutmuster op allens, wat CVS övergahn dee.\n" "Bi lokaal \".cvsignore\"-Dateien kann dat vun den Orner afhangen." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Versteken Dateien un Ornern bekieken" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Ok Ornern un Dateien mit dat \"Versteken\"-Attribut bekieken" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Ok Dateien un Ornern bekieken, de mit en Punkt anfangt" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Dateilinks nagahn" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "An: De Datei verglieken, op de de Link wiest.\n" "Ut: De Links verglieken." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Ornerlinks nagahn" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "An: Den Orner verglieken, op den de Link wiest.\n" "Ut: De Links verglieken." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Bi Dateinaam-Vergliek op Groot- un Lüttschrieven kieken" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "De Ornervergliek vergliekt Dateien oder Ornern, wenn ehr Naams liek sünd.\n" "Maakt dit an, wenn de Groot-/Lüttschrieven liek wesen mutt. (Op Windows " "standardwies ut, sünst an)." #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Dateivergliek-Bedriefoort" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Bineervergliek" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Bineervergliek bi all Dateien (Standard)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Heel Dörkiek" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "En heel Dörkiek doon un bito Statistik binnen besünner Striepen wiesen.\n" "(Langsamer as en Bineervergliek, veel langsamer bi Bineerdateien.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Grött un Ännerdatum bruken (nich seker)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Dateien mit liek Ännerdatum un Längde as liek hanteren.\n" "Dateien mit liek Inholt, man verscheden Ännerdatum warrt as verscheden " "wiest.\n" "Goot bi groot Ornern oder binnen langsam Nettwarken." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Grött un Ännerdatum bruken, man bi nich liek Datum bineer verglieken (nich " "seker)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Dateien mit liek Ännerdatum un Längde as liek hanteren.\n" "Is de Grött liek, man dat Datum nich, de Dateien bineer verglieken.\n" "Goot bi groot Ornern oder binnen langsam Nettwarken." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Grött bruken (nich seker)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Dateien mit liek Längde as liek hanteren.\n" "Goot bi groot Ornern oder binnen langsam Nettwarken, wenn sik dat Datum bi't " "Daalladen ännert." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Ornern synkroniseren" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Dateien ut un na beed Ornern so koperen, dat\n" "se achteran liek sünd.\n" "Funkscheneert bloots bi't Verglieken vun twee Ornern, un wenn keen Teel " "angeven is." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Freeruum-Verschelen as liek hanteren" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Dateien as liek hanteren, wenn se bloots in de Freerüüm verscheden sünd.\n" "Dit is bloots anmaakt, wenn Du \"Heel Dörkiek\" utsöcht hest." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Nieger Datei koperen, nich tosamenföhren (nich seker)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Inholt nich bekieken, eenfach de niegere Datei nehmen.\n" "(Bruuk dit bloots, wenn Du nau weetst, wat Du dor deist!)\n" "Funkscheneert bloots bi't Verglieken vun twee Ornern." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Sekerheitkopie (.orig) opstellen" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Schull en Datei över en öller Datei schreven warrn, denn warrt de\n" "öllere Datei ümnöömt un \".orig\" na ehr Naam anhangt." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regiooninstellen" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Spraak (Niegstart nödig)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Hier kannst Du de Spraak för de Böversiet utsöken, oder \"Auto\".\n" "Ännerst Du de Spraak, muttst Du KDiff3 utmaken un nieg opropen, ehr de " "Ännern övernahmen warrt." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "De sülve Koderen för allens bruken:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Is dit anmaakt, kannst Du all Koderen över de eerste ännern.\n" "Maak dit ut, wenn verscheden Instellen för de Dateien nödig sünd." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Beacht: De lokale Koderen is " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Koderen för Datei A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Is dit anmaakt, warrt Unicode (UTF-8 oder UTF-16) as Koderen opdeckt.\n" "Is de Datei nich in Unicode, warrt de utsöchte Koderen bruukt.\n" "(Dat Opdecken vun Unicode hangt vun de eersten Bytes vun en Datei af.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Unicode automaatsch opdecken" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Koderen för Datei B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Koderen för Datei C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Koderen för't Tosamenföhren un Sekern:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Autom. Köör" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Wenn anmaakt, warrt de Koderen vun de Ingaavdateien bruukt.\n" "Is dat nich eenkennig, warrt de Bruker na de Koderen för't Sekern fraagt." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Koderen för de Vörverarbeid-Dateien:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Rechts-Na-Links-Spraak" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "En Reeg Schriften warrt vun rechts na links leest.\n" "Disse Optschoon passt dor de Ansicht un den Editor op to." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Inbinnen" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Inbinnen instellen" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Befehlsreeg-Optschonen, de övergahn warrt:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "List vun Befehlsreeg-Optschonen, de övergahn warrt, wenn anner Programmen " "KDiff3 oproopt.\n" "Du kannst mehr Weerten angeven, wenn dor twischen en \";\" steiht.\n" "Dit verhöödt den \"Nich begäng Optschoon\"-Fehler." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Ok mit ESC-Tast utmaken" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Gau Metood för't Utmaken.\n" "För de Lüüd, de de ESC-Tast anworrn sünd." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Na \"ClearCase\" inbinnen" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Na \"Rational ClearCase\" vun IBM inbinnen.\n" "Ännert de Datei \"map\" binnen den ClearCase-Ünnerorner \"lib/mgrs\".\n" "(Funkscheneert bloots, wenn sik de ClearCase-Orner \"bin\" över de PATH-" "Ümgevenvariabel finnen lett.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Inbinnen na ClearCase lösen" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "De ole \"map\"-Datei ut de Tiet vör't Inbinnen na ClearCase wedderherstellen" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Inkompatibel Schriftoort" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Op egen Riskanz wiedermaken" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Anner Schriftoort utsöken" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Disse Funkschoon sett all Optschonen torüch, nich bloots de för't aktuelle " "Thema." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Vörverarbeid-Befehl: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Disse vun Di utsöchten Optschonen köönt Daten ännern:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Dat will Een normalerwies bi't Tosamenföhren nich hebben.\n" "Wullt Du disse Instellen ut- oder dor mit wiedermaken?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Optschoon för't Tosamenföhren nich seker" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Disse Optschonen bruken" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Nich seker Optschonen utmaken" #: pdiff.cpp:300 msgid "Loading A" msgstr "A warrt laadt" #: pdiff.cpp:304 msgid "Loading B" msgstr "B warrt laadt" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Verscheel: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Reegverscheel: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "C warrt laadt" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Verscheel: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Verscheel: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Reegverscheel: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Reegverscheel: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "All Ingaavdateien bargt den sülven Text, man sünd bineer nich liek." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "De Dateien %1 un %2 bargt den sülven Text, man sünd bineer nich liek.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "As't lett sünd nich all Ingaavdateien reen Textdateien.\n" "Beacht, KDiff3 is nich för't Tosamenföhren vun Bineerdaten maakt.\n" "Maak man op Dien egen Riskanz wieder." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Afbreken" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Dateien warrt opmaakt..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fehler bi't Datei-Opmaken" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Köör warrt knippt..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Köör warrt na de Twischenaflaag kopeert..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Twischenaflaag-Inholt warrt inföögt..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Sekern un wiedermaken" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Ahn Sekern wiedermaken" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Söök afslaten." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Söök afslaten" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Binnen keen Verscheel-Ingaavfinster is wat utsöcht." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Fehler bi't Tofögen vun en Verscheelrebeet vun Hand" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "De KDiff-Komponent lett sik nich torechtmaken.\n" "Dit kummt normalerwies bi Problemen mit de Installatschoon vör. De " "Enkelheiten staht binnen de README-Datei vun't Born-Paket." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Sönke Dibbern" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "s_dibbern@web.de" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 instellen" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Hööft-Warktüüchbalken" #~ msgid "Directory Merge" #~ msgstr "Orner-Tosamenföhren" #~ msgid "C&ontinue" #~ msgstr "Wieder&maken" kdiff3-0.9.97/po/gl/0000755000175100001440000000000011626145654013352 5ustar joachimuserskdiff3-0.9.97/po/gl/kdiff3plugin.po0000644000175100001440000000733711626145605016305 0ustar joachimusers# translation of kdiff3plugin.po to galician # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # mvillarino , 2008, 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-02-04 23:05+0100\n" "Last-Translator: mvillarino \n" "Language-Team: galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Comparar con %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Fundir con %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Gardar «%1» para máis tarde" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Fusión de 3 ficheiros con base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Comparar con..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Borrar a lista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Comparar" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparación de 3 ficheiros" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Acerca da extensión do menú de KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Extensión de menú de KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Sitio web de KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 #, fuzzy #| msgid "" #| "Using the contextmenu extension:\n" #| "For simple comparison of two selected files choose \"Compare\".\n" #| "If the other file is somewhere else \"Save\" the first file for later. It " #| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" #| "\" on second file.\n" #| "For a 3-way merge first \"Save\" the base file, then the branch to merge " #| "and choose \"3-way merge with base\" on the other branch which will be " #| "used as destination.\n" #| "Same also applies to directory comparison and merge." msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Utilización da extensión de menú contextual:\n" "Para unha comparación simples de dous ficheiros escollidos escolla " "«Comparar».\n" "Se o outro ficheiro está noutro lugar antes debe «Gardar» o ficheiro para " "máis tarde. Aparecerá no submenú «Comparar con...». Logo empregue «Comparar " "con» no segundo ficheiro.\n" "Para unha fusión de 3 ficheiros primeiro debe «Gardar» o ficheiro base, logo " "a versión a fundir e logo «Fusión de 3 ficheiros con base» na galla que será " "empregada como destino.\n" "O mesmo aplícase á comparación e fusión de cartafoles." #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "Acerca da extensión do menú de KDiff3..." kdiff3-0.9.97/po/gl/CMakeLists.txt0000644000175100001440000000016311626145605016106 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(gl ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/gl/kdiff3.po0000644000175100001440000025315711626145605015071 0ustar joachimusers# translation of kdiff3.po to galician # # mvillarino , 2006, 2007, 2008, 2009. # Marce Villarino , 2009. # Marce Villarino , 2010. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-07-03 17:12+0200\n" "Last-Translator: Marce Villarino \n" "Language-Team: Galician \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continuar" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancelar" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Sair" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Aceitar" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Axuda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Valores predeterminados" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Ficheiro" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Editar" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "Ca&rtafol" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Movimento" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "&Diferenzas" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Fu&ndir" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "F&iestra" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Configuración" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Axuda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Acerca de" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "A&gradecimentos" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operación de fusión do ítem actual" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operación de sincronizazón do ítem actual" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Abrir" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Gardar" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Gardar como..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimir..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Cortar" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copiar" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Apegar" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Escoller todo" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostrar a barra de Ferramentas" #: kreplacements/kreplacements.cpp:679 #, fuzzy #| msgid "Show &Statusbar" msgid "Show &Status Bar" msgstr "Mostrar a barra de &Estado" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configurar %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Acerca de" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Procurar" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Procurar o seguinte" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Escoller o tipo de letra" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Escolleu un tamaño de letra variábel.\n" "\n" "Dado que este programa non manexa correctamente os tipos de letra\n" "de ancho variábel, pode ter problemas ao editar.\n" "\n" "Desexa continuar ou prefere escoller outro tipo de letra." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Fonte tipográfica incompatíbel." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continuar baixo a miña responsabilidade" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Escoller outro tipo de letra" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Para obter máis documentación, consulte o menú axuda ou o cartafol de " "documentación." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Utilización de KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorar" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Sair" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" "Fallou a escritura de dados do portarretallos para o ficheiro temporal." #: diff.cpp:255 msgid "From Clipboard" msgstr "Do portarretallos" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Posibelmente fallase o preprocesamento. Verifique este comando:\n" "%1\n" "O comando de preprocesamento vai ser desactivado." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Posibelmente fallase o preprocesamento con procura de liñas. Verifique este " "comando:\n" "%1\n" "O comando de preprocesamento con procura de liñas vai ser desactivado." #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Erro de perda de dados:\n" "Se fose reproducíbel, contacte co autor.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Erro interno grave" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mistura de ligazóns e ficheiros normais." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Ligazón: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Tamaño. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data e tamaño: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Fallou a criación da copia temporal de %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Fallou a abertura de %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "A comparar o ficheiro..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Aconteceu un erro ao ler de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nome" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operación" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Estado" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Non resolvido" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Resolvido" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Non valeiro" #: directorymergewindow.cpp:359 msgid "White" msgstr "Valeiro" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Está a facer unha fusión de cartafoles. Desexa realmente interromper a " "fusión e analisar o cartafol de novo?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Aviso" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Analisar de novo" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continuar coa fusión" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Fallou o aceso aos cartafoles:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "O cartafol A «%1» non existe ou non é un cartafol.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "O cartafol B «%1» non existe ou non é un cartafol.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "O cartafol C «%1» non existe ou non é un cartafol.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Erro de aceso ao cartafol" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "O cartafol de destino non pode ser o mesmo que o A ou o B cando son " "fusionados tres cartafoles.\n" "Verifique de novo antes de continuar." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Aviso de parámetro" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "A analisar os cartafoles..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Lendo o cartafol A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Lendo o cartafol B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Lendo o cartafol C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Algúns dos subcartafoles non eran lexíbeis" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Verifique os permisos dos subcartafoles." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Listo." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Estado da comparación do cartafol" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Número de subcartafoles:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Número de ficheiros iguais:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Número de ficheiros diferentes:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Número de fusións manuais:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Isto afecta a todas as operacións de fusión." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "A mudar todas as operacións de fusión" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "A procesar" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Por facer." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copiar A para B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copiar B para A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Borrar A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Borrar B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Borrar A e B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Xuntar en A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Xuntar en B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Xuntar en A e B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Borrar (se existe)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Xuntar" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Xuntar (manual)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Erro: Tipos de ficheiros en conflito" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Erro: As datas son iguais pero os ficheiros non." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Esta operación non é posíbel de momento." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operación non posíbel" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Isto nunca debera acontecer:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Se sabe como reproducir isto, por favor contacte co autor do programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Erro no programa" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Aconteceu un erro ao copiar.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Erro" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Erro na fusión" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Erro." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Terminado." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Non gardado." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operación de fusión descoñecida. (Isto non debera acontecer nunca!) " #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operación de fusión descoñecida." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "A fusión está a piques de comezar.\n" "\n" "Escolla «Facela» se leu as instrucións e sabe o que está a facer.\n" "Se escolle «Simulala» saberá o que acontecería.\n" "\n" "Teña en conta que este programa aínda está en estado Beta e Non Hai Ningunha " "GARANTÍA! Faga copias de seguridade dos seus dados vitais!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "A iniciar a fusión" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Face-la" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simula-la" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "O elemento realzado ten un tipo diferente nos cartafoles. Escolla que facer." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "As datas de modificación dos ficheiros son iguais pero estes non o son. " "Escolla que facer." #: directorymergewindow.cpp:2123 #, fuzzy #| msgid "" #| "The highlighted item has a different type in the different directories. " #| "Select what to do." msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "O elemento realzado ten un tipo diferente nos cartafoles. Escolla que facer." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Esta operación non é posíbel de momento porque se está a fundir o cartafol." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Aconteceu un erro no último paso.\n" "Desexa continuar co ítem que causou o erro ou desexa salta-lo?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continuar a fusión após un erro" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continuar co último ítem" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Saltar o ítem" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Ignorado." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "En progreso..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "A operación de fusión terminou." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fusión completada" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "A simulación da fusión terminou: Comprobe se concorda coas operacións " "propostas." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Aconteceu un erro. Prema en Aceitar para ver información detallada.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Erro: Ao tentar borrar %1: a criación da copia de seguridade fallou." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "borrar recursivamente os cartafoles (%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "borrar (%1) " #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Erro: a operación de borrado do cartafol fallou ao tentar ler o cartafol." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Erro: a operación rmdir (%1) fallou." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Erro: a operación de borrado fallou." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "unión manual(%1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr " Nota: Após unha unión manual debe continuar premendo F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "Erro: A copia (%1 -> %2) fallou. Non se borrou o destino existente." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink(%1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Erro: copyLink fallou: As ligazóns remotas aínda non están soportadas." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Erro: copyLink fallou." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copia(%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Erro ao mudar o nome (%1 -> %2): Non foi posíbel borrar o destino existente." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "mudar o nome (%1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Erro: fallou a mudanza do nome." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Erro durante makeDir de %1. Non foi posíbel borrar o ficheiro existente." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir(%1)" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Erro ao criar o cartafol." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipo" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Tamaño" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atrib" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Última modificación" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destino da ligazón" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Ficheiro" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "non dispoñíbel" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Gardar o estado da fusión de cartafoles como..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Iniciar/Continuar a fusión do cartafol" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Executar a operación no ítem actual" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Comparar o ficheiro escollido" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Fundir o ficheiro actual" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Xuntar\n" "o ficheiro" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Recoller todos os subcartafoles" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Expandir todos os subcartafoles" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Escoller todos os itens de A" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Escoller todos os itens de B" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Escoller todos os itens de C" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Escoller automaticamente a operación para todos os itens" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Ningunha operación para todos os itens" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostrar os ficheiros idénticos" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Ficheiros\n" "idénticos" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostrar os ficheiros diferentes" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostrar os ficheiros só en A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Ficheiros\n" "só en A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostrar os ficheiros só en B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Ficheiros\n" "só en B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostrar os ficheiros só en C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "Ficheiros só en C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Comparar os ficheiros escollidos explicitamente" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Fundir os ficheiros escollidos explicitamente" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Non facer ren" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Borrar A e B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Xuntar en A e B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Ferramenta para comparar e fundir ficheiros e cartafoles" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2008 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2008 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Correcións, mantenedor do paquete de Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instalador para Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "axuda coa i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Parte para o portarretallos" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Axuda cos KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Clase CvsIgnoreList de Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Clase StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Parche para colorir e igualdades en cartafoles" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Correción do arranque lento en Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext para Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "As utilidades Diff de GNU" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Probas intensivas, utilización e comentarios" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Soporte para Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Porte a KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Grazas a todos os que comunicaron erros e contribuiron ideas!" #: main.cpp:196 msgid "Merge the input." msgstr "Fundir a entrada." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" "Ficheiro de base explícito. Para compatibilidade con certas ferramentas." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Ficheiro de saída. Implica -m. P.ex.: -o novoficheiro.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Ficheiro de saída, de novo. (Para compatibilidade con certas ferramentas)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Sen interface se todos os conflitos son resolvidos automaticamente. (Precisa " "de -o ficheiro) " #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Non resolver os conflitos automaticamente. (Para compatibilidade...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Substitución do nome visíbel para o ficheiro de entrada 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Substitución do nome visíbel para o ficheiro de entrada 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Substitución do nome visíbel para o ficheiro de entrada 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Substitución alternativa do nome visíbel. Indique isto para cada entrada." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Substitúe unha opción de configuración. Use unha vez para cada opción. P. " "ex.: --cs \" AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Mostra unha lista das opcións de configuración e os valores actuais." #: main.cpp:208 msgid "Use a different config file." msgstr "Usar un ficheiro de configuración diferente." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "o ficheiro 1 a abrir (base, se non foi indicado mediante --base)" #: main.cpp:212 msgid "file2 to open" msgstr "o ficheiro 2 a abrir" #: main.cpp:213 msgid "file3 to open" msgstr "o ficheiro 3 a abrir" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Número de conflitos por resolver: %1 (dos cales %2 son espazos en branco)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "O resultado foi modificado.\n" "Se continúa as súas modificacións serán esquecidas." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Todos os ficheiros de entrada son iguais a nível binario." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Todos os ficheiros de entrada conteñen o mesmo texto." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Os ficheiros %1 e %2 son iguais a nível binario.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Os ficheiros %1 e %2 teñen texto igual.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Número total de conflitos: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Número conflitos resolvidos automaticamente: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Número de conflitos por resolver: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflitos" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Aínda non se resolveron todos os conflitos.\n" "O ficheiro non foi gardado.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Aínda hai conflitos" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Hai un conflito no estilo do fin de liña. Escóllao manualmente.\n" "Non se gardou o ficheiro.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "A criación da salvagarda fallou. O ficheiro non foi gardado." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Erro ao gardar o ficheiro" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Erro ao gardar." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Saída" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificado]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codificación para gardar" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Estilo do fin de liña:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflito" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Códec de" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Non foi posíbel achar os ficheiros a comparar." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Ao tentar facer unha copia de seguridade, fallou o borrado dunha copia " "anterior.\n" "Ficheiro: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Ao tentar facer unha copia de seguridade, fallou a mudanza do nome.\n" "Ficheiros: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "A obter o estado do ficheiro: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "A ler o ficheiro: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "A escreber o ficheiro: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Esgotou a memoria" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "A criar o cartafol: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "A borrar o cartafol: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "A borrar o ficheiro. %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "A criar a ligazón simbólica: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "A mudar o nome do ficheiro: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "A copiar o ficheiro: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Aconteceu un erro durante o copiado do ficheiro: O aceso ao ficheiro para " "leitura fallou. Ficheiro: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Aconteceu un erro durante a copia do ficheiro: O aceso ao ficheiro para " "escrita fallou. Ficheiro: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Aconteceu un erro durante a copia do ficheiro: A leitura fallou. Ficheiro: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Aconteceu un erro durante a copia do ficheiro: A escrita fallou. Ficheiro: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "A ler o cartafol: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "A listar o cartafol: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancelar" #: difftextwindow.cpp:403 msgid "Line" msgstr "Liña" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Liña non dispoñíbel" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 #, fuzzy #| msgid "File Encoding for A:" msgid "Encoding:" msgstr "Codificación do ficheiro A:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Liña superior" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fin" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuración actual:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Erro da opción de configuración:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "Indicouse a opción --auto, pero non se especificou ningún ficheiro de saída." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "A opción --auto é ignorada para a comparación de cartafoles." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "O gardado fallou." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Fallou o aceso a estes ficheiros:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Erro de aceso ao ficheiro" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Abre os documentos para comparalos..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Cargar de novo" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Garda o resultado da fusión. Todos os conflitos deben estar resolvidos!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Garda o documento actual como..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Imprimir as diferenzas" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Sai da aplicación" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Corta a sección escollida e colócaa no portarretallos" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia a sección escollida no portarretallos" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Apega o contido do portarretallos na posición actual" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Escolle todo na fiestra actual" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Procura un texto" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Procura de novo o texto" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Habilita/deshabilita a barra de estado" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configurar KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Ir para o delta actual" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Delta\n" "actual" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Ir para o primeiro delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Primeiro\n" "delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Ir para o último delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Último\n" "delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Ignora as diferenzas de espazos se «Mostrar os espazos en branco» está " "deshabilitado.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Non ignora as diferenzas de espazos mesmo se «Mostrar os espazos en branco» " "está deshabilitado.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Ir para o delta anterior" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "Delta anterior" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Ir para o seguinte delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "Seguinte delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Ir para o conflito anterior" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflito\n" "anterior" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Ir para o seguinte conflito" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "Seguinte conflito" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Ir para o anterior conflito por resolver" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Non resolvido\n" "anterior" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Ir para o seguinte conflito por resolver" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Seguinte\n" "non resolvido" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Escoller as liñas de A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Escoller\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Escoller as liñas de B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Escoller\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Escoller as liñas de C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Escoller\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Ir automaticamente para o seguinte conflito por resolver tras escoller a " "fonte" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Ir automaticamente\n" "ao seguinte" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Mostrar as diferenzas de espazos e tabulacións" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Caracteres\n" "en branco" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostrar os espazos en branco" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Deltas\n" "en branco" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostrar os números de liña" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Números\n" "de liña" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Escoller A en todas partes" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Escoller B en todas partes" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Escoller C en todas partes" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Escoller A en todos os conflitos por resolver" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Escoller B en todos os conflitos por resolver" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Escoller C en todos os conflitos por resolver" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Escoller A en todos os conflitos de espazos por resolver" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Escoller B en todos os conflitos de espazos por resolver" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Escoller C en todos os conflitos de espazos resolver" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Resolver automaticamente os conflitos simples" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Pasar os deltas para conflitos" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Executar a fusión automática de expresións regulares" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Resolver automaticamente os conflitos do histórico" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Dividir a diferenza na selección" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Xuntar as diferenzas escollidas" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostrar a fiestra A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostrar a fiestra B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostrar a fiestra C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Focar a próxima fiestra" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Resumo normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Resumo A vs. B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Resumo A vs. C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Resumo B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Saltar de liña nas fiestras de diferenzas" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Engadir o aliñamento manual das diferenzas" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Limpar todos os aliñamentos de diferenzas manuais" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Focar a fiestra anterior" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Comutar a orientación da repartición" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Dividir a vista de cartafoles e texto" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Comutar entre a fiestra de cartafoles e de texto" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "O resultado da fusión aínda non foi gardado." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Gardar e sair" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Sair sen gardar" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "O gardado do resultado da fusión fallou." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Está a facer unha fusión de cartafoles. Desexa realmente abortala?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "A gardar o ficheiro..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "A gardar o ficheiro cun nome novo..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "A impresión terminou." #: kdiff3.cpp:815 msgid "Printing..." msgstr "A imprimir..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selección" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "A impresión terminou." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Cancelouse a impresión." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "A sair..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "A comutar a barra de ferramentas..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Comutar a barra de estado..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base) :" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Ficheiro..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Cartafol..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Opcional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Trocar/Copiar os nomes ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Trocar %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copiar %1->Resultado" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Trocar %1<->Resultado" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Resultado (opcional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configurar..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Aceitar" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Texto da procura:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Distinguir a capitalización" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Procurar A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Procurar B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Procurar C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Resultado da procura" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Procurar" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Comprobación de expresións regulares" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Expresión regular de fusión automática:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Liña de fusión automática de exemplo:" #: smalldialogs.cpp:424 #, fuzzy #| msgid "For auto merge test copy a line as used in your files." msgid "To test auto merge, copy a line as used in your files." msgstr "" "Para probar a fusión automática, copie unha liña como sexa usada nos seus " "ficheiros." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultado correspondente:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expresión regular do inicio do histórico:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Liña inicial do histórico do exemplo (co comentario inicial):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copie unha liña inicial do histórico, como é usada nos seus ficheiros,\n" "incluindo o comentario inicial." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expresión regular do inicio do elemento de histórico:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Orden da chave do histórico:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Liña inicial da entrada do histórico de exemplo (sen o comentario inicial):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copie unha liña inicial de entrada no histórico, como a usada nos seus " "ficheiros,\n" "pero omita o comentario inicial." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resultado da chave de ordenación:" #: smalldialogs.cpp:508 msgid "OK" msgstr "Aceptar" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Éxito na correspondencia." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "A correspondencia fallou." #: smalldialogs.cpp:574 #, fuzzy #| msgid "Opening and closing parentheses don't match in regular expression." msgid "Opening and closing parentheses do not match in regular expression." msgstr "Os parénteses de abertura e peche non casan na expresión regular." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Mude isto se os carácteres non-ASCII non son mostrados correctamente." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configurar" #: optiondialog.cpp:531 msgid "Font" msgstr "Tipo de letra" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Tipo de letra do resultado de Diff e do editor" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Texto itálico para os deltas" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Escolle a versión itálica do texto para as diferenzas.\n" "Se o tipo de letra non soporta carácteres itálicos, isto non fará nada." #: optiondialog.cpp:568 msgid "Color" msgstr "Cor" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Configuración das cores" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Vistas do editor e das diferenzas:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Cor principal:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Cor de fondo:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Cor de fondo das diferenzas:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Cor A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Cor B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Cor C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Cor de conflito:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Cor de fondo do rango actual:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Cor de fondo da diferenza do rango actual:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Cor dos rangos de diferenzas aliñados manualmente:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Vista de comparación dos cartafoles:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Cor do ficheiro máis recente:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Se muda esta cor, só terá efeito ao iniciar a próxima comparación de " "cartafoles." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Cor do ficheiro máis antigo:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Cor dos ficheiros intermedios:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Cor dos ficheiros en falta:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportamento do editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "O tabulador insere espazos" #: optiondialog.cpp:735 #, fuzzy #| msgid "" #| "On: Pressing tab generates the appropriate number of spaces.\n" #| "Off: A Tab-character will be inserted." msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Sinalado: se preme Tab xera o número apropriado de espazos.\n" "Non sinalado: será introducido un carácter Tab." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tamaño das tabulacións:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Sangrado automático" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Sinalado: O sangrado da liña anterior é usado na nova liña.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Copiar automaticamente a selección" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Sinalado: calquera selección é posta automaticamente no portarretallos.\n" "Non sinalado: Terá que copiar explicitamente, p.ex., con Ctrl+C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "F&iestra" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Escoller automaticamente" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Escolle os fins de liña para cando un ficheiro editado é gravado.\n" "DOS/Windows: CR+LF; UNIX: LF; con CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Configuración de Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Tratar como espazo en branco." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorar os números" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignora os caracteres numéricos durante a fase de correspondencia das liñas. " "(Semellante a Ignorar os espazos).\n" "Pode axudar a comparar ficheiros con dados numéricos." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorar os comentarios de C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Tratar os comentarios de C/C++ como espazo en branco." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorar a capitalización" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Trata as diferenzas de capitalización como mudanzas de espazo en branco. " "(«a»<=>«A») " #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Comando do preprocesador:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Preprocesamento definido polo usuario. (Consulte a documentación para máis " "detalles). " #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Comando do preprocesador para a correspondencia de liñas:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Este preprocesador só é usado na correspondencia das liñas.\n" "(Consulte a documentación para máis detalles). " #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Tentar con persistencia (lento)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Activa a opción --minimal do «diff».\n" "A análise dos ficheiros grandes será moito máis lenta." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Aliñar B e C para 3 ficheiros de entrada" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Tenta aliñan B e C ao comparar ou fusionar tres ficheiros de entrada.\n" "Non se recomenda á hora de fusionar porque se pode complicar.\n" "(Por omisión esta deshabilitado)." #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Configuración da fusión" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Atraso no avance automático (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Cando estexa no modo de Avance Automático, o resultado da selección actual\n" "é mostrado durante o tempo indicado, antes de ir para o seguinte conflito. " "Rango: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostrar os diálogos de información" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostra un diálogo con información acerca do número de conflitos." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Fusión de espazo en branco por omisión con 2 ficheiros:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Escolla manual" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Permítelle ao algoritmo de unión escoller automaticamente o ficheiro a " "utilizar para os cambios de só espazo en branco." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Fusión de espazo en branco con 3 ficheiros:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Expresión regular de fusión automática" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "A expresión regular das liñas nas que KDiff3 deberá escoller automaticamente " "unha orixe.\n" "Cando unha liña cun conflito corresponda coa expresión regular entón \n" "C -se está dispoñíbel-, en caso contrario será escollido B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Executar a unión automática da expresión regular ao iniciar a fusión" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Executa a fusión para as expresións regulares de fusión automática\n" "imediatamente após o inicio dunha fusión.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fusión do histórico do control de versións" #: optiondialog.cpp:966 #, fuzzy #| msgid "" #| "Regular expression for the start of the version control history entry.\n" #| "Usually this line contains the \"$Log$\"-keyword.\n" #| "Default value: \".*\\$Log.*\\$.*\"" msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "A expresión regular para o inicio de entrada de histórico do control de " "versións.\n" "Normalmente, este valor contén a palabra-chave «$Log$».\n" "Valor por omisión: «.*\\$Log.*\\$.*»" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Un elemento de histórico do control de versión ten varias liñas.\n" "Indique a expresión regular usada para detectar a primeira liña (sen o " "comentario inicial).\n" "Use os parénteses para agrupar as chaves que desexa usar na ordenación.\n" "Se o deixa en branco, KDiff3 asume que as liñas en branco separan os itens " "do histórico.\n" "Consulte documentación para saber máis detalles." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordenación da fusión do histórico" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordenar o histórico do control de versións por unha chave." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Orden da chave de ordenación do inicio da entrada no histórico:" #: optiondialog.cpp:1008 #, fuzzy #| msgid "" #| "Each parentheses used in the regular expression for the history start " #| "entry\n" #| "groups a key that can be used for sorting.\n" #| "Specify the list of keys (that are numbered in order of occurrence\n" #| "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" #| "If left empty, then no sorting will be done.\n" #| "See the documentation for details." msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Cada paréntese usado na expresión regular para o elemento inicial do " "histórico\n" "agrupa unha chave que pode ser usada na ordenación.\n" "Indique a lista de chaves (que son numeradas por orden de ocorrencia,\n" "comezando polo 1), usando a «,» como separador (p.ex., «4,5,6,1,2,3,7»).\n" "De deixalo en branco, non será feita ningunha ordenación.\n" "Consulte a documentación para saber máis detalles." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Unir o histórico do control de versións ao iniciar a fusión" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Executa a fusión automática do histórico do control de versións ao iniciar a " "fusión." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Número máximo de entradas do histórico:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Remata tras este número de entradas. Empregue -1 para infinitas." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Comprobar as expresións regulares" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Comando de fusión irrelevante:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "De indicarse, este script é executado após a fusión automática,\n" "cando non sexan detectadas máis mudanzas relevantes.\n" "É invocado cos parámetros: ficheiro1 ficheiro2 ficheiro3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Garda automaticamente e sai tras unha fusión sen conflitos" #: optiondialog.cpp:1050 #, fuzzy #| msgid "" #| "When KDiff3 was started for a file-merge from the commandline and all\n" #| "conflicts are solvable without user interaction then automatically save " #| "and quit.\n" #| "(Similar to command line option \"--auto\"." msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Cando KDiff3 teña sido iniciado desde a liña de comandos para fusionar\n" "ficheiros e todos os conflitos sexan resolúbeis sen interacción do usuario,\n" "entón garda automaticamente e sai.\n" "(Similar á opción da liña de comandos «--auto»)." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Cartafol" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Cartafoles recursivos" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Indica se debe analisar os subcartafoles ou non." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Padróns de ficheiros:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Os padróns dos ficheiros a analisar.\n" "Caracteres de substitución: «*» e «?»\n" "Pode indicar varios padróns usando o separador: «;»" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Antipadróns de ficheiros:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Os padróns dos ficheiros a excluir da análise.\n" "Caracteres de substitución: «*» e «?»\n" "Pode indicar varios padróns usando o separador: «;»" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Antipadróns de cartafoles:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Os padróns dos cartafoles a excluir da análise.\n" "Caracteres de substitución: «*» e «?»\n" "Pode indicar varios padróns usando o separador: «;»" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Empregar .cvsignore" #: optiondialog.cpp:1115 #, fuzzy #| msgid "" #| "Extends the antipattern to anything that would be ignored by CVS.\n" #| "Via local \".cvsignore\"-files this can be directory specific." msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Estende o antipadrón a todo o que sería ignorado polo CVS.\n" "Isto pode ser específico para cada cartafol, mediante os ficheiros «." "cvsignore» locais." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Procurar ficheiros e cartafoles acochados" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Procura os ficheiros e cartafoles co atributo «acochado»." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Procura os ficheiros e cartafoles que comecen por «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Seguir as ligazóns de ficheiros" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Sinalado: Compara o ficheiro ao que aponta a ligazón.\n" "Non sinalado: Compara as ligazóns." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Seguir as ligazóns de cartafoles" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Sinalado: Compara o cartafol ao que aponta a ligazón.\n" "Non sinalado: Compara as ligazóns." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Comparación de nomes de ficheiros sensíbel á capitalización" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "A comparación de cartafoles comparará os ficheiros ou cartafoles cando os " "seus nomes casen.\n" "Configure esta opción, se os nomes deben corresponder. (Por omisión, en " "Windows, non está sinalada; caso contrario, está sinalada.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Modo de comparación dos ficheiros" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparación binaria" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparación binaria de cada ficheiro. (Por omisión)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Análise completa" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Fai unha análise completa e mostra informacións estatísticas en colunas " "adicionais.\n" "(Máis lento que a comparación binaria, moito máis lento para ficheiros " "binarios.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Confiar no tamaño e data de modificación (inseguro)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Asume que os ficheiros son iguais se a data de modificación e o tamaño do " "ficheiro son iguais.\n" "Os ficheiros con contidos iguais pero datas de modificación diferentes " "aparecerán como diferentes.\n" "Útil con cartafoles grandes ou redes lentas." #: optiondialog.cpp:1184 #, fuzzy #| msgid "" #| "Trust the size and date, but use binary comparison if date doesn't match " #| "(unsafe)" msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Confiar no tamaño e data, pero usar a comparación binaria se a data non casa " "(inseguro)" #: optiondialog.cpp:1185 #, fuzzy #| msgid "" #| "Assume that files are equal if the modification date and file length are " #| "equal.\n" #| "If the date isn't equal but the sizes are, use binary comparison.\n" #| "Useful for big directories or slow networks." msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Asume que os ficheiros son iguais se a data de modificación e o tamaño do " "ficheiro son iguais.\n" "Se a data non é igual pero sí o son os tamaños, emprega a comparación " "binaria.\n" "Útil con cartafoles grandes ou redes lentas." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Confiar no tamaño (inseguro)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Asume que os ficheiros son iguais se o seu tamaño é igual.\n" "Útil para cartafoles grandes ou redes lentas cando a data é modificada na " "transferencia." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronizar os cartafoles" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Oferece almacenar os ficheiros en ambos cartafoles\n" "para que ambos fiquen iguais.\n" "Funciona só ao comparar dous cartafoles sen indicar un destino." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "As diferenzas en espazos en branco son consideradas como iguais" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Se os ficheiros só diferen en espazos en branco considéraos iguais.\n" "Isto está activo só cando é escollida a análise completa." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copiar o máis recente en vez de fundir (inseguro)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Non analisa os ficheiros, simplesmente colle o ficheiro máis recente.\n" "(Use isto só se sabe o que está a facer!)\n" "Só é efectivo ao comparar dous cartafoles." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Salvagardar os ficheiros (.orig)" #: optiondialog.cpp:1228 #, fuzzy #| msgid "" #| "When a file would be saved over an old file, then the old file\n" #| "will be renamed with a '.orig'-extension instead of being deleted." msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Cando un ficheiro vaia ser gardado por cima dun anterior, entón o mudarase\n" "o nome do ficheiro antigo cunha extensión «.orig» en vez de ser borrado." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Configuración rexional" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Lingua (requere reiniciar)" #: optiondialog.cpp:1445 #, fuzzy #| msgid "" #| "Choose the language of the GUI-strings or \"Auto\".\n" #| "For a change of language to take place, quit and restart KDiff3." msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Escolla a lingua da interface gráfica ou «Auto».\n" "Para mudar de lingua ten que reiniciar KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Utilizar a mesma codificación para todo:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Sinale isto para permitir modificar todas as codificacións trocando só a " "primeira.\n" "Non o sinale se precisa axustes individuais." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: A codificación local é" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codificación do ficheiro A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Se sinala esta opción entón detectarase a codificación Unicode (UTF-16 ou " "UTF-8).\n" "Se o ficheiro non é Unicode entón empregarase a codificación escollida a " "xeito de reserva.\n" "(A detección de Unicode depende dos primeiros bytes do ficheiro.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Detectar automaticamente Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codificación do ficheiro B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codificación do ficheiro C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codificazón do ficheiro para fusionar o resultado e gardar:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Escoller automaticamente" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Se sinala esta opción entón será usada a codificación dos ficheiros de " "entrada.\n" "En casos ambiguos un diálogo requeriralle que escolla a codificación." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codificación dos ficheiros de preprocesador:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Lingua da direita para a esquerda" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Algunhas linguas son lidas da direita para esquerda.\n" "Esta opción modifica o visor e editor de acordo con elas." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integración" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Configuración da integración" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opcións da liña de comandos a ignorar:" #: optiondialog.cpp:1568 #, fuzzy #| msgid "" #| "List of command line options that should be ignored when KDiff3 is used " #| "by other tools.\n" #| "Several values can be specified if separated via ';'\n" #| "This will suppress the \"Unknown option\"-error." msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Unha lista das opcións da liña de comandos que deberán ser ignoradas, cando " "KDiff3 sexa usado por outras ferramentas.\n" "Se desexa indicar varios valores, sepáreos por «;»\n" "Isto elimina o erro de «Opción descoñecida»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Sair tamén coa tecla Esc" #: optiondialog.cpp:1578 #, fuzzy #| msgid "" #| "Fast method to exit.\n" #| "For those who are used to using the Escape-key." msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Un sistema rápido de sair.\n" "Para quen teña o costume de empregar a tecla de Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrar con ClearCase" #: optiondialog.cpp:1586 #, fuzzy #| msgid "" #| "Integrate with Rational ClearCase from IBM.\n" #| "Modifies the \"map\" file in ClearCase-subdir \"lib/mgrs\"\n" #| "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra con Rational ClearCase de IBM.\n" "Modifica o ficheiro de «mapa» no subcartafol de ClearCase «lib/mgrs»\n" "(Só é habilitado de atopar o cartafol «bin» de ClearCase na rota.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Retirar a integración con ClearCase" #: optiondialog.cpp:1595 #, fuzzy #| msgid "" #| "Restore the old \"map\" file from before doing the Clearcase integration." msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Repón o ficheiro de «mapa» vello existente antes de integrar con Clearcase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Fonte tipográfica incompatíbel" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continuar baixo a miña responsabilidade" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Escoller outro tipo de letra" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Isto repón todas as opcións, non só as do tema actual." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Comando do preprocesador: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "As seguintes opcións que escolleu poden modificar os dados:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Case seguro que isto non é desexábel durante unha fusión.\n" "Desexa deshabilitar estes axustes ou continuar con eles activos?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opción insegura para fusión" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Usar estas opcións durante a fusión" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Deshabilitar as opcións inseguras" #: pdiff.cpp:300 msgid "Loading A" msgstr "Cargando A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Cargando B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diferenzas: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Dif. liñas: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Cargando C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diferenzas: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diferenzas: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Dif. liñas: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Dif. liñas: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Todos os ficheiros de entrada conteñen o mesmo texto, pero non son iguais a " "nível binario." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Os ficheiros %1 e %2 teñen texto igual, pero non son iguais a nível " "binario.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Algúns dos ficheiros de entrada non parecen ser ficheiros de texto puros.\n" "Lembre que a fusión de KDiff3 non foi pensada para os dados binarios.\n" "Continúe a súa conta e risco." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Interromper" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "A abrir os ficheiros..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Erro ao abrir o ficheiro" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "A cortar a selección..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "A copiar a selección para o portarretallos..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "A inserir o contido do portarretallos..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Gardar e continuar" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continuar sen gardar" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Procura terminada." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Procura terminada" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" "Non hai nada escollido en ningunha das fiestras de entrada das diferenzas." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Aconteceu un erro ao engadir o rango manual de diferenzas" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize our part!\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Non foi posíbel inicializar a nosa componente!\n" "Isto acontece normalmente debido a un problema de instalación. Lea o " "ficheiro README no paquete coas fontes para máis detalles." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "mvillarino" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "mvillarino@users.sourceforge.net" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configurar KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra de ferramentas Principal" kdiff3-0.9.97/po/en_GB/0000755000175100001440000000000011626145654013722 5ustar joachimuserskdiff3-0.9.97/po/en_GB/kdiff3plugin.po0000644000175100001440000000562011626145610016642 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Andrew Coles , 2009. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-03-17 08:36+0000\n" "Last-Translator: Andrew Coles \n" "Language-Team: British English \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Compare with %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Merge with %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Save '%1' for later" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-way merge with base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Compare with ..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Clear list" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Compare" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3 way comparison" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "About KDiff3 menu plugin ..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "About KDiff3 menu plugin ..." kdiff3-0.9.97/po/en_GB/CMakeLists.txt0000644000175100001440000000016611626145610016455 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(en_GB ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/en_GB/kdiff3.po0000644000175100001440000024045711626145610015434 0ustar joachimusers# translation of kdiff3.po to British English # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # # Malcolm Hunter , 2003. # Jonathan Riddell , 2003. # Andrew Coles , 2004, 2005, 2009, 2010. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-12-28 20:50+0000\n" "Last-Translator: Andrew Coles \n" "Language-Team: British English \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continue" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancel" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Quit" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Help" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Defaults" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&File" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Edit" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Directory" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Movement" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iffview" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Merge" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Window" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Settings" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Help" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&About" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&uthor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Thanks To" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Current Item Merge Operation" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Current Item Sync Operation" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Open" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Save" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Save As..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Print..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Cut" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copy" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Paste" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Select All" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Show Toolbar" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Show &Status Bar" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configure %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "About" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Find" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Find Next" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Select Font" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Incompatible font." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continue at my own risk" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Select another font" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "For more documentation, see the help-menu or the subdirectory doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3-Usage" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignore" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Exit" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Writing clipboard data to temp file failed." #: diff.cpp:255 msgid "From Clipboard" msgstr "From Clipboard" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Data loss error:\n" "If it is reproducible please contact the author.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Severe Internal Error" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mix of links and normal files." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Link: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Size. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Date & Size: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Creating temp copy of %1 failed." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Opening %1 failed." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Comparing file..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Error reading from %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Name" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operation" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Unsolved" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Solved" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Nonwhite" #: directorymergewindow.cpp:359 msgid "White" msgstr "White" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Warning" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Rescan" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continue Merging" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Opening of directories failed:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Dir A \"%1\" does not exist or is not a directory.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Dir B \"%1\" does not exist or is not a directory.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Dir C \"%1\" does not exist or is not a directory.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Directory Open Error" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameter Warning" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Scanning directories..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Reading Directory A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Reading Directory B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Reading Directory C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Some subdirectories were not readable in" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Check the permissions of the subdirectories." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Ready." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Directory Comparison Status" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Number of subdirectories:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Number of equal files:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Number of different files:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Number of manual merges:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "This affects all merge operations." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Changing All Merge Operations" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Processing " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "To do." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copy A to B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copy B to A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Delete A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Delete B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Delete A & B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Merge to A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Merge to B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Merge to A & B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Delete (if exists)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Merge" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Merge (manual)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Error: Conflicting File Types" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Error: Changed and Deleted" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Error: Dates are equal but files are not." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "This operation is currently not possible." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operation Not Possible" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Program Error" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "An error occurred while copying.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Error" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Merge Error" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Error." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Done." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Not saved." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Unknown merge operation. (This must never happen!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Unknown merge operation." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Starting Merge" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Do It" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulate It" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "The highlighted item has a different type in the different directories. " "Select what to do." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "The modification dates of the file are equal but the files are not. Select " "what to do." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "This operation is currently not possible because directory merge is " "currently running." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continue merge after an error" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continue With Last Item" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Skip Item" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Skipped." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "In progress..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Merge operation complete." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Merge Complete" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulated merge complete: Check if you agree with the proposed operations." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "An error occurred. Press OK to see detailed information.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Error: While deleting %1: Creating backup failed." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "delete directory recursively( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "delete( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Error: delete dir operation failed while trying to read the directory." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Error: rmdir( %1 ) operation failed." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Error: delete operation failed." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "manual merge( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Note: After a manual merge the user should continue by pressing F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Error: copyLink failed: Remote links are not yet supported." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Error: copyLink failed." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copy( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Error during rename( %1 -> %2 ): Cannot delete existing destination." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rename( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Error: Rename failed." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Error during makeDir of %1. Cannot delete existing file." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Error while creating directory." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Type" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Size" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Last Modification" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Link-Destination" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "File" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "not available" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Save Directory Merge State As..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Start/Continue Directory Merge" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Run Operation for Current Item" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Compare Selected File" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Merge Current File" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Merge\n" "File" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Fold All Subdirs" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Unfold All Subdirs" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Choose A for All Items" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Choose B for All Items" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Choose C for All Items" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Auto-Choose Operation for All Items" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "No Operation for All Items" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Show Identical Files" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identical\n" "Files" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Show Different Files" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Show Files only in A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Files\n" "only in A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Show Files only in B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Files\n" "only in B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Show Files only in C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Files\n" "only in C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Compare Explicitly Selected Files" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Merge Explicitly Selected Files" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Do Nothing" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Delete A && B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Merge to A && B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignored. (User defined.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Tool for Comparison and Merge of Files and Directories" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Bugfixes, Debian package maintainer" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows installer" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-help" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Clipboard-patch" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Help" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Class CvsIgnoreList from Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Class StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Directory Equality-Colouring patch" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Fix for slow startup on Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext for Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensive test, use and feedback" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac support" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE4 porting" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Many thanks to those who reported bugs and contributed ideas!" #: main.cpp:196 msgid "Merge the input." msgstr "Merge the input." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Explicit base file. For compatibility with certain tools." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Output file. Implies -m. E.g.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Output file, again. (For compatibility with certain tools.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "No GUI if all conflicts are auto-solvable. (Needs -o file)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Don't solve conflicts automatically. (For compatibility...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Visible name replacement for input file 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Visible name replacement for input file 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Visible name replacement for input file 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternative visible name replacement. Supply this once for every input." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Show list of config settings and current values." #: main.cpp:208 msgid "Use a different config file." msgstr "Use a different config file." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "file1 to open (base, if not specified via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "file2 to open" #: main.cpp:213 msgid "file3 to open" msgstr "file3 to open" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "The output has been modified.\n" "If you continue your changes will be lost." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "All input files are binary equal." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "All input files contain the same text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Files %1 and %2 are binary equal.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Files %1 and %2 have equal text.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Total number of conflicts: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Nr of automatically solved conflicts: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Nr of unsolved conflicts: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflicts" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Not all conflicts are solved yet.\n" "File not saved.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflicts Left" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Creating backup failed. File not saved." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "File Save Error" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Error while writing." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Output" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modified]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Encoding for saving" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Line end style:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflict" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codec from" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Couldn't find files for comparison." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "While trying to make a backup, renaming failed. \n" "Filenames: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Getting file status: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Reading file: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Writing file: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Out of memory" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Making directory: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Removing directory: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Removing file: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Creating symbolic link: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Renaming file: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Copying file: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Error during file copy operation: Reading failed. Filename: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Error during file copy operation: Writing failed. Filename: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Reading directory: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listing directory: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancel" #: difftextwindow.cpp:403 msgid "Line" msgstr "Line" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Line not available" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Encoding:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Top line" #: difftextwindow.cpp:1769 msgid "End" msgstr "End" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Current Configuration:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Config Option Error:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Option --auto used, but no output file specified." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Option --auto ignored for directory comparison." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Saving failed." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Opening of these files failed:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "File Open Error" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Opens documents for comparison..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Reload" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Saves the merge result. All conflicts must be solved!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Saves the current document as..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Print the differences" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Quits the application" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Cuts the selected section and puts it to the clipboard" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copies the selected section to the clipboard" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Pastes the clipboard contents to current position" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Select everything in current window" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Search for a string" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Search again for the string" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Enables/disables the statusbar" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configure KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Go to Current Delta" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Current\n" "Delta" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Go to First Delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "First\n" "Delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Go to Last Delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Last\n" "Delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "(Skips white space differences when \"Show White Space\" is disabled.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Go to Previous Delta" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Prev\n" "Delta" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Go to Next Delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Next\n" "Delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Go to Previous Conflict" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Prev\n" "Conflict" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Go to Next Conflict" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Next\n" "Conflict" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Go to Previous Unsolved Conflict" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Prev\n" "Unsolved" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Go to Next Unsolved Conflict" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Next\n" "Unsolved" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Select Line(s) From A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Choose\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Select Line(s) From B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Choose\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Select Line(s) From C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Choose\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Automatically Go to Next Unsolved Conflict After Source Selection" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Auto\n" "Next" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Show Space && Tabulator Characters for Differences" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "White\n" "Characters" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Show White Space" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "White\n" "Deltas" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Show Line Numbers" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Line\n" "Numbers" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Choose A Everywhere" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Choose B Everywhere" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Choose C Everywhere" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Choose A for All Unsolved Conflicts" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Choose B for All Unsolved Conflicts" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Choose C for All Unsolved Conflicts" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Choose A for All Unsolved Whitespace Conflicts" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Choose B for All Unsolved Whitespace Conflicts" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Choose C for All Unsolved Whitespace Conflicts" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Automatically Solve Simple Conflicts" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Set Deltas to Conflicts" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Run Regular Expression Auto Merge" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Automatically Solve History Conflicts" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Split Diff At Selection" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Join Selected Diffs" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Show Window A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Show Window B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Show Window C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Focus Next Window" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normal Overview" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A vs. B Overview" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A vs. C Overview" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B vs. C Overview" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Word Wrap Diff Windows" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Add Manual Diff Alignment" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Clear All Manual Diff Alignments" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Focus Prev Window" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Toggle Split Orientation" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Dir && Text Split Screen View" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Toggle Between Dir && Text View" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "The merge result hasn't been saved." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Save && Quit" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Quit Without Saving" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Saving the merge result failed." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "You are currently doing a directory merge. Are you sure, you want to abort?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Saving file..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Saving file with a new filename..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Printing completed." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Printing..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selection" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Printing completed." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Printing aborted." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Exiting..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Toggling toolbar..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Toggle the statusbar..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "File..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Dir..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Optional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Swap/Copy Names ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Swap %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copy %1->Output" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Swap %1<->Output" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Output (optional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configure..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Search text:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Case sensitive" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Search A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Search B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Search C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Search output" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Search" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Regular Expression Tester" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Auto merge regular expression:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Example auto merge line:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "To test auto merge, copy a line as used in your files." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Match result:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "History start regular expression:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Example history start line (with leading comment):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copy a history start line as used in your files,\n" "including the leading comment." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "History entry start regular expression:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "History sort key order:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Example history entry start line (without leading comment):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Sort key result:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Match success." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Match failed." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Opening and closing brackets do not match in regular expression." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Change this if non-ASCII characters are not displayed correctly." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configure" #: optiondialog.cpp:531 msgid "Font" msgstr "Font" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Editor & Diff Output Font" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Italic font for deltas" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." #: optiondialog.cpp:568 msgid "Color" msgstr "Colour" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Colour Settings" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Editor and Diff Views:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Foreground colour:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Background colour:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Diff background colour:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Colour A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Colour B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Colour C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Conflict colour:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Current range background colour:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Current range diff background colour:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Colour for manually aligned difference ranges:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Directory Comparison View:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Newest file colour:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Changing this colour will only be effective when starting the next directory " "comparison." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Oldest file colour:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Middle age file colour:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Colour for missing files:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Editor Behaviour" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab inserts spaces" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tab size:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Auto indentation" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "On: The indentation of the previous line is used for a new line.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Auto copy selection" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Window" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Auto Select" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Diff Settings" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Treat as white space." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignore numbers" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignore C/C++ comments" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Treat C/C++ comments like white space." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignore case" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Treat case differences like white space changes. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Preprocessor command:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "User defined pre-processing. (See the docs for details.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Line-matching preprocessor command:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Try hard (slower)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Align B and C for 3 input files" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Merge Settings" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Auto advance delay (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Show info dialogues" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Show a dialogue with information about the number of conflicts." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "White space 2-file merge default:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Manual Choice" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "White space 3-file merge default:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Automatic Merge Regular Expression" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Run regular expression auto merge on merge start" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Version Control History Merging" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use brackets to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "History merge sorting" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Sort version control history by a key." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "History entry start sort key order:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Each pair of brackets used in the regular expression for the history start " "entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Merge version control history on merge start" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "Run version control history automerge on merge start." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Max number of history entries:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Cut off after specified number. Use -1 for infinite number of entries." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Test your regular expressions" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Irrelevant merge command:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Auto save and quit on merge without conflicts" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Directory" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Recursive directories" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Whether to analyse subdirectories or not." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "File pattern(s):" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Pattern(s) of files to be analysed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "File-anti-pattern(s):" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Dir-anti-pattern(s):" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Use .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Find hidden files and directories" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Finds files and directories with the hidden attribute." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Finds files and directories starting with '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Follow file links" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "On: Compare the file the link points to.\n" "Off: Compare the links." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Follow directory links" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "On: Compare the directory the link points to.\n" "Off: Compare the links." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Case sensitive filename comparison" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "File Comparison Mode" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binary comparison" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binary comparison of each file. (Default)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Full analysis" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Trust the size and modification date (unsafe)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Trust the size (unsafe)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synchronise directories" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "White space differences considered equal" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copy newer instead of merging (unsafe)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Backup files (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regional Settings" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Language (restart required)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Use the same encoding for everything:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Note: Local Encoding is " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "File Encoding for A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Auto Detect Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "File Encoding for B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "File Encoding for C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "File Encoding for Merge Output and Saving:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Auto Select" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialogue will ask the user to choose the encoding for " "saving." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "File Encoding for Preprocessor Files:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Right To Left Language" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integration" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Integration Settings" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Command line options to ignore:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Quit also via Escape key" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Fast method to exit.\n" "For those who are used to using the Escape key." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrate with ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Remove ClearCase Integration" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Restore the old \"map\" file from before doing the ClearCase integration." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Incompatible Font" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continue at Own Risk" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Select Another Font" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "This resets all options. Not only those of the current topic." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "PreprocessorCmd: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "The following option(s) you selected might change data:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Option Unsafe for Merging" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Use These Options During Merge" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Disable Unsafe Options" #: pdiff.cpp:300 msgid "Loading A" msgstr "Loading A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Loading B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linediff: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Loading C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linediff: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linediff: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "All input files contain the same text, but are not binary equal." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Files %1 and %2 have equal text, but are not binary equal. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Abort" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Opening files..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "File open error" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Cutting selection..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Copying selection to clipboard..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Inserting clipboard contents..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Save && Continue" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continue Without Saving" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Search complete." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Search Complete" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Nothing is selected in either diff input window." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Error while adding manual diff range" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Could not initialise the KDiff part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Andrew Coles" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "andrew_coles@yahoo.co.uk" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configure KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Main Toolbar" #~ msgid "Directory Merge" #~ msgstr "Directory Merge" #~ msgid "C&ontinue" #~ msgstr "C&ontinue" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Jonathan Riddell" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "kde-en-gb@jriddell.org" #~ msgid "Enables/disables the toolbar" #~ msgstr "Enables/disables the toolbar" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "Files A and B are binary equal.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "Files A and C are binary equal.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "Files A and C have equal text. \n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "Files B and C are binary equal.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "Files B and C have equal text. \n" #~ msgid "Preserve carriage return" #~ msgstr "Preserve carriage return" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Diff & Merge" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "Directory Merge" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "Directory Merge" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "Synchronise directories" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "Copy newer instead of merging (unsafe)" #~ msgid "List only deltas" #~ msgstr "List only deltas" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "Files and directories without change will not appear in the list." #, fuzzy #~ msgid "no selection" #~ msgstr "Auto copy selection" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "Manual Choice" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "Has no effect. For compatibility with certain tools." #~ msgid "For compatibility with certain tools." #~ msgstr "For compatibility with certain tools." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "Colours in Editor & Diff Output" kdiff3-0.9.97/po/ga/0000755000175100001440000000000011626145654013337 5ustar joachimuserskdiff3-0.9.97/po/ga/kdiff3plugin.po0000644000175100001440000000420511626145605016261 0ustar joachimusers# Irish translation of kdiff3plugin # Copyright (C) 2009 This_file_is_part_of_KDE # This file is distributed under the same license as the kdiff3plugin package. # Kevin Scannell , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin.po\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2008-08-04 12:52-0500\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " "3 : 4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Cuir i gComparáid" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/ga/CMakeLists.txt0000644000175100001440000000016311626145605016073 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ga ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ga/kdiff3.po0000644000175100001440000016413111626145605015047 0ustar joachimusers# Irish translation of kdiff3 # Copyright (C) 2009 This_file_is_part_of_KDE # This file is distributed under the same license as the kdiff3 package. # Kevin Scannell , 2009. msgid "" msgstr "" "Project-Id-Version: playground-devtools/kdiff3.po\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2008-04-18 14:59-0500\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n < 11 ? " "3 : 4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Lean ar aghaidh" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cealaigh" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Scoir" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Cabhair" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Réamhshocruithe" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Comhad" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Eagar" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Comhadlann" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Fuinneog" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Socruithe" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Cabhair" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Eolas" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "Ú&dar" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Buíochas le" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Oscail" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Sábháil" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Sábháil Mar..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Priontáil..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Gearr" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Cóipeáil" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Greamaigh" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Roghnaigh Uile" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Taispeáin an Barra Uirlisí" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Taispeáin an Barra &Stádais" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Cumraigh %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Eolas" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Aimsigh" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "An Chéad Cheann Eile" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Roghnaigh Cló" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Déan neamhaird de" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Scoir" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Earráid agus %1 á léamh" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Ainm" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Oibríocht" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stádas" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "Bán" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Rabhadh" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Athscan" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Réidh." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Cumaisc" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Earráid" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Earráid." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Críochnaithe." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Cineál" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Méid" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Comhad" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "níl ar fáil" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ná Déan Faic" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Suiteálaí Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Tacaíocht Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Leagan KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Coinbhleachtaí" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Aschur" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Coinbhleacht" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Cuimhne ídithe" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cealaigh" #: difftextwindow.cpp:403 msgid "Line" msgstr "Líne" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Ionchódú:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "Deireadh" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "Athluchtaigh" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Éirigh as an bhfeidhmchlár" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Gearr an rannán roghnaithe agus cuir é sa ghearrthaisce" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Cuir cóip den rannán roghnaithe sa ghearrthaisce" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Greamaigh inneachar na gearrthaisce ag ionad an chúrsóra" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Cumasaigh/díchumasaigh an barra stádais" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Comhad á shábháil..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Comhad á shábháil le hainm comhaid nua..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing aborted." msgid "Printing not implemented." msgstr "Priontáil tobscortha." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Á Phriontáil..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Roghnú" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Priontáil tobscortha." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Ag scor..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Barra uirlisí á scoránú..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Scoránaigh an barra stádais..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Comhad..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Cumraigh..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Cásíogair" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Cuardach" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "ISO 8859-1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "Cumraigh" #: optiondialog.cpp:531 msgid "Font" msgstr "Cló" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Dath" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Dath an tulra:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Dath an chúlra:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Eagarthóir" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Fuinneog" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Roghnaigh go hUathoibríoch" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Socruithe Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Déileálfar leis mar spás bán." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Déan neamhaird d'uimhreacha" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Déileálfar le nótaí tráchta C/C++ mar spás bán." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Déileálfar le difríochtaí i gcás mar athruithe sa spás bán. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Comhadlann" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Roghnaigh go hUathoibríoch" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "Comhtháthú" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Tobscoir" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Roghnúchán á ghearradh..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Roghnúchán á chóipeáil go dtí an ghearrthaisce..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Inneachar na gearrthaisce á ionsá..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Kevin Scannell" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kscanne at gmail dot com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Príomhbharra Uirlisí" #~ msgid "C&ontinue" #~ msgstr "&Lean ar aghaidh" kdiff3-0.9.97/po/ca@valencia/0000755000175100001440000000000011630417646015134 5ustar joachimuserskdiff3-0.9.97/po/ca@valencia/kdiff3plugin.po0000644000175100001440000000606311627240424020060 0ustar joachimusers# Translation of kdiff3plugin.po to Catalan # Copyright (C) 2011 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2 or later # # Joan Maspons , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-03-07 01:44+0100\n" "Last-Translator: Joan Maspons \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Compara amb %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Fusiona amb %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Alça «%1» per després" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Fusió a tres bandes amb base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Compara amb..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Neteja la llista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Compara" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparació a 3 bandes" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Quant al connector del menú del KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Connector del menú del KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Lloc web del KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Ús de l'extensió de menú contextual:\n" "Per una comparació simple de dos fitxers seleccionats escolliu «Compara».\n" "Si l'altre fitxer és en algun altra lloc, «Alça» el primer fitxer per " "després i apareixerà al submenú «Compara amb...». Després, useu «Compara " "amb» al segon fitxer.\n" "Per una fusió a tres bandes, primer «Alça» el fitxer base, després la branca " "a fusionar, i després «Fusió a tres bandes» a l'altra branca que s'usarà com " "a destinació.\n" "El mateix també s'aplica a la comparació i fusió de directoris." #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "Quant al connector del menú del KDiff3..." kdiff3-0.9.97/po/ca@valencia/CMakeLists.txt0000644000175100001440000000017411627240423017667 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ca@valencia ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ca@valencia/kdiff3.po0000644000175100001440000024652511627240424016652 0ustar joachimusers# Translation of kdiff3.po to Catalan # Copyright (C) 2011 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2 or later # # Joan Maspons , 2011. # Josep Ma. Ferrer , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-03-07 01:12+0100\n" "Last-Translator: Joan Maspons \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continua" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancel·la" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Ix" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "D'acord" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Ajuda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Valors per defecte" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Fitxer" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Edita" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Directori" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Moviment" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Vista de d&iferències" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Fusió" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Finestra" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "A&rranjament" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "A&juda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Quant a" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Gràcies a" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operació de fusió de l'element actual" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operació de sincronització de l'element actual" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Obri" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Alça" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Alça com a..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimeix..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Talla" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copia" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Enganxa" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Selecciona-ho tot" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostra barra d'eines" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Mostra la barra d'estat" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configura %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Quant a" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Cerca" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Cerca el següent" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Tria el tipus de lletra" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Heu seleccionat un tipus de lletra d'amplada variable.\n" "\n" "Com que este programa no usa correctament tipus de lletra\n" "d'amplada variable, podríeu experimentar problemes mentre editeu.\n" "\n" "Voleu continuar o seleccionar un altre tipus de lletra?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Tipus de lletra incompatible." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continua sota la meua responsabilitat" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Tria un altre tipus de lletra" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Per més documentació, vegeu el menú «Ajuda» o el subdirectori doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Ús del KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignora" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Ix" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Ha fallat l'escriptura de dades del porta-retalls al fitxer temporal." #: diff.cpp:255 msgid "From Clipboard" msgstr "Des del porta-retalls" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Pot ser que el preprocessament haja fallat. Comproveu esta orde:\n" "\n" " %1\n" "\n" "L'orde de preprocessament es deshabilitarà ara." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Pot ser que el preprocessament de l'encaix de línies haja fallat. Comproveu " "esta orde:\n" "\n" " %1\n" "\n" "Ara es deshabilitarà l'orde de preprocessament d'encaix de línies." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Error de pèrdua de dades:\n" "Per favor, si és replicable contacteu amb l'autor.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Error intern sever" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Barreja d'enllaços i fitxers normals." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Enllaç: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Mida. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data i mida: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Ha fallat la creació de la copia temporal de %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Ha fallat l'obertura de %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "S'està comparant el fitxer..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Error llegint des de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nom" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operació" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Estat" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "No resolt" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Resolt" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "No blanc" #: directorymergewindow.cpp:359 msgid "White" msgstr "Blanc" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Actualment esteu fent una fusió de directoris. Segur que voleu interrompre " "la fusió i tornar a explorar el directori?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Atenció" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Torna a explorar" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continua fusionant" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Ha fallat l'obertura dels directoris:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "El directori A «%1» no existeix o no és un directori.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "El directori B «%1» no existeix o no és un directori.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "El directori C «%1» no existeix o no és un directori.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Error en obrir el directori" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Quan es fusionen tres directoris, el directori de destí ha de ser diferent " "que l'A o el B.\n" "Torneu-ho a comprovar avanç de continuar." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Alerta de paràmetres" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "S'estan explorant el directoris..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "S'està llegint el directori A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "S'està llegint el directori B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "S'està llegint el directori C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Alguns subdirectoris no eren llegibles a" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Comproveu els permisos dels subdirectoris." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Preparat." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Estat de la comparació de carpetes" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Nombre de subdirectoris:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Nombre de fitxers iguals:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Nombre de fitxers diferents:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Nombre de fusions manuals:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Això afecta totes les operacions de fusió." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "S'estan canviant totes les operacions de fusionat" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "S'està processant " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Pendent." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copia A a B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copia B a A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Esborra A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Esborra B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Esborra A i B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Fusiona a A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Fusiona a B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Fusiona a A i B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Esborra (si existeix)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Fusiona" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Fusiona (manualment)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Error: tipus de fitxer en conflicte" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Error: canviat i esborrat" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Error: les dates són iguals però els fitxers no." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Actualment esta opció no és possible." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operació no possible" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Això no hauria de passar mai: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Per favor, si sabeu com replicar això contacteu amb l'autor del programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Error del programa" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Hi ha hagut un error en copiar.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Error" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Error de fusionat" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Error." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Fet." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "No alçat." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operació de fusionat desconeguda. (Això no hauria de passar mai!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operació de fusionat desconeguda." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "La fusió està a punt de començar.\n" "\n" "Escolliu «Fes-ho» si heu llegit les instruccions i sabeu que esteu fent.\n" "Si escolliu «Simula-ho» veureu què passaria.\n" "\n" "Sigueu conscient que este programa encara està en fase de proves i no hi ha " "CAP GARANTIA! Feu copies de seguretat de les vostres dades vitals!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "S'està iniciant la fusió" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Fes-ho" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simula-ho" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "L'element ressaltat té un tipus diferent als diferents directoris. " "Seleccioneu què fer." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Les dates de modificació dels fitxers són iguals però els fitxers no ho són. " "Seleccioneu què fer." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "L'element ressaltat va ser canviat en un directori i esborrat a l'altre. " "Seleccioneu què fer." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Actualment esta operació no és possible perquè s'està a mig procés de fusió." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Hi ha hagut un error en l'últim pas.\n" "Voleu continuar amb l'element que ha causat l'error o voleu ometre'l?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Després d'un error continua fusionant" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continua amb l'últim element" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Omet l'element" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "S'ha omés." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "En curs..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operació de fusionat completada." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fusió completada" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulació de fusió completada: comproveu si esteu d'acord amb les operacions " "proposades." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Hi ha hagut un error. Per veure informació detallada premeu d'acord.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Error: en esborrar %1: ha fallat en crear una còpia de seguretat." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "esborra el directori recursivament( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "esborra( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Error: l'operació d'esborrar el directori ha fallat en intentar llegir-lo." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Error: ha fallat l'operació d'eliminar carpeta ( %1 )." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Error: ha fallat l'operació d'esborrat." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "fusió manual ( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Nota: avanç de fusionar manualment, l'usuari ha de continuar prement F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Error: ha fallat la copia ( %1 -> %2 ). L'esborrat de la destinació existent " "ha fallat." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copia enllaç ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Error: ha fallat la copia d'enllaç: els enllaços remots encara no estan " "implementats." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Error: ha fallat la copia d'enllaç." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copia( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Error en reanomenar( %1 -> %2 ): no es pot esborrar la destinació existent." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "reanomena( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Error: el canvi de nom ha fallat." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Error en crear fitxer de %1. No es pot esborrar el fitxer existent." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "crea directori( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Error en crear el directori." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Destí" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Directori" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipus" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Mida" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atributs" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Darrera modificació" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destí de l'enllaç" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Fitxer" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "no disponible" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Destí): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Destí): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Destí): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Destí: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Alça l'estat de fusió de directoris com a..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Comença/Continua la fusió de directoris" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Executa l'operació per l'element actual" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Compara el fitxer seleccionat" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Fusiona el fitxer actual" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Fitxer\n" "Fusionat" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Plega tots els subdirectoris" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Desplega tots els subdirectoris" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Tria A per tots els elements" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Tria B per tots els elements" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Tria C per tots els elements" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Tria automàticament l'operació per tots els elements" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "No hi ha cap operació per tots els elements" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostra els fitxers idèntics" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Fitxers\n" "Idèntics" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostra els fitxers diferents" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostra els fitxers que només són a A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Fitxers\n" "que només són a A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostra els fitxers que només són a B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Fitxers\n" "que només són a B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostra els fitxers que només són a C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Fitxers\n" "que només són a C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Compara els fitxers seleccionats explícitament" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Fusiona els fitxers seleccionats explícitament" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "No faces res" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Esborra A i B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Fusiona a A i B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorat. (Definit per l'usuari)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Eina per comparar i fusionar fitxers i directoris" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Correcció d'errades, mantenidor del paquet de Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instal·lador de Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Ajuda amb l'i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Pedaç del porta-retalls" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Ajuda amb KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Classe CvsIgnoreList del Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Classe StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Pedaç per acolorir les igualtats de directoris" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Solució a l'inici lent en Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext per Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Proves intensives, ús i comentaris" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Compatibilitat amb Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Adaptació al KDE 4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Moltes gràcies a tothom qui ha informat d'errors i ha aportat idees!" #: main.cpp:196 msgid "Merge the input." msgstr "Fusiona l'entrada." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Fitxer base explicit. Per compatibilitat amb certes eines." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Fitxer d'eixida. Implica -m P. ex.: -o fitxernou.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Fitxer d'eixida, un altre cop. (Per compatibilitat amb certes eines)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal -o " "fitxer)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "No resolguis els conflictes automàticament. (Per compatibilitat...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Reemplaçament de nom visible pel fitxer d'eixida 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Reemplaçament de nom visible pel fitxer d'eixida 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Reemplaçament de nom visible pel fitxer d'eixida 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Reemplaçament de nom visible alternatiu. Proporcioneu-lo per cada eixida." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Sobreescriu l'arranjament de la configuració. Useu-ho per cada arranjament. " "P. ex.: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Mostra una llista d'arranjaments de configuració i el valor actual." #: main.cpp:208 msgid "Use a different config file." msgstr "Usa un fitxer de configuració diferent." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "fitxer 1 a obrir (base, si no s'especifica via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "fitxer 2 a obrir" #: main.cpp:213 msgid "file3 to open" msgstr "fitxer 3 a obrir" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Número de conflictes sense resoldre pendents: %1 (dels quals %2 són espais " "en blanc)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "S'ha modificat l'eixida.\n" "Si continueu es perdran els canvis." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Tots els fitxers d'entrada són binàriament iguals." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Tots els fitxers d'entrada contenen el mateix text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Els fitxers %1 i %2 són binàriament iguals.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Els fitxers %1 i %2 tenen el mateix text.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Nombre total de conflictes: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Núm. de conflictes resolts automàticament: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Núm. de conflictes no resolts: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflictes" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Encara no s'han resolt tots els conflictes.\n" "El fitxer no s'ha alçat.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflictes pendents" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Hi ha un conflicte d'estil de finals de línia. Escolliu manualment l'estil " "de salt de línia.\n" "El fitxer no s'ha alçat.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Ha fallat la creació de la còpia de seguretat. El fitxer no s'ha alçat." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Error en alçar el fitxer" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Error en escriure." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Eixida" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificat]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codificació per alçar" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Estil de salt de línia:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflicte" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Còdec de" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "No s'han trobat fitxers per comparar." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Ha fallat en esborrar una còpia de seguretat quan s'intentava fer-ne una de " "nova.\n" "Nom de fitxer: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Ha fallat el reanomenament en intentar fer una còpia de seguretat. \n" "Noms de fitxer: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "S'està obtenint l'estat del fitxer: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "S'està llegint el fitxer: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "S'està escrivint el fitxer: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Sense memòria" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "S'està creant el directori: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "S'està eliminant el directori: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "S'està eliminant el fitxer: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "S'està creant l'enllaç simbòlic: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "S'està reanomenant el fitxer: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "S'està copiant el fitxer: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per " "llegir-lo. Nom de fitxer: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per " "escriure-hi. Nom de fitxer: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en llegir. Nom de " "fitxer: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en escriure. Nom de " "fitxer: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "S'està llegint el directori: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "S'està llistant el directori: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancel·la" #: difftextwindow.cpp:403 msgid "Line" msgstr "Línia" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Línia no disponible" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codificació:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Línia superior" #: difftextwindow.cpp:1769 msgid "End" msgstr "Final" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuració actual:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Error de l'opció de configuració:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Heu usat l'opció --auto, però no heu especificat cap fitxer d'eixida." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "L'opció --auto s'ignora en comparar directoris." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Ha fallat l'alçat." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Ha fallat en obrir estos fitxers:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "S'ha produït un error en obrir el fitxer" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Obra documents per comparar-los..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Recarrega" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Alça el resultat de la fusió. S'han de resoldre tots els conflictes!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Alça el document actual com a..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Imprimeix les diferències" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Ix de l'aplicació" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Talla la secció seleccionada i la posa al porta-retalls" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia la secció seleccionada al porta-retalls" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Enganxa el contingut del porta-retalls a la posició actual" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Selecciona tot el què hi ha a la finestra actual" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Cerca una cadena" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Torna a cercar la cadena" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Habilita/deshabilita la barra d'estat" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configura el KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Vés a la diferència actual" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Diferència\n" "actual" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Vés a la primera diferència" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Primera\n" "diferència" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Vés a l'última diferència" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Última\n" "diferència" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Se salten les diferències d'espais en blanc quan «Mostra espais en blanc» " "està deshabilitat)." #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(No se salten les diferències d'espais en blanc quan «Mostra espais en " "blanc» està deshabilitat)." #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Vés a la diferència anterior" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Diferència\n" "anterior" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Vés a diferència següent" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Diferència\n" "següent" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Vés al conflicte anterior" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflicte\n" "anterior" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Vés al conflicte següent" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflicte\n" "següent" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Vés al conflicte no resolt anterior" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "No resolt\n" "anterior" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Vés al conflicte no resolt següent" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "No resolt\n" "següent" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Selecciona línies d'A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Trieu\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Seleccion línies de B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Trieu\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Seleccion línies de C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Trieu\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Vés automàticament al conflicte no resolt següent després de seleccionar una " "font" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automàticament\n" "al següent" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" "Mostra com a diferències els caràcters d'espai en blanc i els de tabulador " #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Caràcters\n" "en blanc" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostra els espais en blanc" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Diferències\n" "d'espais" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostra els números de les línies" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Números\n" "de línia" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Trieu A a tot arreu" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Trieu B a tot arreu" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Trieu C a tot arreu" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Trieu A a tots els conflictes no resolts" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Trieu B a tots els conflictes no resolts" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Trieu C a tots els conflictes no resolts" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Trieu A a tots els conflictes d'espais en blanc no resolts" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Trieu B a tots els conflictes d'espais en blanc no resolts" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Trieu C a tots els conflictes d'espais en blanc no resolts" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Resol automàticament els conflictes senzills" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Estableix les diferències com a conflictes" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Executa la fusió automàtica d'expressions regulars" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Resol automàticament els conflictes cronològics" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Divideix les diferències a la selecció" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Uneix les diferències seleccionades" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostra la finestra A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostra la finestra B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostra la finestra C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Focus a la finestra següent" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Resum normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Resum d'A contra B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Resum d'A contra C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Resum de B contra C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Ajusta les línies de les finestres de diferències" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Afig alineació manual de les diferències" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Treu totes les alineacions manuals de les diferències" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Focus a la finestra anterior" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Commuta l'orientació de les divisions" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Vista de pantalla dividida en text i directoris" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Commuta entre la vista de directoris i text" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "El resultat de la fusió no s'ha alçat." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Alça i ix" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Ix sense alçar" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Ha fallat en alçar el resultat de la fusió." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Actualment esteu fent una fusió de directoris. Segur que la voleu " "interrompre?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "S'està alçant el fitxer..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "S'està alçant el fitxer amb un nom nou..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Impressió completada." #: kdiff3.cpp:815 msgid "Printing..." msgstr "S'està imprimint..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selecció" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Impressió completada." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "S'ha interromput la impressió." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "S'està eixint..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "S'està commutant la barra d'eines..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Commuta la barra d'estat..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fitxer..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Directori..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (opcional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Intercanvia/Copia els noms..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Intercanvia %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copia %1 ->Eixida" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Intercanvia %1<->Eixida" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Eixida (opcional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configura..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&D'acord" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Cerca el text:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Sensible a majúscules" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Cerca A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Cerca B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Cerca C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Cerca l'eixida" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Cerca" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Provador d'expressions regulars" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Fusiona automàticament les expressions regulars:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Exemple de línia de fusió automàtica:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Per testar la fusió automàtica, copieu una línia com les dels vostres " "fitxers." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultat coincident:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expressió regular d'inici d'historial:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Exemple de línia d'inici d'historial (amb el comentari inicial):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copieu una línia d'inici d'historial com les dels vostres fitxers,\n" "incloent el comentari inicial." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expressió regular d'inici d'entrada d'historial:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Criteri d'ordenació de les claus de l'historial:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Exemple d'inici de línia d'entrada d'historial (sense el comentari inicial):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copieu una entrada de línia d'inici d'historial com les dels vostres " "fitxers,\n" "sense incloure el comentari inicial." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resultat de la clau d'ordenació:" # PERFER: alineament? #: smalldialogs.cpp:508 msgid "OK" msgstr "D'acord" # PERFER: alineament? #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Encaix correcte." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Ha fallat l'encaix. " #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "L'obertura i tancament de parèntesis no encaixa en l'expressió regular." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bits" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Canvia això si els caràcters no ASCII no es mostren correctament." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configura" #: optiondialog.cpp:531 msgid "Font" msgstr "Tipus de lletra" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Tipus de lletra de l'editor i eixida de diferències" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Tipus de lletra cursiva per les diferències" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Per les diferències, selecciona la versió en cursiva del tipus de lletra.\n" "Si el tipus de lletra no implementa caràcters en cursiva, això no tindrà " "efecte." #: optiondialog.cpp:568 msgid "Color" msgstr "Color" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Arranjament de colors" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "vistes de l'editor i diferències:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Color de primer pla:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Color de fons:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Color de fons de les diferències:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Color A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Color B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Color C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Conflicte de color:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Color de fons del rang actual:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Color de fons de les diferències del rang actual:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Color pels rangs de diferències alineades manualment:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Vista de la comparació de directoris:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Color del fitxer més nou:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "El canvi d'este color només serà efectiu quan es comence la propera " "comparació de directoris." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Color del fitxer més antic:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Color del fitxer d'edat intermèdia:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Color dels fitxer no disponibles:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportament de l'editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "El tabulador insereix espais" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Activat: en prémer el tabulador es generaran el nombre apropat d'espais en " "blanc.\n" "Desactivat: s'inserirà un caràcter de tabulació." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Mida de la tabulació:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Sagnat automàtic" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Activat: s'usarà el sagnat de la línia prèvia per les línies noves.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Copia la selecció automàticament" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Activat: totes les seleccions s'alçaran al porta-retalls.\n" "Desactivat: haureu de copiar explícitament, p. ex. mitjançant Ctrl-C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Finestra" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Selecciona automàticament" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Estableix els finals de línia quan s'alcen els fitxers editats.\n" "Dos/Windows: CR+LF; UNIX: LF; amb CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diferència" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Arranjament de les diferències " #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Tracta-ho com a espais en blanc." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignora els números" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignora els caràcters numèrics durant la fase de d'encaix de línies. " "(Semblant a ignorar espais en blanc).\n" "Pot ajudar a comparar fitxers amb dades numèriques." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignora els comentaris de C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Tracta els comentaris de C/C++ com si fossin espais en blanc." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignora majúscules/minúscules" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Tracta les diferències de caixa com si fossin canvis d'espais en blanc(«a» " "<=> «A»)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Orde del preprocessador:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Preprocessament definit per l'usuari. (Vegeu la documentació pels detalls)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Orde del preprocessador d'encaix de línies:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Este preprocessador només s'usa durant l'encaix de línies.\n" "(Per més detalls vegeu la documentació)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Esforçat-hi (més lent)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Habilita l'opció --minimal pel diff extern.\n" "L'anàlisi de fitxers grans serà encara més lenta." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Alinea B i C per 3 fitxers d'entrada" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Intenta alinear B i C quan es comparin o fusionin tres fitxers d'entrada.\n" "No recomanat per fusionar ja que pot ser més complicat.\n" "(Deshabilitat per defecte)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Arranjaments de fusió" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Retard de l'avanç automàtic (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Quan el mode d'avanç automàtic estiga activat es mostrarà el resultat de la " "selecció \n" "actual durant el temps especificat, avanç de saltar al conflicte següent. " "Rang: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostra els diàlegs d'informació" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostra un diàleg amb informació sobre el nombre de conflictes." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Selecció manual" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Permet que l'algoritme de fusió seleccioni automàticament una entrada pels " "canvis d'espais en blanc." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Fusió automàticament les expressions regulars" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Expressió regular per les línies en què el KDiff3 hauria d'escollir una font " "automàticament.\n" "Quan una línia amb un conflicte concorda amb l'expressió regular aleshores\n" "- si està disponible - s'escollirà C, si no, B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Executa la fusió automàtica d'expressions regulars a l'inici de la fusió" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Fusiona automàticament les expressions regulars\n" "just en començar la fusió.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fusió d'historial del control de versions" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Expressió regular per l'inici de les entrades de l'historial del control de " "versions.\n" "Normalment esta línia conté la paraula clau «$Log$».\n" "Valor per defecte: «.*\\$Log.*\\$.*»" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Les entrades de l'historial del control de versions consten de varies " "línies.\n" "Especifiqueu l'expressió regular per detectar la primera línia (sense el " "comentari inicial).\n" "Useu parèntesis per agrupar les claus que vulgueu usar per ordenar-les.\n" "Si es deixa en blanc, el KDiff3 assumeix que les línies en blanc separen les " "entrades de l'historial.\n" "Per més detalls, vegeu la documentació." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordenació de la fusió d'historials" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordena l'historial del control de versions per una clau." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" "Criteri d'ordenació de les claus de l'inici de les entrades d'historial:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Cada parell de parèntesis usats en l'expressió regular per l'inici de " "l'entrada de l'historial\n" "agrupa una clau que es pot usar per ordenar.\n" "Especifica la llista de claus (que estan numerades en orde d'ocurrència\n" "començant per 1) usant «,» com a separador (p. ex. «4,5,6,1,2,3,7»).\n" "Si es deixa en blanc, no s'ordenarà.\n" "Per més detalls, vegeu la documentació." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Fusiona l'historial del control de versions quan es comence a fusionar" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Executa la fusió automàtica de l'historial del control de versions quan es " "comence a fusionar." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Nombre màxim d'entrades d'historial:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Talla a partir d'un número especificat. Useu -1 per un nombre infinit " "d'entrades." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Comproveu les vostres expressions regulars" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Orde de fusió irrellevant:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Si s'especifica, este script s'executarà després de la fusió automàtica\n" "quan no s'hagen detectats altres canvis apropiats.\n" "Cridat amb els paràmetres: nomdefitxer1 nomdefitxer2 nomdefitxer3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "En les fusions sense conflictes alça i ix automàticament" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Si el KDiff3 s'inicia des de la línia d'ordes per fusionar fitxers i tots\n" "els conflictes es poden resoldre sense la interacció de l'usuari, alça i " "ix.\n" "(Similar a l'opció de la línia de comandes «--auto»)." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Directori" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Directoris recursius" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Si analitzar els subdirectoris o no" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Patró dels fitxers:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patró dels fitxers a analitzar.\n" "Comodins: «*» i «?»\n" "Es poden especificar diversos patrons separant-los amb: «;»" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Negatiu del patró dels fitxers:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patró dels fitxers a excloure de l'anàlisi. \n" "Comodins: «*» i «?»\n" "Es poden especificar diversos patrons separant-los amb: «;»" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Negatiu del patró dels directoris:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patró dels directoris a excloure de l'anàlisi. \n" "Comodins: «*» i «?»\n" "Es poden especificar diversos patrons separant-los amb: «;»" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Usa .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Estén el negatiu del patró a tot el què ignora el CVS.\n" "Per mitjà dels fitxers «.cvsignore» locals això pot ser específic de cada " "directori." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Cerca fitxers i directoris ocults" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Cerca fitxers i directoris l'atribut ocult." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Cerca fitxers i directoris que comencen amb «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Segueix els enllaços de fitxer" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Activat: compara el fitxer al què apunta l'enllaç.\n" "Desactivat: compara els enllaços." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Segueix els enllaços de directori" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Activat: compara el directori al què apunta l'enllaç.\n" "Desactivat: compara els enllaços." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Comparació de noms de fitxers sensible a majúscules i minúscules" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "La comparació de directoris compararà fitxers o directoris que coincidisquen " "en nom.\n" "Activeu esta opció si la caixa dels noms ha de coincidir. (Per defecte en " "Windows està desactivat, en altres entorns està activat)." #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Mode de comparació de fitxers" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparació binària" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparació binària de cada fitxer. (Per defecte)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Anàlisi complet" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Fes un anàlisi complet i mostra informació estadística en columnes " "addicionals.\n" "(Més lent que una comparació binària, més lent encara per fitxers binaris)." #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Confia en la mida i la data de modificació (insegur)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Assumeix que els fitxers són iguals si la data de modificació i la mida del " "fitxer coincideixen.\n" "Els fitxers amb continguts iguals però diferents dates de modificació es " "mostraran com si fossin diferents.\n" "Útil per directoris grans o xarxes lentes." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Confia en la mida i data dels fitxers però compara binàriament si les dates " "no concorden (insegur)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Assumeix que els fitxers són iguals si les dates de modificació i les mides " "dels fitxers coincideixen.\n" "Si les dates no són iguals però les mides si, usa la comparació binària.\n" "Útil per directoris grans o xarxes lentes." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Confia en la mida (insegur)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Assumeix que els fitxers són iguals si la mida dels fitxer coincideixen.\n" "Útil per directoris grans o xarxes lentes quan la data es modifica durant la " "descarrega." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronitza directoris" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Ofereix emmagatzemar fitxers als dos directoris de manera que\n" "després els dos directoris siguen iguals.\n" "Només funciona quan es comparen dos directoris sense especificar una " "destinació." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Les diferències d'espais en blanc no es consideren" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Si els fitxers difereixen en només un espai en blanc considera'ls iguals.\n" "Això només és actiu quan s'trieu l'anàlisi complet." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copia el més nou en comptes de fusionar-los (insegur)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "No miris dins, simplement tria el fitxer més nou.\n" "(Useu això només si sabeu el què esteu fent).\n" "Només és efectiu quan es comparen dos directoris." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Fitxers de la còpia de seguretat (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Si un fitxer es guarda sobre un fitxer més antic, llavors el fitxer antic\n" "es reanomenara amb una extensió «.orig» en comptes de ser esborrat." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Arranjament regional" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Idioma (cal reiniciar)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Trieu l'idioma de les cadenes de la IGU o «Automàtic».\n" "Per què el canvi d'idioma tinga efecte, eixiu i reinicieu el KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Usa la mateixa configuració a tot arreu:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Habilitar això permet canviar totes les codificacions canviant només la " "primera.\n" "Deshabiliteu-ho si necessiteu arranjaments diferents per cada fitxer." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: la codificació local és " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codificació pel fitxer A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Si està habilitat es detectaran les codificacions Unicode (UTF-16 o UTF-8).\n" "Si el fitxer no és Unicode s'usarà la codificació seleccionada com a " "alternativa\n" "(la detecció de l'Unicode depèn dels primers bytes dels fitxers)." #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Detecta automàticament l'Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codificació pel fitxer B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codificació pel fitxer C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codificació des fitxers d'eixida d'una fusió i en alçar:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Selecciona automàticament" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Si està habilitat s'usarà la codificació dels fitxers d'entrada.\n" "En els casos ambigus un diàleg demanarà a l'usuari que esculli la " "codificació a usar per alçar." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codificació dels fitxers del preprocessador:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Idioma de dreta a esquerra" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Alguns idiomes es lligen de dreta a esquerra.\n" "Este arranjament canviarà el visor i l'editor per adaptar-s'hi." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integració" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Arranjaments d'integració" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opcions de la línia d'ordes a ignorar:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Llista d'opcions de la línia d'ordes que s'ignoraran quan el KDiff3 siga " "usat per altres eines.\n" "Es poden especificar varis valors separant-los amb «;».\n" "Això solucionarà l'error «Opció desconeguda»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Ix també en prémer la tecla d'escapada" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Mètode ràpid per eixir.\n" "Pels qui estigueu acostumats a usar la tecla d'escapada." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integra amb ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra amb Rational ClearCase d'IBM.\n" "Modifica el fitxer «map» del subdirectori de ClearCase «lib/mgrs»\n" "(només s'activa quan directori «bin» de ClearCase estiga al camí)." #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Elimina la integració amb ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Restaura el fitxer «map» antic d'avanç de fer la integració de ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Tipus de lletra incompatible" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continua sota la meua responsabilitat" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Tria un altre tipus de lletra" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Això restableix totes les opcions, no només les del tema actual." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "OrdreDePreprosessador: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Les següents opcions que heu seleccionat poden canviar dades:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Probablement, durant una fusió no voldreu això.\n" "Voleu deshabilitar estos arranjaments o continuar amb estos arranjaments " "activats?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opció insegura per fusionar" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Usa estes opcions en fusionar" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Deshabilita les opcions insegures" #: pdiff.cpp:300 msgid "Loading A" msgstr "S'està carregant A" #: pdiff.cpp:304 msgid "Loading B" msgstr "S'està carregant B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Dif: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Diferència de línia: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "S'està carregant C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Dif: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Dif: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Diferència de línia: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Diferència de línia: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Tots els fitxers d'entrada contenen el mateix text però no són binàriament " "iguals." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Els fitxers %1 i %2 tenen el mateix text, però binàriament no són iguals. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Alguns fitxers d'entrada no pareixen fitxers de text pur.\n" "Noteu que la fusió del KDiff3 no està pensada per dades binàries.\n" "Continueu sota la vostra responsabilitat." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Interromp" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "S'estan obrint els fitxers..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "S'ha produït un error en obrir el fitxer" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "S'està retallant la selecció..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "S'està copiant la selecció al porta-retalls..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "S'està inserint el contingut del porta-retalls..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Alça i continua" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continua sense alçar" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Cerca completa." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Cerca completa" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "No hi ha res seleccionat en cap de les finestres de diferències." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Error en afegir un rang manual de diferències" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "No s'ha pogut inicialitzar el component KDiff.\n" "Això sol ser degut a problemes d'instal·lació. Per més detalls, llegiu el " "fitxer README del paquet de codi." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Joan Maspons Ventura" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "joanmaspons@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configura el KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra d'eines principal" kdiff3-0.9.97/po/bg/0000755000175100001440000000000011626145654013340 5ustar joachimuserskdiff3-0.9.97/po/bg/CMakeLists.txt0000644000175100001440000000016311626145605016074 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(bg ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/bg/kdiff3.po0000644000175100001440000031300411626145605015043 0ustar joachimusers# translation of kdiff3.po to Bulgarian # # Zlatko Popov , 2006, 2007, 2008. # Yasen Pramatarov , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-13 17:47+0300\n" "Last-Translator: Yasen Pramatarov \n" "Language-Team: Bulgarian \n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Продължаване" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Отказ" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Изход" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "ОК" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Помощ" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "По подразбиране" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Файл" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Редактиране" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Директория" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Движение" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Изглед на раз&делител" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Сливане" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Прозорец" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Настройки" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Помощ" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "Пре&късване" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "А&втор" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Благодарение на" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Операция по сливане на текущия елемент" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Операция по синхронизация на текущия елемент" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Отваряне" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Запазване" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Запис като..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Отпечатване..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Изрязване" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Копиране" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Поставяне" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Избиране на всичко" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Показване на инструментите" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Показване на лентата за &състояние" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Настройване на %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Относно" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Търсене" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Търсене на следващо" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Избор на шрифт" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Избрали сте шрифт с променлива дължина.\n" "\n" "Тъй като тази програма не може да обработва такива шрифтове\n" "правилно, може да имате проблеми по време на редактиране.\n" "\n" "Искате ли да продължите или ще изберете друг шрифт?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Несъвместим шрифт." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Продължете на собствена отговорност." #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Изберете друг шрифт" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "За повече документация вижте менюто за помощ или поддиректорията \"doc\"." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Пренебрегване" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Изход" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Грешка при запис на системния буфер във временен файл." #: diff.cpp:255 msgid "From Clipboard" msgstr "От системния буфер" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Очаква се интервал след затварящи кавички." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Несъвпадащи кавички." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Неочаквани кавички в аргумент" #: diff.cpp:503 msgid "No program specified." msgstr "Не е указана програма." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Възможно е предварителната обработка да е неуспешна. Проверете тази " "команда:\n" "\n" " %1\n" "\n" "Командата за предварителна обработка ще бъде неактивна." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Възможно е предварителната обработка за сравняване на редове да е неуспешна. " "Проверете тази команда:\n" "\n" " %1\n" "\n" "Командата за предварителна обработка за сравняване на редове ще бъде " "неактивна." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Грешка от загуба на данни:\n" "Ако продължава, моля, свържете се с автора.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Сериозна вътрешна грешка" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Комбинация от препратки и нормални файлове." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Препратка: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Размер. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Дата и размер: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Създаването на временно копие на %1 беше неуспешно." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Отварянето на %1 беше неуспешно." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Сравняване на файл..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Грешка по време на четене от %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Име" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Действие" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Състояние" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Нерешен" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Решен" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Запълнено" #: directorymergewindow.cpp:359 msgid "White" msgstr "Празно" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "В момента извършвате сливане на директория. Сигурни ли сте, че искате да " "прекъснете сливането и да сканирате отново директорията?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Предупреждение" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Ново сканиране" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Продължение на сливането" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Отварянето на директориите беше неуспешно:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Директория А \"%1\" не съществува или не е директория.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Директория Б \"%1\" не съществува или не е директория.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Директория В \"%1\" не съществува или не е директория.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Грешка при отваряне на директория" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Когато се сливат три директории, отправната директория не трябва да бъде " "същата като А или Б.\n" "Проверете отново преди да продължите." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Предупреждение за параметър" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Сканиране на директориите..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Четене на директория А" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Четене на директория Б" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Четене на директория В" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Някои от поддиректориите са нечетими" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Проверете правата на поддиректориите." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "В готовност." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Статус на сравняването на директории" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Бройка на поддиректориите:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Бройка на еднаквите файлове:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Бройка на различните файлове:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Бройка на ръчните сливания:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Това засяга всички операции по сливане." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Промяна на всички операции по сливане" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Обработка " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Задача." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Копиране на А в Б" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Копиране на Б в А" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Изтриване на А" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Изтриване на Б" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Изтриване на А и Б" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Сливане с А" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Сливане с Б" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Сливане с А и Б" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Изтриване (ако съществува)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Сливане" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Сливане (ръчно)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Грешка: Конфликт в типовете на файлове" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Грешка: Променено и изтрито" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Грешка: Датите са еднакви, но файловете не са." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Това действие в момента не е възможно." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Действието не е възможно" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Това не би трябвало да се случва: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Ако знаете как да го направите отново, моля, свържете се с автора на " "програмата." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Програмна грешка" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Възникна грешка по време на копирането.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Грешка" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Грешка при сливане" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Грешка." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Изпълнено." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Не е записан." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Непозната операция за сливане. (Това не трябва да се случва никога!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Непозната операция за сливане." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Сливането ще започне всеки момент.\n" "\n" "Изберете \"Изпълнение\" ако сте прочел инструкциите и знаете какво правите.\n" "Изберете \"Симулация\" и ще разберете какво би се случило.\n" "\n" "Имайте предвид, че тази програма е все още бета версия и изобщо НЯМА " "ГАРАНЦИЯ! Правете резервни копия на важната информация!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Стартиране на сливането" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Изпълнение" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Симулация" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Осветеният елемент има различни типове в различните директории. Изберете " "какво да се направи." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Датите на последна промяна на файловете са еднакви, но файловете не са. " "Изберете какво да се направи." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Осветеният елемент е променен в една директория и е изтрит в друга. Изберете " "какво да се направи." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "В момента действието е невъзможно, тъй като тече процес на сливане на " "директории." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Възникнала е грешка в последната стъпка.\n" "Искате ли да продължите с елемента, който е причинил тази грешка или ще го " "прескочите?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Продължаване на сливането след грешката" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Продължаване с последния елемент" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Прескачане на елемент" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Прескочен." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Изпълнява се..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Операцията по сливане завърши." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Сливането завърши" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Симулацията на сливане завърши: Проверете дали сте съгласни с предложените " "действия." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "Възникнала е грешка. Натиснете \"ОК\", за да видите подробна информация.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" "Грешка: По време на изтриването на %1: Създаването на резервно копие беше " "неуспешно." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "рекурсивно изтриване на директория( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "изтриване( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Грешка: операцията по изтриване беше неуспешна при опит за четене на " "директорията." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Грешка: операцията по изтриване на директория( %1 ) беше неуспешна." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Грешка: операцията по изтриване беше неуспешна." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "ръчно сливане( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Забележка: След ръчно сливане, потребителят трябва да натисне клавиш " "F7, за да продължи." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Грешка: копирането на ( %1 -> %2 ) беше неуспешно. Изтриването на " "съществуващото местоназначение е неуспешно." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "копиране на препратка( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Грешка: копирането на препратка беше неуспешно: Отдалечени препратки не се " "поддържат." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Грешка: копирането на препратка беше неуспешно." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "копиране( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Грешка по време на преименуване( %1 -> %2 ): Изтриването на съществуващото " "местоназначение беше неуспешно." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "преименуване( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Грешка: Преименуването беше неуспешно." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Грешка по време на създаване на директория %1. Не може да се изтрие " "съществуващ файл." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "създаване на директория( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Грешка по време на създаване на директория." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Местоназначение" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Директория" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Вид" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Размер" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Атрибути" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Последна промяна" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Местоназначение на препратката" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Файл" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "не е наличен" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "А (местоназначение): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "А (основно): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "Б (местоназначение): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "В (местоназначение): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Местоназначение: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Запис състоянието при сливане като..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Стартиране/Продължение на сливането на директория" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Стартиране на операцията за текущия елемент" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Сравняване на маркираните файлове" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Сливане на текущия файл" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Сливане\n" "на файл" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Скриване на всички поддиректории" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Показване на всички поддиректории" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Изберете А за всички елементи" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Изберете Б за всички елементи" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Изберете В за всички елементи" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Автоматично избиране на операция за всички елементи" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Без операция за всички елементи" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Показване на идентични файлове" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Идентични\n" "файлове" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Показване на различните файлове" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Показване на файлове само в A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Файлове\n" "само в A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Показване на файлове само в B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Файлове\n" "само в B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Показване на файлове само в C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Файлове\n" "само в C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Сравняване на маркираните файлове" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Сливане на маркираните файлове" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Да не се прави нищо" #: directorymergewindow.cpp:2989 msgid "A" msgstr "А" #: directorymergewindow.cpp:2990 msgid "B" msgstr "Б" #: directorymergewindow.cpp:2991 msgid "C" msgstr "В" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Изтриване на А и Б" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Сливане в А и Б" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Пренебрегнато. (Задава се от потребителя.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Инструмент за сравняване и сливане на файлове и директории" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Поправки и поддръжка на пакета за Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Инсталатор за Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Помощ за преводите" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Кръпка за системния буфер" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Помощ за KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Клас CvsIgnoreList от Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Клас StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Кръпка за сравняване на директории" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Поправка за бавното зареждане под Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext за Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Изпробване, употреба и обратна връзка" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Поддръжка на Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Версия за KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Версия за OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ Много благодарности за тези, които се обадиха за грешките и имаха нови " "идеи!" #: main.cpp:196 msgid "Merge the input." msgstr "Сливане на входа." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Изричен основен файл. За съвместимост с някои инструменти." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Изходен файл. Съдържа -m Например: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Отново изходен файл. (За съвместимост с някои инструменти)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Без графичен интерфейс, ако всички конфликти могат да се разрешат " "автоматично. (Нуждае се от -о файл)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Без автоматично разрешаване на конфликтите. (За съвместимост...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Видима размяна на имената на файловете за входен файл 1 (основен)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Видима размяна на имената на файловете за входен файл 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Видима размяна на имената на файловете за входен файл 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Алтернативна размяна на имената на файловете. Използвайте го веднъж за всеки " "вход." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Пише върху настройките. Използвайте веднъж за всяка настройка. Например: --" "cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Показване на списък с настройки и текущи стойности." #: main.cpp:208 msgid "Use a different config file." msgstr "Използване на различни конфигурационни файлове." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "да се отвори файл 1 (основен, ако не е указан с --base)" #: main.cpp:212 msgid "file2 to open" msgstr "да се отвори файл 2" #: main.cpp:213 msgid "file3 to open" msgstr "да се отвори файл 3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Брой оставащи нерешени конфликти: %1 (от които %2 са интервали)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Изходът е променен.\n" "Ако продължите промените ще бъдат загубени." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Всички входни файлове са двоично еднакви." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Входните файлове съдържат еднакъв текст." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Файлове %1 и %2 са двоично еднакви.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Файлове %1 и %2 съдържат еднакъв текст. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Общ брой конфликти: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Брой автоматично решени конфликти: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Брой нерешени конфликти: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Конфликти" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<Няма входен ред>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<Сливане на конфликт (Само интервали)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<Сливане на конфликт>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Все още не всички конфликти са решени.\n" "Файлът не е записан.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Оставащи конфликти" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Има конфликт във видовете край на ред. Изберете край на ред ръчно.\n" "Файлът не е запазен.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Създаването на резервно копие беше неуспешно. Файлът не е записан." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Грешка при запис на файл" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Грешка по време на запис." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Резултат" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Променено]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Кодова таблица за запис" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Край на ред:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Конфликт" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Кодек от" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Не са открити файлове за сравняване." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "В процеса на създаване на ново резервно копие, изтриването на по-старото " "беше неуспешно.\n" "Име на файл: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "В процеса на създаване на ново резервно копие, преименуването беше " "неуспешно.\n" "Имена на файлове: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Вземане статуса на файл: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Чете на файл: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Запис на файл: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Няма памет" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Създаване на директория: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Премахване на директория: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Премахване на файл: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Създаване на връзка към символи: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Преименуване на файл: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Копиране на файл: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Грешка по време на копиране: Отварянето на файл за четене беше неуспешно. " "Име на файл: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Грешка по време на копиране: Отварянето на файл за запис беше неуспешно. Име " "на файл: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Грешка по време на копиране: Четенето беше неуспешно. Име на файл: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Грешка по време на копиране: Записът беше неуспешен. Име на файл: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Четене на директория: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Списък на директория: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Отказ" #: difftextwindow.cpp:403 msgid "Line" msgstr "Ред" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Редът липсва" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Кодова таблица:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Най-горен ред" #: difftextwindow.cpp:1769 msgid "End" msgstr "Край" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Текуща конфигурация:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Грешка на опция за конфигурация:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Използвана е настройка --auto, но не е указан изходен файл." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Игнорирана е настройка --auto за сравняване на директории." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Записът беше неуспешен." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Отварянето на тези файлове беше неуспешно:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Грешка при отваряне на файл" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Отваря документ за сравняване..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Презареждане" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Запис на резултатът от сливането. Всички конфликти трябва да са решени!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Запис на текущият документ като..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Отпечатване на разликите" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Излиза от програмата" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Изрязва избраната област и я слага в системния буфер" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Копира избраната област в системния буфер" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Поставяне съдържанието на системния буфер на посоченото място" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Избиране на всичко в текущия прозорец" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Търсене на низ" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Повторно търсене на низа" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Включва/Изключва лентата за състоянието" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Настройване на KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Отиване на текущата разлика" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Текуща\n" "разлика" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Отиване на първата разлика" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Първа\n" "разлика" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Отиване на последната разлика" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Последна\n" "разлика" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Прескача разликата в интервалите, когато настройката \"Показване на " "интервалите\" е изключена.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Прескача разликата в интервалите, дори когато настройката \"Показване на " "интервалите\" е изключена.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Отиване на предишната разлика" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Предишна\n" "разлика" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Отиване на следващата разлика" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Следваща\n" "разлика" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Отиване на предишния конфликт" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Предишен\n" "конфликт" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Отиване на следващия конфликт" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Следващ\n" "конфликт" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Отиване на предишния неразрешен конфликт" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Предишен\n" "неразрешен" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Отиване на следващия неразрешен конфликт" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Следващ\n" "неразрешен" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Маркирайте ред(ове) от А" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Изберете\n" "А" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Изберете ред(ове) от Б" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Изберете\n" "Б" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Изберете ред(ове) от В" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Изберете\n" "В" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Автоматично прехвърляне към следващия нерешен конфликт, след избиране на " "източник" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Автоматично\n" "средващо" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Показване на символите за интервал и табулация за разлика" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Празни\n" "символи" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Показване на интервалите" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Разлики в\n" "интервалите" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Показване на номера на редове" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Номера на\n" "редовете" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Избиране на А навсякъде" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Избиране на Б навсякъде" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Избиране на В навсякъде" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Избиране на А за всички нерешени конфликти" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Избиране на Б за всички нерешени конфликти" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Избиране на В за всички нерешени конфликти" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Избиране на А за всички нерешени конфликти, свързани с интервали" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Избиране на Б за всички нерешени конфликти, свързани с интервали" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Избиране на В за всички нерешени конфликти, свързани с интервали" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Автоматично разрешаване на простите конфликти" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Задаване на действията за конфликти" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Изпълнение на автосливане на регулярни изрази" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Автоматично разрешаване на конфликтите в историята" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Разделяне на разликата при избраното" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Сливане на избраните разлики" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Показване на прозорец А" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Показване на прозорец Б" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Показване на прозорец В" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Фокусиране на следващия прозорец" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Нормален изглед" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Изглед на А срещу Б" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Изглед на А срещу В" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Изглед на Б срещу В" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Пренасяне на думите за различните прозорци" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Добавяне на ръчно подравняване на разликите" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Изчистване на на ръчно подравняване на разликите" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Фокусиране върху предишния прозорец" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Превключване към разделена подредба" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Разделен изглед на директория и текст" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Превключване между изглед на директория и текст" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Резултатът от сливането не е записан." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Запис и изход" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Изход без запис" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Записът на резултата от сливането беше неуспешен." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "В момента извършвате сливане на директории. Сигурни ли сте, че искате да го " "прекъснете?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Запис на файл..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Запис на файл с ново име..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Отпечатването не е внедрено." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Отпечатване..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Избрано" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Отпечатването приключи." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Отпечатването е прекъснато." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Излизане..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Превключване на лентата с инструменти..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Превключване на лентата за състоянието..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "А (основен):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Файл..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Директория..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "В (по избор):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Размяна/Копиране на имена ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Размяна: %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Копиране: %1-> Изходни данни" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Размяна: %1 <-> Изходни данни" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Резултат (по избор):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Настройване..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Търсене на текст:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Чувствителен регистър" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Търсене в А" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Търсене в Б" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Търсене във В" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Резултат от търсенето" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Търсене" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Изпробване за регулярни изрази" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Автосливане на регулярни изрази:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Примерен ред за начало на автосливане:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "За изпробване на автосливането копирайте ред от използваните файлове." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Съвпадащ резултат:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Регулярен израз за начало на история:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Ред за примерно стартиране на история (в водещ коментар):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Копирайте ред на започване на история като във файловете,\n" "включително и водещия коментар." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Регулярен израз за начало на историята:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Ред за сортиращ ключ:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Примерен ред за стартиране на история (без водещ коментар):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Копирайте реда за начало на история като във файловете,\n" "но пропуснете водещия коментар." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Резултат от подреждането на ключове:" #: smalldialogs.cpp:508 msgid "OK" msgstr "ОК" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Съвпадението е успешно." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Съвпадението беше неуспешен." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Отварящите и затварящи скоби не съвпадат в регулярния израз." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 бита" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Променете това ако не-ASCII символите не се изобразяват правилно." #: optiondialog.cpp:465 msgid "Configure" msgstr "Настройки" #: optiondialog.cpp:531 msgid "Font" msgstr "Шрифт" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Изходен шрифт за редактора и разделителя" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Наклонен шрифт за действията" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Избира версията с наклонен шрифт за различаване.\n" "Ако шрифтът не поддържа наклонени символи, тогава не прави нищо." #: optiondialog.cpp:568 msgid "Color" msgstr "Цвят" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Цветови настройки" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Редактор за преглед на разлики:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Цвят на преден план:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Цвят за фон:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Различен цвят за фон:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Цвят А:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Цвят Б:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Цвят В:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Цвят за конфликт:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Текущ обхват за цвета на фон:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Текущ обхват за цвета на фон на разделител:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Цвят на обхват за ръчно избрани разлики:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Преглед на сравняването на директории:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Цвят на най-новия файл:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Промяната на този цвят ще има ефект само при сравняване на следващата " "директория." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Цвят на най-стария файл:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Цвят на средно стар файл:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Цвят на липсващи файлове:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Редактор" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Поведение на редактора" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab вмъква интервали" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Включено: Натискането на табулация изписва подходящ брой интервали.\n" "Изключено: Ще бъде вмъкнат един символ за табулация." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Големина на табулация:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Автоматичен отстъп" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Включено: Отстъпа на предишния ред се използва за всеки нов.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Автоматично копиране на избраното" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Включено: Всичко избрано се записва веднага в системния буфер.\n" "Изключено: Трябва изрично да копирате, например с Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Автоматично откриване" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Задава края на реда, когато редактирания файл бива записан.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Разлика" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Настройки за разлика" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Третиране като интервали." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Пренебрегване на числата" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Пренебрегване на числата по време на фазата за съвпадение. (Подобно на " "пренебрегването на интервалите.)\n" "Може да помогне да се сравнят файлове с числова информация." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Игнориране коментарите на С/С++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Третиране на С/С++ коментарите като интервали." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Без разлика на главни и малки букви" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Третиране на разликата в регистъра като промяна в интервалите. (\"a\"<=>\"A" "\")" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Команда за предварителна обработка:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Дефинирана от потребителя предварителна обработка. (Погледнете " "документацията за подробности.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Команда за предварителна обработка на съвпадение на редове:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Тази предварителна обработка се използва само при съвпадения на редове.\n" "(Вижте документацията за допълнителна информация.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Опитване по-усърдно (по-бавно)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Включва настройка --minimal за външното разделяне.\n" "Анализирането на големи файлове ще е много по-бавно." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Настройки за сливане" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Забавяне на автоматичното придвижване (милисекунди):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Когато сте в режим на автоматично придвижване, резултатът на избраното се " "показва \n" "за определен период от време преди да се премине на следващ конфликт. " "Обхват: 0-2000 мсек" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Показване на уведомления" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Показване на прозорец с данни за броя на конфликтите." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Интервал по подразбиране при сливане на 2 файла:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Ръчен избор" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Позволяване на сливащия алгоритъм автоматично да избира вход за промени от " "типа интервали." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Интервал по подразбиране при сливане на 3 файла:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Автоматично сливане на регулярни изрази" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Регулярните изрази за редовете, където KDiff3 трябва автоматично да избере " "източник.\n" "Когато някой ред с конфликт съвпадне с регулярния израз,\n" "тогава \"- if available - C\", иначе ще бъде избран B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Изпълнение на автосливане на регулярни изрази при начало на сливането" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Изпълнение на сливане за автосливане на регулярни изрази\n" "веднага след започване на сливане.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Сливане историята на версиите" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Регулярен израз за начало на запис в историята на системи за контрол на " "версиите.\n" "Обикновено това съдържа ключова дума \"$Log$\".\n" "Стойност по подразбиране: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Записът в историята на системи за контрол на версиите се състои от няколко " "реда.\n" "Посочете регулярния израз за определяне на първия ред (без началния " "коментар).\n" "Използвайте скоби за групиране на ключовете за сортиране.\n" "Ако е празно, тогава KDiff3 ще счита, че празните редове разделят записите.\n" "За повече подробности вижте документацията." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Подреждане сливането на историята" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Подреждане на история на версиите по ключ." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Ред за сортиране на ключове за история:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Всяка двойка използвани скоби в регулярния израз за начало на историята\n" "е група ключове, които могат да се използват за подреждане.\n" "Посочете списъка с ключове (подреждат се по реда на появяване,\n" "започвайки от 1), които поддържат \",\" като разделител (напр. " "\"4,5,6,1,2,3,7\").\n" "Ако е празно, няма да се прави подреждане.\n" "За повече информация вижте документацията." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Сливане на историята за версии при стартиране" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "Автосливане на историята за версии при стартиране." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Макс. брой записи в историята:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Отрязване след посочения брой. Използвайте -1 за \"безкрайно\"." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Изпробване на регулярни изрази" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Неподходяща команда за сливане:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Ако е зададен, този скрипт ще бъде изпълнен след автосливане\n" "при условие ,че не са открити други промени.\n" "Извикани с параметри: има на файл 1има на файл 2 име на файл 3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Автозапис и изход ако сливането е без конфликти" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Ако KDiff3 е зареден за сливане на файлове от команден ред\n" "и всички конфликти са разрешими без намеса на потребителя,\n" "тогава следва автоматичен запис и изход.\n" "(Подобно на командата \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Директория" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Рекурсивни директории" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Дали да се анализират или не поддиректориите." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Шаблон(и) за файл:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Шаблони за файлове, които да се анализират. \n" "Wildcards: \"*\" and \"?\"\n" "Могат да се определят няколко шаблона чрез използване на разделителя: \";\"" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Анти шаблон(и) за файл:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Шаблони на файлове, които да се изпълнят от анализа. \n" "Wildcards: \"*\" and \"?\"\n" "Могат да се определят няколко шаблона чрез използване на разделителя: \";\"" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Анти шаблон(и) за директория:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Шаблони на директории, които да се изпълнят от анализа. \n" "Wildcards: \"*\" and \"?\"\n" "Могат да се определят няколко шаблона чрез използване на разделителя: \";\"" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Използване на .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Разширява антишаблона до нещо, което ще бъде пренебрегнато от CVS.\n" "Чрез локалните файлове \".cvsignore\", това може да се настройва за отделни " "директории." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Откриване на скрити файлове и директории" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Открива файлове и директории със скрит атрибут." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Открива файлове и директории, започващи с \".\"." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Проследяване на файловите препратки" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Включено: Сравнява файла, към който сочи препратката.\n" "Изключено: Сравнява препратките." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Проследяване на препратките към директория" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Включено: Сравнява директорията, към която сочи препратката.\n" "Изключено: Сравнява препратките." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Сравняване на имена, чувствително към регистър" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Сравняването на директории ще сравни дали съвпадат имената на файлове или " "директории.\n" "включете тази опция, ако регистъра трябва да съвпада. (По подразбиране за " "Windows е изключено, иначе - включено.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Режим \"сравняване на файлове\"" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Двоично сравнение" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Двоично сравнение за всеки файл. (По подразбиране)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Пълен анализ" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Прави пълен анализ и показва статистическа информация в допълнителни " "колони.\n" "(По-бавно от двоичното сравнение, много по-бавно за двоични файлове.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Доверяване на размера и датата на промяна (опасно)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Приема се, че файловете са еднакви, ако датата на промяна и големината са " "еднакви.\n" "Файловете с еднакво съдържание, но с различна дата на промяна ще бъдат " "отчетени като различни.\n" "Може да се използва за големи директории или бавни мрежи." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Доверяване на размера и датата, но използване на двоично сравнение, ако " "датата не съвпада (опасно)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Приема се, че файловете са еднакви, ако датата на промяна и големината са " "еднакви.\n" "Ако датата не е еднаква, но размирите са, се използва двоично сравнение.\n" "Полезно за големи директории или бавни мрежи." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Доверяване на големината (опасно)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Приема се, че файловете са еднакви ако техните големини са еднакви.\n" "Полезно за големи директории или бавни мрежи, когато датата се променя по " "време на сваляне." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Синхронизиране на директории" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Предлага да запише файловете и в двете директории така, че\n" "и двете директории след това да са едни и същи.\n" "Работи само, когато се сравняват две директории без определено " "местонахождение." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Разликите в интервалите да се приемат за еднакви" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Файловете да се считат за еднакви, ако се различават само по интервалите.\n" "Това работи само ако е избран пълен анализ." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Копиране на по-новите, вместо сливане (не е безопасно)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Да не се гледа вътре, а да се взима по-новия файл.\n" "(Използвайте го само ако знаете какво правите!)\n" "Ефективно е, само ако се сравняват две директории." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Резервни копия на файлове (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Когато файл ще се записва върху стар файл, тогава старият файл\n" "ще бъде преименуван с разширение \".orig\", вместо да бъде изтрит." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Регионални настройки" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Език (нужно е рестартиране)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Изберете език за графичния интерфейс или \"Автоматично\".\n" "За да се смени езикът, излезте от KDiff3 и я рестартирайте." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Използване на еднаква кодова таблица за всичко:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Включвайки това, можете да промените всички кодировки с промяната само на " "първата.\n" "Изключете са необходими различни индивидуални настройки." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Забележка: Локалната кодова таблица е " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Файлова кодова таблица за А:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Ако е включено, ще се открива Уникод (UTF-16 или UTF-8).\n" "Ако файлът не е в Уникод, като резервно ще бъде използвано указаното " "кодиране.\n" "(Намирането на Уникод зависи от първите байтове във файла.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Автонамиране на Уникод" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Файлова кодова таблица за Б:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Файлова кодова таблица за В:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Кодова таблица на файла за резултата от сливането и записване:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Автоматично избиране" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Ако е включена тази отметка, тогава ще се използва кодирането на входящите " "файлове.\n" "Когато има нещо неясно, ще се появи прозорец , от където може да избере " "кодиране." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Кодова таблица на файл за файлове за предварителна обработка:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Езици тип \"отдясно на ляво\"" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Някои езици се четат отдясно наляво.\n" "Тази настройка ще промени съответно редактора и визуализатора." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Интеграция" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Настройки на интеграцията" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Опции за команден ред, които да бъдат игнорирани:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Показва опциите за команден ред, които трябва да бъдат пренебрегнати, когато " "KDiff3 се извиква от други инструменти.\n" "Могат да бъдат посочени няколко стойности, разделени с \";\" \n" "Това ще потисне съобщението \"Непозната грешка\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Излизане и с клавиша \"Escape\"" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Интеграция с ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Интеграция с Rational ClearCase на IBM.\n" "Променя \"map\" файла в поддиректорията \"lib/mgrs\" на ClearCase\n" "(Включено е само когато директорията \"bin\" на ClearCase е включена в пътя.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Премахване на интеграцията с ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Възстановяване на стария \"map\" файл от преди интеграцията с ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Несъвместими шрифтове" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Продължете на собствена отговорност" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Изберете друг шрифт" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Това ще възстанови всички настройки. Не само тези в текущата тема." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "PreprocessorCmd: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Следните настройки, които избрахте може да променят информация:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Най-вероятно това не е желателно по време на сливане.\n" "Искате ли да изключите тези настройки или ще продължите с тях?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Опцията не е безопасна при сливане" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Използвайте тези опции при сливане" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Изключване на опасните опции" #: pdiff.cpp:300 msgid "Loading A" msgstr "Зареждане на А" #: pdiff.cpp:304 msgid "Loading B" msgstr "Зареждане на Б" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Разлика: A <-> Б" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Разлика на линия: A <-> Б" #: pdiff.cpp:338 msgid "Loading C" msgstr "Зареждане на В" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Разлика: Б <-> B" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Разлика: А <-> B" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Разлика на ред: Б <-> B" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Разлика на ред: A <-> B" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "Входните файлове съдържат еднакъв текст, но не са двоично еднакви." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Файлове %1 и %2 са с еднакъв текст, но не са двоично еднакви. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Някои входни файлове не са чисти текстови файлове.\n" "Имайте предвид, че сливането на KDiff3 не е предназначено за двоична " "информация.\n" "Продължавате на собствена отговорност." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Прекъсване" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Отваряне на файлове..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Грешка при отваряне на файл" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Изрязване на избраното..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Копиране на избраното в системния буфер..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Вмъкване съдържанието на системния буфер..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Запис и продължение" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Продължение без запис" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Търсенето завърши." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Търсенето завърши" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Нищо не е избрано в прозореца за разлики." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Грешка при ръчно добавяне на охват за разликите" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Грешка при зареждане на част от KDiff3\n" "Това обикновено се случва поради проблеми с инсталацията. За повече " "подробности прочетете файла README в инсталационния пакет." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Ясен Праматаров,Златко Попов" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "yasen@lindeas.com,zlatkopopov@fsa-bg.org" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Настройки на KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Главна лента с инструменти" kdiff3-0.9.97/po/ka/0000755000175100001440000000000011626145654013343 5ustar joachimuserskdiff3-0.9.97/po/ka/CMakeLists.txt0000644000175100001440000000016311626145604016076 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ka ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ka/kdiff3.po0000644000175100001440000031410211626145604015045 0ustar joachimusers# translation of kdiff3.po to Georgian # # Rusudan Tsiskreli , 2006. # რუსუდან ცისკრელი , 2006. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2006-03-28 01:44+0400\n" "Last-Translator: Giasher \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.2\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "&გაგრძელება" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy #| msgid "File..." msgid "&File" msgstr "ფაილი..." #: kreplacements/kreplacements.cpp:297 #, fuzzy #| msgid "Editor" msgid "&Edit" msgstr "რედაქტორი" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&დირექტორია" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&მოძრაობა" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iffview" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "შ&ერწყმა" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&ფანჯარა" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "Diff & შერწყმის პარამეტრები" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy #| msgid "Abort" msgid "&About" msgstr "შეწყვეტა" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "მიმდინარე ელემენტის შერწყმის ოპერაცია" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "მიმდინარე ელემენტის სინქრონიზაციის ოპერაცია" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "ოპერაცია" #: kreplacements/kreplacements.cpp:606 #, fuzzy #| msgid "Solved" msgid "Save" msgstr "გადაჭრილი" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "გამოსვლა..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Delete A" msgid "Select All" msgstr "A-ს წაშლა" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format #| msgid "Configure..." msgid "&Configure %1..." msgstr "კონფიგურაცია..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy #| msgid "Abort" msgid "About" msgstr "შეწყვეტა" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy #| msgid "Select Another Font" msgid "Select Font" msgstr "სხვა შრიფტის ამორჩევა" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "თქვენ აირჩიეთ შრიფტის ცვლადი სიგანე.\n" "\n" "რადგან ეს პროგრამა ვერ ამუშავებს შრიფტის ცვლად სიგანეს\n" "სწორად, თქვენ შეიძლება რედაქტირებისას პრობლემები შეგექმნათ.\n" "\n" "გსურთ გააგრძელოთ თუ სხვა შრიფტს აირჩევთ." #: kreplacements/kreplacements.cpp:792 #, fuzzy #| msgid "Incompatible Font" msgid "Incompatible font." msgstr "შეუთავსებელი შრიფტი" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Continue at Own Risk" msgid "Continue at my own risk" msgstr "საკუთარი თავის იმედათ გაგრძელება" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Select Another Font" msgid "Select another font" msgstr "სხვა შრიფტის ამორჩევა" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "KDiff3" msgid "KDiff3-Usage" msgstr "KDiff3" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Ignore case" msgid "Ignore" msgstr "რეგისტრის იგნორირება" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Editor" msgid "Exit" msgstr "რედაქტორი" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "ბუფერის მონაცემის დროებით ფაილში ჩაწერა ვერ შედგა." #: diff.cpp:255 msgid "From Clipboard" msgstr "გაცვლის ბუფერიდან " #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "გაგრძელება შესაძლოა ვერ შედგა შემოწმება. შეამოწმეთ ეს ბრძანება:\n" "\n" " %1\n" "\n" "გაგრძელების ბრძანება ახლა გამოირთვება." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "ხაზთა დამთხვევა ალბათ ვერ შედგა. შეამოწმეთ ეს ბრძანება:\n" "\n" " %1\n" "\n" "ხაზთა დამთხვევა ახლა გამოირთვება." #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "მონაცემების დაკარგვის შეცდომა:\n" "თუ ეს მეორდება, გთხოვთ დაუკავშირდეთ ავტორს.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "მკაცრი შინაგანი შეცდომა" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "ბმულების და ჩოულებრივი ფაილების ნარევი." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "ბმული: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "ზომა. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "თარიღი და ზომა: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "%1-ს დროებითი ასლის შექმნა ვერ შედგა." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1-ს გახსნა ვერ შედგა." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "ფაილების შედარება..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1-ს წაკითხვის შეცდომა" #: directorymergewindow.cpp:358 msgid "Name" msgstr "სახელი" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "ოპერაცია" #: directorymergewindow.cpp:358 msgid "Status" msgstr "სტატუსი" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "გადაუჭრელი" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "გადაჭრილი" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "არათეთრი" #: directorymergewindow.cpp:359 msgid "White" msgstr "თეთრი" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "თქვენ ახლა დირექტორიების შერწყმას ახორციელებთ.დარწმუნებული ხართ რომ გსურთ " "შერწყმის შეწყვეტა და დირექტორიის თავიდან სკანირება?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "თავიდან სკანირება" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "შერწყმის გაგრძელება" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "დირექტორიის გახსნა ვერ შედგა:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Dir A \"%1\" არ არსებობს ან არ არის დირექტორია.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Dir B \"%1\" არ არსებობს ან არ არის დირექტორია.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Dir C \"%1\" არ არსებობს ან არ არის დირექტორია.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "დირექტორიის გახსნის შეცდომა" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "დანიშნულების დირექტორია არ უნდა იყოს იგივე A ან B როდესაც ხდება სამი " "დირექტორიის შერწყმა.\n" "გაგრძელებამდე კიდევ შეამოწმეთ." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "გაფრთხილების პარამეტრი" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "დირექტორიების სკანირება..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "დირექტორია A-ს წაკითხვა" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "დირექტორია B-ს წაკითხვა" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "დირექტორია C-ს წაკითხვა" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "ზოგიერთი ქვედირექტორიის წაკითხვა ვერ განხორციელდა" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "ქვედირექტორიების უფლებების შემოწმება." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "მზად." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "დირექტორიის შედარების სტატუსი" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "ქვედირექტორიების რაოდენობა:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "ტოლი ფაილების რაოდენობა:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "განსხვავებული ფაილების რაოდენობა:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "ხელით შერწყმების რაოდენობა:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "ეს მოსდის ყველა შერწყმის ოპერაციას." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "ყველა შერწყმის ოპერაციების შეცვლა" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "მიმდინარეობა " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "გასაკეთებელი." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A-ს ასლი B-ში" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B-ს ასლი A-ში" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A-ს წაშლა" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B-ს წაშლა" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A და B-ს წაშლა" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "შერწყმა A-სკენ" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "შერწყმა B-სკენ" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "შერწყმა A და B-სკენ" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "წაშლა (თუ არსებობს)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "შერწყმა" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "შერწყმა (ხელით)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "შეცდომა: კონფლიქტურ ფაილთა ტიპები" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "შეცდომა: თარიღები იდენტურია, მარა ფაილები არა." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "ეს ოპერაცია ახლა შეუძლებელია." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "ოპერაცია შეუძლებელია" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "ეს არასდროს არ უნდა მომხდარიყო: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "თუ იცით როგორ განახორციალოთ ეს, გთხოვთ დაუკავსირდეთ პროგრამის ავტორს." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "პროგრამის შეცდომა" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "ასლის გაკეთებისას შეცდომა მოხდა.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "შეცდომა." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "შერწმის შეცდომა" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "შეცდომა." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "შესრულებულია." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "არაა შენახული." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "შერწყმის უცნობი ოპერაცია. (ეს არასდროს არ უნდა მომხდარიყო!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "შერწყმის უცნობი ოპერაცია." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "შერწყმა საცაა დაიწყება.\n" "\n" "აირჩიეთ \"გაკეთება\" თუ წაიკითხეთ ინსტრუქცია და იცით რას აკეტებთ.\n" "\"სიმულაციის\" არჩევით გაიგებტ რა მოხდება.\n" "\n" "გაითვალისწინეთ ეს პროგრამა ჯერ კიდევ ბეტაა და არანაერი გარანტია არ არსებობს! " "სასიცოცხლო მნიშვნელობის მონაცემების სარეზერვო ასლები გააკეთეთ!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "შერწყმის დაწყება" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "გააკეთე" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "სიმულაცია" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "მარკირებული ელემენტი სხვადასხვა დირექტორიებში სხვადასხვაა. აირჩიეთ რა ქნათ." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "ფაილის მოდიფიკაციის თარიღები იდენტურია მარა ფაილები არა. აირჩიეთ რა გააკეთოთ." #: directorymergewindow.cpp:2123 #, fuzzy #| msgid "" #| "The highlighted item has a different type in the different directories. " #| "Select what to do." msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "მარკირებული ელემენტი სხვადასხვა დირექტორიებში სხვადასხვაა. აირჩიეთ რა ქნათ." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "ოპერაცია ახლა შეუძლებელია, რადგან დირექტორიათა შერწყმა უკვე გაშვებულია." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "უკანასკნელ ნაბიჯში შეცდომა მოხდა.\n" "გსურთ ამ ელემენტით გაგრძელება, რომლის გამოც გდება შეცდომა, თუ გსურთ " "გადაახტეთ მას?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "შეცდომის შემდეგ შერწმის გაგრძელება" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "უკანასკნელი ელემენტით გაგრძელება" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "ელემენტის გაცდენა" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "გაცდენილია." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "მიმდინარეობს..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "შერწყმის ოპერაცია დასრულდა." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "შერწყმა დასრულდა" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "შერწყმის სიმულაცია დასრულდა: შეამოწმეთ თუ ეთანხმებით შემოთავაზებულ " "ოპერაციებს." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "შეცდომა მოხდა. დააწკაპუნეთ OK დეტალური ცნობების სანახავად.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "შეცდომა: %1-ს წასლის დროს: სარეზერვო ასლის შექმნა ვერ შედგა." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "დირექტორიის რეკურსიულად წაშლა( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "წაშლა( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "შეცდომა: დირექტორიის წაშლის ოპერაცია ვერ შედგა წაკითხვის მცდელობისას." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "შეცდომა: rmdir( %1 ) ოპერაცია ვერ შედგა." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "შეცდომა: წაშლის ოპპერაცია ვერ შედგა." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "ხელით შერწყმა( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " გაითვალისწინეთ: ხელით შერწყმის შემდეგ მომხმარებელმა უნდა გააგრძელოს F7-" "ის დაჭერით." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "შეცდომა: ასლი( %1 -> %2 ) ვერ შედგა.არსებული დანიშნულების ფაილის წაშლა ვერ " "შედგა." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "შეცდომა copyLink ვერ შედგა: დაშორებული ბმულები ჯერ არ არის მხარდაჭერილი." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "შეცდომა: copyLink ვერ შედგა." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "ასლი( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "შეცდომა სახელის გადარქმევისას( %1 -> %2 ): არსებული დანიშნულების წაშლა " "შეუძლებელია." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rename( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "შეცდომა: სახელის გადარქმევა ვერ შედგა." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "შეცდომა %1-ს makeDir-ის დროს. არსებული ფაილის წაშლა შეუძლებელია," #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "დირექტორიის შექმნისას შეცდომა." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "ტიპი" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "ზომა" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "უკანასკნელად ჩასწორებულია" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "ბმულის დანიშნულება" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy #| msgid "File..." msgid "File" msgstr "ფაილი..." #: directorymergewindow.cpp:2726 msgid "not available" msgstr "ხელმიუწვდომელია" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (ფუძე): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest:" #: directorymergewindow.cpp:2836 #, fuzzy msgid "Save Directory Merge State As..." msgstr "დირექტორიათა შერწყმა" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "დირექტორიის შერწყმის დაწყება/გაგრძელება" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "მიმდინარე ელემენტიდან ოპერაციის გაშვება" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "მონიშნული ფაილების შედარება" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "მიმდინარე ფაილის შერწყმა" #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "შერწყმა" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "ყველა ქვედირექტორიის ჩაკეცვა" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "ყველა ქვედირექტორიის არჩაკეცვა" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "A -თვის ყველა ელემენტების არჩევა" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "B -თვის ყველა ელემენტების არჩევა" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "C -თვის ყველა ელემენტების არჩევა" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "ყველა ელემენტების ოპერაციების ავტო-არჩევა" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "ყველა ელემენტისთვის არავითარი ოპერაცია" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 #, fuzzy msgid "Show Different Files" msgstr "განსხვავებული ფაილების რაოდენობა:" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 #, fuzzy msgid "Compare Explicitly Selected Files" msgstr "მონიშნული ფაილების შედარება" #: directorymergewindow.cpp:2986 #, fuzzy msgid "Merge Explicitly Selected Files" msgstr "მონიშნული ფაილების შედარება" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "არაფრის არ გაკეთება" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "A და B წაშლა" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "შერწყმა A და B-სკენ" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy #| msgid "KDiff3" msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "ფაილების და საქაღალდეების შედარების და შერწყმის ხელსაწყოები" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "გაცვლის ბუფერიდან " #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy #| msgid "Directory Comparison Status" msgid "Directory Equality-Coloring patch" msgstr "დირექტორიის შედარების სტატუსი" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy #| msgid "Merge Error" msgid "Sergey Zorin" msgstr "შერწმის შეცდომა" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "არაფრის არ გაკეთება" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ დიდი მადლობა მათ ვინც გვატყობინებს ბზიკების შესახებ და გვაწოდებს იდეებს!" #: main.cpp:196 msgid "Merge the input." msgstr "შეტანის შერწყმა." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "გამონატანის ფაილი. Implies -m. E.g.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "გამონატანის ფაილი, თავიდან. (განსაზღვრულ ხელსაწყოსთან თავსებადობისთვის.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "GUI-ს გარეშე თუ ყველა კონფლიქტო გადაჭრადია. (სსაჭიროებს -o ფაილს)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "კონფლიქტების ავტომატურად არ გადაჭრა. (თავსებადობისთვის...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "ხილული სახელის ჩანაცვლება 1 ფაილისთვის (საბაზისო)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "ხილული სახელის ჩანაცვლება 2 ფაილისთვის." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "ხილული სახელის ჩანაცვლება 3 ფაილისთვის." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "ალტერნატიული ხილული სახელის ჩანაცვლება. მიუთითეთ ერთხელ ყოველი შეყვანისთვის." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "განსხვავებული ფაილების რაოდენობა:" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "ფაილი3-ის გახსნა (საფუძველი, თუ არაა მითითებული --base)" #: main.cpp:212 msgid "file2 to open" msgstr "ფაილი2-ის გახსნა" #: main.cpp:213 msgid "file3 to open" msgstr "ფაილი3-ის გახსნა" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "დარჩენილი გადაუჭრელი კონფლიქტების რაოდენობა: %1 (საიდანაც %2 არის ღარი)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "გამონატანი ჩასწორებულია.\n" "თუ გააგრძელებთ ცვლილებები დაგეკარგებათ." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "ყველა შეტანილი ბაილის ბინარი ტოლია." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "ყველა შეტანილი ფაილის შეიცავს ერთიდაიგივე ტექსტი." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, fuzzy, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "B და C ბინარულად ტოლია.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "A და B აქვთ ერთიდაიგივე ტექსტი. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "კონფლიქტების სრული რაოდენობა: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "ავტომატურად გადაჭრილი კონფლიქტების რაოდენობა: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "გადაუჭრელი კონფლიქტების რაოდენობა: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "კონფლიქტები" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "ყველა კონფლიქტი ჯერ არაა გადაჭრილი.\n" "ფაილი არაა შენახული.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "დარჩენილი კონფლიქტები" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "სარეზერვო ასლის შექმნა ვერ შედგა. ფაილი არაა შენახული." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "ფაილის შენახვის შეცდომა" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "ჩაწერისას შეცდომა." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "გამონატანი" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[ჩასწორებულია]" #: mergeresultwindow.cpp:3141 #, fuzzy msgid "Encoding for saving" msgstr "ფაილის კოდირება C-თვის:" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "ხაზის დასარულის სტილი:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy #| msgid "Conflicts" msgid "Conflict" msgstr "კონფლიქტები" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "შსადარებელი ფაილები ვერ მოიძებნა." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "სარეზერვო ასლის გაკეთების მცდელობისას, ძველი სარეზერვო ასლის წაშლა ვერ " "შედგა. \n" "ფაილის სახელი: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "სარეზერვო ასლის გაკეთების მცდელობისას, სახელის გადარქმევა ვერ შედგა. \n" "ფაილის სახელები: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "ფაილის მდგომარეობის მიღება: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "ფაილის წაკითხვა: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "ფაილის ჩაწერა: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "მეხსიერება არაა საკმარისი" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "დირექტორიის შექმნა: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "დირექტორიის წაშლა: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "ფაილის წაშლა: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "სიმბოლური ბმულის შექმნა: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "ფაილის სახელის გადარქმევა: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "ფაილის ასლი: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "შეცდომა ასლის გაკეთების ოპერაციისას: ფაილის წასაკითხად გახსნა ვერ შედგა. " "ფაილის სახელი: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "შეცდომა ასლის გაკეთების ოპერაციისას: ფაილის ჩასაწერად გახსნა ვერ შედგა. " "ფაილის სახელი: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "შეცდომა ასლის გაკეთების ოპერაციისას: წაკითხვა ვერ შედგა. ფაილის სახელი: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "შეცდომა ასლის გაკეთების ოპერაციისას: ჩაწერა ვერ შედგა. ფაილის სახელი: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "დირექტორიის წაკითხვა:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "დირექტორიის სია: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy #| msgid "Link: " msgid "Line" msgstr "ბმული: " #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "ხელმიუწვდომელია" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 #, fuzzy #| msgid "File Encoding for A:" msgid "Encoding:" msgstr "ფაილის კოდირება A-თვის:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 #, fuzzy msgid "Top line" msgstr "ზედა ხაზი %1" #: difftextwindow.cpp:1769 msgid "End" msgstr "დასასრული" #: kdiff3.cpp:169 #, fuzzy msgid "Current Configuration:" msgstr "მიმდინარე ელემენტის სინქრონიზაციის ოპერაცია" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "ფაილის გახსნის შეცდომა" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "პარამეტრი --auto გამოყენებულია, მაგრამ გამონატანი ფაილი არაა მითითებული." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "პარამეტრი --auto დირექტორიების შედარებისთვის იგნორირებულია." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "შენახვა ვერ შედგა." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "ამ ფაილების გახსნა ვერ შედგა:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "ფაილის გახსნის შეცდომა" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "ხსნის დოკუმენტებს შესადარებლად..." #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "მზად." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "ინახავს შერწყმის შედეგებს. ყველა კონფლიქტი უნდა გადაიჭრას!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "მიმდინარე დოკუმენტს ინახავს როგორც..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "პროგრამის დახურვა" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "ჭრის მონიშნულ სექციას და გაცვლით ბუფერში ათავსებს" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "მონიშნულ სექციის ასლს ქმნის გაცვლით ბუფერში" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "გაცვლის ბუფერის შემადგენლობას სვამს მიმდინარე პოზიციაზე" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "სტრიქონის ძიება" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "სტრიქონის თავიდან ძიება" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "სტატუსის ველს რთავს" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 კონფიგურაცია..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "მიმდინარე დელტაზე გადასვლა" #: kdiff3.cpp:532 #, fuzzy #| msgid "Go to Current Delta" msgid "" "Current\n" "Delta" msgstr "მიმდინარე დელტაზე გადასვლა" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "პირველ დელტაზე გადასვლა" #: kdiff3.cpp:534 #, fuzzy #| msgid "Go to First Delta" msgid "" "First\n" "Delta" msgstr "პირველ დელტაზე გადასვლა" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "უკანასკნელ დელტაზე გადასვლა" #: kdiff3.cpp:536 #, fuzzy #| msgid "Go to Last Delta" msgid "" "Last\n" "Delta" msgstr "უკანასკნელ დელტაზე გადასვლა" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "წინა დელტაზე გადასვლა" #: kdiff3.cpp:540 #, fuzzy #| msgid "Go to Previous Delta" msgid "" "Prev\n" "Delta" msgstr "წინა დელტაზე გადასვლა" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "შემდეგ დელტაზე გადასვლა" #: kdiff3.cpp:542 #, fuzzy #| msgid "Go to Next Delta" msgid "" "Next\n" "Delta" msgstr "შემდეგ დელტაზე გადასვლა" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "წინა კონფლიქტზე გადასვლა" #: kdiff3.cpp:544 #, fuzzy #| msgid "Conflicts" msgid "" "Prev\n" "Conflict" msgstr "კონფლიქტები" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "შემდეგ კონფლიქტზე გადასვლა" #: kdiff3.cpp:546 #, fuzzy #| msgid "Go to Next Conflict" msgid "" "Next\n" "Conflict" msgstr "შემდეგ კონფლიქტზე გადასვლა" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "წინა გადაუჭრელ კონფლიქტზე გადასვლა" #: kdiff3.cpp:548 #, fuzzy #| msgid "Unsolved" msgid "" "Prev\n" "Unsolved" msgstr "გადაუჭრელი" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "შემდეგ გადაუჭრელ კონფლიქტზე გადასვლა" #: kdiff3.cpp:550 #, fuzzy #| msgid "Unsolved" msgid "" "Next\n" "Unsolved" msgstr "გადაუჭრელი" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "აირჩიეთ ხაზ(ებ)ი A-დან" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "აირჩიეთ ხაზ(ებ)ი B-დან" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "აირჩიეთ ხაზ(ებ)ი C-დან" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "წყაროს არჩევისას ავტომატურად გადასვლა შემდეგ გადაუჭრელ კონფლიკტზე" #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "მონიშვნის ავტო ასლი" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "ღარების ჩვენება და ტაბულაციის სიმბოლოების განსხვავებისთვის" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "ხაზების ნომრების ჩვენება" #: kdiff3.cpp:560 #, fuzzy #| msgid "Show Line Numbers" msgid "" "Line\n" "Numbers" msgstr "ხაზების ნომრების ჩვენება" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "ყველგან A-ს არჩევა" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "ყველგან B-ს არჩევა" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "ყველგან C-ს არჩევა" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "A-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "B-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "C-ს არჩევა ყველა გადაუჭრელი კონფლიქტისთვის" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "მარტივი კონფლიქტების ავრომატურად გადაჭრა" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "კონფლიქტებისთვის დელტას მინიჭება" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 #, fuzzy msgid "Automatically Solve History Conflicts" msgstr "მარტივი კონფლიქტების ავრომატურად გადაჭრა" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 #, fuzzy msgid "Join Selected Diffs" msgstr "მონიშნული ფაილების შედარება" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "ფანჯარა A-ს ჩვენება " #: kdiff3.cpp:578 msgid "Show Window B" msgstr "ფანჯარა B-ს ჩვენება" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "ფანჯარა C-ს ჩვენება" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "ფოკუსი შემდეგ ფანჯარაზე" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "ჩვეულებრივი გადახედვა" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A წინააღმდეგ B გადახედვა" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A წინააღმდეგ C გადახედვა" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B წინააღმდეგ C გადახედვა" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Word Wrap Diff ფანჯრები" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "ფოკუსი წინა ფანჯარაზე" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "გახლეჩვის ორიენტაციის გადართვა" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "დირექტორიისა და ტექსტი განლაგების ეკრანის ხედი" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "დირექტორიათა და ტექსტის ხედებს შორის გადართვა" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "შერწყმის შედეგები არ იყო შენახული." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "შენახვა და გასვლა" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "გასვლა შენახვის გარეშე" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "შერწყმის შედეგების შენახვა ვერ შედგა." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "თქვენ ახლა დირექტორიათა შერწყმას აკეთებთ. ნამდვილად გსურთ შეწყვეტა?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "ფაილის შენახვა..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "ფაილის ახალი სახელით შენახვა..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "შერწყმის ოპერაცია დასრულდა." #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "გამოსვლა..." #: kdiff3.cpp:956 #, fuzzy #| msgid "Select Another Font" msgid "Selection" msgstr "სხვა შრიფტის ამორჩევა" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "შერწყმის ოპერაცია დასრულდა." #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "შერწყმის ოპერაცია დასრულდა." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "გამოსვლა..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "ხელსაწყოთა პანელის გადართვა..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "სტატუსის ზოლის გადართვა..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (ფუძე):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "ფაილი..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Dir..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (არასავალდებულო_:" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "გამონატანი (არასავალდებულო):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "კონფიგურაცია..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "ტექსტის ძიება:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "რეგისტრისადმი მგძნობიარე" #: smalldialogs.cpp:372 msgid "Search A" msgstr "ძიება A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "ძიება B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "ძიება C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "გამონატანის ძიება" #: smalldialogs.cpp:392 msgid "&Search" msgstr "ძიე&ბა" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 #, fuzzy msgid "Match failed." msgstr "შენახვა ვერ შედგა." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "უნიკოდი, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "უნიკოდი" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "შეცვალე თუ არა ASCII სიმბოლოები არ აისახება მართებულად." #: optiondialog.cpp:465 #, fuzzy #| msgid "Configure..." msgid "Configure" msgstr "კონფიგურაცია..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "რედაქტორი და Diff გამონატანის შრიფტი" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "დელტასთვის კურსივი" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "ირჩევს კურსივ შრიფტებს განსხვავებისთვის.\n" "თუ შრიფტს არ აქვს კურსივის მხარდაჭერა, მაშინ ეს არაფერს არ აკეთებს." #: optiondialog.cpp:568 msgid "Color" msgstr "ფერი" #: optiondialog.cpp:569 #, fuzzy msgid "Colors Settings" msgstr "რეგიონალური პარამეტრები" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "ზედაპირის ფერი:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "ფონის ფერი:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Diff ფონის ფერი:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "ფერი A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "ფერი B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "ფერი C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "კონფლიქტის ფერი:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "მიმდინარე შუალედის ფონის ფერი:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "მიმდინარე შუალედის diff ფონის ფერი:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 #, fuzzy msgid "Directory Comparison View:" msgstr "დირექტორიის შედარების სტატუსი" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "რედაქტორი" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "რედაქტორის ქცევა" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab სვავს ღარებს" #: optiondialog.cpp:735 #, fuzzy #| msgid "" #| "On: Pressing tab generates the appropriate number of spaces.\n" #| "Off: A Tab-character will be inserted." msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "ჩართულია: tab-ის დაჭერა აგენერირებს ღარების განსაზღვრულ რაოდენობას.\n" "გამორთულია: ტაბულაციის სიმბოლო იქნება ჩასმული." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "ჩანართის ზომა:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "ავტო შეწევა" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "ჩართულია: წინა ხაზის შეწევა გამოიყენება ახალი ხაზისთვის.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "მონიშვნის ავტო ასლი" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "ჩართულია: ნებისმიერი მონიშვნა ჯდება გაცვლის ბუფერში.\n" "გამორთულია: თქვენ ასლი უნდა გააკეთოთ მაგ. Ctrl-C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&ფანჯარა" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "მონიშვნის ავტო ასლი" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "აყენებს ხაზის ბოლოს როდესაც რედაქტურებული ფაილი ინახება.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "KDiff3" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Diff & შერწყმის პარამეტრები" #: optiondialog.cpp:809 #, fuzzy msgid "Treat as white space." msgstr "C/C++ კომენტარების ღარებად განხილვა." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "როცხვების იგნორირება" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "რიცხვების იგნორირება ფრაზების შედარებისას. (იგივე ნაერად როგორ ღარების " "იგნორირება.)\n" "შეიძლება დაგეხმაროთ ციფრული მონაცემებით ფაილების შედარებისას." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ კომენტარების იგნორირება" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ კომენტარების ღარებად განხილვა." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "რეგისტრის იგნორირება" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "რეგისტრის სხვაობის ღარებად განხილვა. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Preprocessor ბრძანება:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "მომხმარებლის მიერ განსაზღვრული processing. (დეტალებისთვის იხ. დოკუმენტაცია.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "ხაზის დამთხვევის preprocessor ბრძანება:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "მაგრად ცდა (ნელია)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "გარე diff-სთვის რთავს --minimal პარამეტრს.\n" "დიდი ფაილების ანალიზი ბევრად შენელდება." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "Diff & შერწყმის პარამეტრები" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 #, fuzzy #| msgid "Show Window A" msgid "Show info dialogs" msgstr "ფანჯარა A-ს ჩვენება " #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "ხელით არჩევა" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "ქვედირექტორიების რაოდენობა:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "&Directory" msgid "Directory" msgstr "&დირექტორია" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "დირექტორიათა რეკურსია" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "ქვესაქაღალდეები გაანალიზდეს თუ არა." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "ფაილის შაბლონ(ებ)ი:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n" "Wildcards: '*' და '?'\n" "რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "ფაილის-ანტი-შაბლონ(ებ)ი:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "არა გასაანალიზებელი ფაილების შაბლონ(ებ)ი.\n" "Wildcards: '*' და '?'\n" "რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Dir-ანტი-შაბლონ(ებ)ი:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "არა გასაანალიზებელი დირექტორიების შაბლონ(ებ)ი.\n" "Wildcards: '*' და '?'\n" "რამდენიმე შაბლონის მითითება შეიძლება ';' გამყოფით" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore-ის გამოყენება" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "დამალული ფაილების და დირექტორიების ძიება" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "ფაილების და დირექტორიების ძიება დამალული ატრიბუტით." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "'.'-ით დაწყებული ფაილების და დირექტორიების ძიება." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "ფაილთა ბმულზე გადასვლა" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "ჩართულია: იმ ფაილთა შედარება რაზეც მიუთითებს ბმული.\n" "გამორთულია: ბმულების შედარება." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "დირექტორიათა ბმულზე გადასვლა" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "ჩართულია: იმ დირექტორიათა შედარება რაზეც მიუთითებს ბმული.\n" "გამორთულია: ბმულების შედარება." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "ფაილთა შედარების რეჟიმი" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "ორობითი შედარება" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "ყოველი ფაილის ორობითი შედარება. (ნაგულისხმები)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "სრული ანალიზი" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "სრული ანალიზის გაკეთება და სტატისტიკური ინფორმაციის ექსტრა სვეტში ასახვა.\n" "(უფრო ნელია ვიდრე ბინარული შედარება, ბევრად ნელი ბინარული ფაილებისთვის.)" #: optiondialog.cpp:1178 #, fuzzy msgid "Trust the size and modification date (unsafe)" msgstr "მოდიფიცირების თარიღი ნდობა (არაა სანდო)" #: optiondialog.cpp:1179 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "თუ მოდიფიცირების თარიღი და ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n" "კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის." #: optiondialog.cpp:1184 #, fuzzy msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "მოდიფიცირების თარიღი ნდობა (არაა სანდო)" #: optiondialog.cpp:1185 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "თუ მოდიფიცირების თარიღი და ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n" "კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "ზომის ნდობა (არაა სანდო)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "თუ ფაილის ზომა ტოლია, მათ იდენტურად მიჩნევა.\n" "კარგია დიდი დირექტორიებისთვის და ნელი ქსელებისთვის, როდესაც მოდიფიკაციის დრო " "ჩამოქაჩვისას იცვლება." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "დირექტორიების სინქრონიზაცია" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "ინტერვალების სხვაობის ტოლად ჩათვლა" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "თუ ფაილები მხოლოდ ინტერვალებით განსხვავდება, მათი ტოლად ჩათთვლა.\n" "ეს აქტიურია მხოლოდ თუ სრული ანალიზია არჩეული." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "შერწმის ნაცვლად ახლის ასლი (სახიფათო)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "შიგნით ნუ ჩაიხედავტ, მხოლოდ აიღეთ ახალი ფაილი.\n" "(გამოიყენეთ ეს მარტო მაშინ თუ იცით რას აკეთებთ!)\n" "მაშინაა ეფექტური, როდესაც ორ დირექტორიას ადარებთ." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "სარეზერვო ასლის ფაილი (.orig)" #: optiondialog.cpp:1228 #, fuzzy #| msgid "" #| "When a file would be saved over an old file, then the old file\n" #| "will be renamed with a '.orig'-extension instead of being deleted." msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "როდესაც ფაილი ძველ ფაილზე უნდა იქნას შენახული, მაშინ ძველ ფაილს\n" "სახელი გადაერქმევა '.orig' გაფართოვებით იმის მაგივრად რომ წაიშალოს." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "რეგიონალური პარამეტრები" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "ენა (გადატვირთვაა საჭირო)" #: optiondialog.cpp:1445 #, fuzzy #| msgid "" #| "Choose the language of the GUI-strings or \"Auto\".\n" #| "For a change of language to take place, quit and restart KDiff3." msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "GUI-სტრიქონისთვის ენის შეცვლა ან \"ავტო\".\n" "ენის ცვლილება რომ გააქტიურდეს დახურეთ და გადატვირთეთ KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "ყველასთვის იგივე კოდირების გამოყენება:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "ამის ჩართვა სასუალებას გაძლევთ ყველა კოდირება შეცვალოთ მხოლოდ პირველის " "შეცვლით.\n" "გამორთეთ ეს თუ განსხვავებული ინდივიდუალურუი პარამეტრებია საჭირო." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "შენიშვნა: ლოკალური კოდირება არის" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "ფაილის კოდირება A-თვის:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "ფაილის კოდირება B-თვის:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "ფაილის კოდირება C-თვის:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "ფაილის კოდირება გამონატანის შერწყმისა და შენახვისთვის:" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "მონიშვნის ავტო ასლი" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "ფაილის კოდირება -პრეპროცესორის ფაილებისთვის:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "მარჯვნიდან მარცხნივ ენა" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "ზოგი ენა მარჯვნიდან მარცხნივ იკითხება.\n" "ეს პარამეტრი შეცვლის ხედს და რედაქტორს." #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "ოპერაცია" #: optiondialog.cpp:1549 #, fuzzy msgid "Integration Settings" msgstr "რეგიონალური პარამეტრები" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "შეუთავსებელი შრიფტი" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "საკუთარი თავის იმედათ გაგრძელება" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "სხვა შრიფტის ამორჩევა" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "ეს ყველა პარამეტრს საწყის მდგომარეობაზე აბრუნებს. არა მხოლოდ მიმდინარე " "თემისას." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "PreprocessorCmd: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" "შემდეგმა პარამეტრ(ებ)მა, რომლებიც აირჩიეთ, შეიძლება შეცვალოს მონაცემები:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "როგორც ჩანს ეს შერწყმისას არაა საჭირო.\n" "გსურთ ამ პარამეტრების გამორთვა თუ აქტიური პარამეტრებით გაგრძელება?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "პარამეტრი შერწყმისთვის არაა უსაფრთხო" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "შერწყმისას ამ პარამეტრების გამოყენება" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "სახიფათო პარამეტრების გამორთვა" #: pdiff.cpp:300 msgid "Loading A" msgstr "იტვირთება A" #: pdiff.cpp:304 msgid "Loading B" msgstr "იტვირთება B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linediff: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "იტვირთება C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linediff: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linediff: A <-> C" #: pdiff.cpp:534 #, fuzzy msgid "All input files contain the same text, but are not binary equal." msgstr "ყველა შეტანილი ფაილის შეიცავს ერთიდაიგივე ტექსტი." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "A და B ბინარულად ტოლია.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "ზოგი შეტანის ფაილი არ არის მხოლოდ ტექსტური ფაილი.\n" "გაითვალისწინეთ რომ KDiff3-შერწყმა არ გულისხმობს ბინარულ მონაცემებს.\n" "გააგრძელეთ საკუთარი თავის იმედათ." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "შეწყვეტა" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "ფაილთა გახსნა..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "ფაილის გახსნის შეცდომა" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "მონიშნული ფრაგმენტის მოჭრა..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "მონიშნულის გაცვლით ბიფერში განთავსება..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "გაცვლის ბუფერის შიგთავსის ჩასმა..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "შენახვა და გაგრძელება" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "შენახვის გარეშე გაგრძელება" #: pdiff.cpp:2018 msgid "Search complete." msgstr "ძიება დასრულდა." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "ძიება დასრულდა" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "დირექტორიის შექმნისას შეცდომა." #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not find our part!\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "ჩვენი ნაწილი ვერ მოიძებნა!\n" "ეს როგორც წესი დაყენების პრობლემების გამო ხდება. გთხოვთ წაიკითხოთ README-" "ფაილი წყაროს პაკეტში დამასტებითი ცნობებისთვის." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 კონფიგურაცია" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "Directory Merge" #~ msgstr "დირექტორიათა შერწყმა" #~ msgid "C&ontinue" #~ msgstr "&გაგრძელება" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "რუსუდან ცისკრელი" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "tsiskreli@gmail.com" #~ msgid "Enables/disables the toolbar" #~ msgstr "ხელსაწყოთა პანელს რთავს" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "A და B ბინარულად ტოლია.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "A და C ბინარულად ტოლია.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "A და C აქვთ ერთიდაიგივე ტექსტი. \n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "B და C ბინარულად ტოლია.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "B და C აქვთ ერთიდაიგივე ტექსტი. \n" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Diff & შერწყმა" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "დირექტორიათა შერწყმა" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "დირექტორიათა შერწყმა" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "დირექტორიების სინქრონიზაცია" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "შერწმის ნაცვლად ახლის ასლი (სახიფათო)" #~ msgid "List only deltas" #~ msgstr "მხოლოდ დელტების ჩამოთვლა" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "ფაილები და დირექტორიები ცვლილებების გარეშე სიაში არ აისახება." #, fuzzy #~ msgid "no selection" #~ msgstr "მონიშვნის ავტო ასლი" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "ხელით არჩევა" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "არა აქვს ეფექტი. განსაზღვრულ ხელსაწყოებთან თავსებადობისთვის." #~ msgid "For compatibility with certain tools." #~ msgstr "განსაზღვრულ ხელსაწყოებთან თავსებადობისთვის." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "ფერები რედაქტორში და Diff გამონატანში" kdiff3-0.9.97/po/kdiff3plugin.pot0000644000175100001440000000361411626145607016063 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2008-08-05 08:32+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" kdiff3-0.9.97/po/hu/0000755000175100001440000000000011626145654013364 5ustar joachimuserskdiff3-0.9.97/po/hu/kdiff3plugin.po0000644000175100001440000000623111626145607016311 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Laszlo Papp , 2010. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-02-04 02:00+0100\n" "Last-Translator: Laszlo Papp \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Összehasonlítás %1-vel" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Egyesítés %1-vel" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "'%1' mentése későbbre" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3 utas egyesítés az alappal" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Összehasonlítás ezzel ..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Lista kiürítése" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Összehasonlítás" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3 utas összehasonlítás" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "KDiff3 menü bővítmény névjegye ..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 Menü Bővítmény: Szerzői jog (C) 2008 Joachim Eibl\n" "KDiff3 honlap: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Az összefüggés menü kiegészítésének használata:\n" "Két kiválasztott fájl egyszerű összehasonlításáért válassza az " "\"Összehasonlítás\"-t.\n" "Ha a másik fájl valahol máshol található, \"Mentse el\" az első fájlt " "későbbre, és ez fog feltűnni az \"Összehasonlítás ezzel...\" almenüben. " "Aztán használja az \"Összehasonlítás a második fájllal.\n" "Egy 3 utas egyesítésért először, \"Mentse el\" az alap fájlt, aztán az ágat " "egyesítésre, és aztán \"3 utas egyesítés az alappal\" a másik elágazáson, " "amelyik célállomásként lesz használva.\n" "Ugyanazt alkalmazzák a könyvtárra is összehasonlítás és egyesítés céljából." #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "KDiff3 menü bővítmény névjegye ..." kdiff3-0.9.97/po/hu/CMakeLists.txt0000644000175100001440000000016311626145607016122 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(hu ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/hu/kdiff3.po0000644000175100001440000024312111626145607015073 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # Tamas Szanto , 2003. # msgid "" msgstr "" "Project-Id-Version: KDE 3.2\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2004-01-09 11:11+0100\n" "Last-Translator: Tamas Szanto \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "F&olytatás" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy #| msgid "File..." msgid "&File" msgstr "Fájl..." #: kreplacements/kreplacements.cpp:297 #, fuzzy #| msgid "Editor" msgid "&Edit" msgstr "Szerkesztő" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "Köny&vtár" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "Mozg&atás" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 #, fuzzy msgid "D&iffview" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Össze&olvasztás" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Ablak" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "A diff és az összeolvasztás beállításai" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy #| msgid "Abort" msgid "&About" msgstr "Félbeszakítás" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Összevonási művelet az aktuális elemmel" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Szinkronizálási művelet az aktuális elemmel" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "Művelet" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "Kilépés..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Delete A" msgid "Select All" msgstr "A törlése" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format #| msgid "Configure..." msgid "&Configure %1..." msgstr "Beállítás..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy #| msgid "Abort" msgid "About" msgstr "Félbeszakítás" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy #| msgid "Select Another Font" msgid "Select Font" msgstr "Válasszon egy másik betűtípust" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Változó szélességű betűket tartalmazó betűtípust választott.\n" "\n" "Ez a program nem kezeli helyesen a változó szélességű betűket,\n" "ezért különféle szerkesztési problémák léphetnek fel.\n" "\n" "Tovább szeretne lépni vagy inkább más betűtípust választ?" #: kreplacements/kreplacements.cpp:792 #, fuzzy #| msgid "Incompatible Font" msgid "Incompatible font." msgstr "Nem kompatibilis betűtípus" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Continue at Own Risk" msgid "Continue at my own risk" msgstr "Folytatás (kockázatos)" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Select Another Font" msgid "Select another font" msgstr "Válasszon egy másik betűtípust" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "KDiff3" msgid "KDiff3-Usage" msgstr "KDiff3" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Ignore" msgstr "A számok figyelmen kívül hagyása" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Editor" msgid "Exit" msgstr "Szerkesztő" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "A vágólapról" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Adatvesztési hiba:\n" "ha a jelenség többször is előfordul, kérjük jelentse be a hibát.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Súlyos belső hiba történt" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Linkek és normál fájlok vegyesen." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Link: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Méret. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Dátum és méret: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Nem sikerült ideiglenes másolatot készíteni a(z) %1 fájlról." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1 megnyitása nem sikerült." #: directorymergewindow.cpp:213 #, fuzzy msgid "Comparing file..." msgstr "A fájl mentése..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1 olvasása közben hiba történt" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Név" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Művelet" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Állapot" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Egy könyvtárösszeolvasztás még nem fejeződött be. Biztosan félbe szeretné " "szakítani a műveletet és újra be szeretné olvasni a könyvtár tartalmát?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Újraolvasás" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "A művelet folytatása" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Nem sikerült beolvasni ezeket a könyvtárakat:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Az \"A\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "A \"B\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "A \"C\" könyvtár (\"%1\") nem létezik vagy más típusú a bejegyzés.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Könyvtármegnyitási hiba" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "A célkönyvtár nem egyezhet meg sem az A, sem a B könyvtárral, ha három " "könyvtár lesz összeolvasztva.\n" "Továbblépés előtt ellenőrizze az értéket." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Figyelmeztetés - paraméter" #: directorymergewindow.cpp:574 #, fuzzy msgid "Scanning directories..." msgstr "A könyvtárak szinkronizálása" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Az A könyvtár beolvasása" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "A B könyvtár beolvasása" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "A C könyvtár beolvasása" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Néhány alkönyvtár beolvasása nem sikerült itt:" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Ellenőrizze az alkönyvtárak jogosultságait." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Kész." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "A könyvtárak összehasonlítási állapota" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Az alkönyvtárak száma:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "A megegyező fájlok száma:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Az eltérő fájlok száma:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "A kézi összeolvasztások száma:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Ez minden összeolvasztási műveletet érint." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Az összes összeolvasztási művelet megváltoztatása" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Feldolgozás " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Feladat." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A másolása B-be" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B másolása A-ba" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A törlése" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B törlése" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A és B törlése" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Beolvasztás A-ba" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Beolvasztás B-be" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Beolvasztás A és B-be" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Törlés (ha létezik)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Összeolvasztás" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Összeolvasztás (kézi)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Hiba: ütköző fájltípusok" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Hiba: a dátumok megegyeznek, de a fájlok nem." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Ez a művelet jelenleg nem lehetséges." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "A művelet nem lehetséges" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Ez nem normál körülmények között nem történhet meg: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Ha tudja, hogyan kell ezt a helyzetet reprodukálni, kérem értesítse a " "szerzőt." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programhiba" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Hiba történt másolás közben.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "Hiba." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Összeolvasztási hiba" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Hiba." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Kész." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Nincs elmentve." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" "Ismeretlen összeolvasztási művelet (normál körülmények között nem fordulhat " "elő)." #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Ismeretlen összeolvasztási művelet." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Az összeolvasztás előkészítése megtörtént.\n" "\n" "Kattintson a \"Kezdődjön\" gombra, ha elolvasta a leírást és tudja, mi fog " "történni.\n" "Kattintson a \"Szimuláció\" gombra, ha látni szeretné, mi fog történni.\n" "\n" "Ez a program még béta állapotú, ezért nincs garancia a hibátlan működésre. A " "fontos adatokról mindenképpen készítsen biztonsági másolatot!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Az összeolvasztás megkezdése" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Kezdődjön" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Szimuláció" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "A kijelölt elem típusa eltérő a könyvtárakban. Válassza ki, mit szeretne " "tenni." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "A két fájl utolsó módosítási dátuma megegyezik, de a fájlok tartalma nem. Mi " "történjen?" #: directorymergewindow.cpp:2123 #, fuzzy #| msgid "" #| "The highlighted item has a different type in the different directories. " #| "Select what to do." msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "A kijelölt elem típusa eltérő a könyvtárakban. Válassza ki, mit szeretne " "tenni." #: directorymergewindow.cpp:2174 #, fuzzy msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Ez a művelet most nem hajtható végre, mert folyamatban van egy " "könyvtárösszeolvasztás." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Hiba történt az utolsó lépsnél.\n" "Folytatni szeretné a műveletet a hiba ellenére vagy át szeretné ugrani a " "hibát okozó elemet?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Az összeolvasztás folytatása hiba esetén is" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Folytatás az utolsó elemmel" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Az elem átlépése" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Átlépve." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Folyamatban..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Az összeolvasztási művelet befejeződött." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Az összeolvasztás befejeződött" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "A szimulált összeolvasztás befejeződött: ellenőrizze, hogy elfogadhatók-e a " "javasolt műveletek." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Hiba történt. Kattintson az OK gombra részletes tájékoztatáshoz.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" "Hiba történt %1 törlése közben: nem sikerült létrehozni egy biztonsági " "másolatot." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "könyvtár (%1) törlése az alkönyvtárakkal együtt" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "törlés (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Hiba történt: a könyvtártörlés során, a könyvtár beolvasásakor, hiba történt." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Hiba: egy rmdir (%1) művelet nem sikerült." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Hiba történt: a törlési művelet nem sikerült." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "kézi összeolvasztás (%1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 #, fuzzy msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Megjegyzés: kézi összeolvasztás esetén a felhasználónak az F7-tel kell " "továbblépnie." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Hiba: egy másolás (%1 -> %2) nem sikerült. Nem sikerült törölni a már létező " "másolási célpontot." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Link másolása (%1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Hiba: egy link másolása nem sikerült. Távoli linkeket nem lehet használni." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Hiba történt: egy link másolása nem sikerült." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "másolás (%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Hiba történt átnevezés (%1 -> %2) közben: a célfájl nem törölhető." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "átnevezés (%1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Hiba történt: egy átnevezés nem sikerült." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Hiba történt a könyvtár (%1) létrehozása közben. A már létező fájl nem " "törölhető." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Könyvtár létrehozása (%1)" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Hiba történt egy könyvtár létrehozása közben." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Cél" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Könyvtár" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Típus" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Méret" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attribútum" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Utolsó módosítás" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Link-Cél" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy #| msgid "File..." msgid "File" msgstr "Fájl..." #: directorymergewindow.cpp:2726 msgid "not available" msgstr "nem áll rendelkezésre" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (cél):" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (alap):" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (cél):" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (cél):" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Cél: " #: directorymergewindow.cpp:2836 #, fuzzy msgid "Save Directory Merge State As..." msgstr "Könyvtárösszeolvasztás" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "A könyvtárösszeolvasztás kezdése/folytatása" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "A művelet végrehajtása az aktuális elemen" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "A kiválasztott fájl összehasonlítása" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Az aktuális fájl összeolvasztása" #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "Összeolvasztás" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Az alkönyvtárak összecsukása" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Az alkönyvtárak kibontása" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Az 'A' kiválasztása az összes elemhez" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "A 'B' kiválasztása az összes elemhez" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "A 'C' kiválasztása az összes elemhez" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Automatikus kiválasztás az összes elemnél" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Nincs művelet az összes elemre" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 #, fuzzy msgid "Show Different Files" msgstr "Az eltérő fájlok száma:" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 #, fuzzy msgid "Compare Explicitly Selected Files" msgstr "A kiválasztott fájl összehasonlítása" #: directorymergewindow.cpp:2986 #, fuzzy msgid "Merge Explicitly Selected Files" msgstr "A kiválasztott fájl összehasonlítása" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nem kell semmit tenni" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 #, fuzzy msgid "Delete A && B" msgstr "A és B törlése" #: directorymergewindow.cpp:3003 #, fuzzy msgid "Merge to A && B" msgstr "Beolvasztás A és B-be" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy #| msgid "KDiff3" msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "A vágólapról" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy #| msgid "Directory Comparison Status" msgid "Directory Equality-Coloring patch" msgstr "A könyvtárak összehasonlítási állapota" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy #| msgid "Merge Error" msgid "Sergey Zorin" msgstr "Összeolvasztási hiba" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "Nem kell semmit tenni" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "Összeolvasztás a bemenettel." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Az alapfájl explicit kijelölése. Kompatibilitási célokat szolgál." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" "A kimeneti fájl neve. Maga után vonja a -m opciót. Például: -o újfájl.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "A kimeneti fájl neve, még egyszer. Kompatibilitási célokat szolgál." #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Nem jelenjen meg grafikus felület, ha az összes ütközés automatikusan " "feloldható. (A -o fájlnév opcióval használható.)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" "Az ütközések automatikus feloldásának kikapcsolása. Kompatibilitási célokat " "szolgál." #: main.cpp:202 #, fuzzy msgid "Visible name replacement for input file 1 (base)." msgstr "" "A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." #: main.cpp:203 #, fuzzy msgid "Visible name replacement for input file 2." msgstr "" "A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." #: main.cpp:204 #, fuzzy msgid "Visible name replacement for input file 3." msgstr "" "A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." #: main.cpp:205 #, fuzzy msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "A megjelenített név cseréje. Minden bemenethez csak egyszer kell megadni." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "Az eltérő fájlok száma:" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" "a megnyitandó fájl (1) - ez lesz az alap, ha nincs megadva a --base opció" #: main.cpp:212 msgid "file2 to open" msgstr "a megnyitandó fájl (2)" #: main.cpp:213 msgid "file3 to open" msgstr "a megnyitandó fájl (3)" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, fuzzy, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "\n" "A fel nem oldott ütközések száma: " #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "A kimenet megváltozott.\n" "Ha továbblép, a módosítások elvesznek." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Az összes bemeneti fájl megegyezik (bináris módban)." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Az összes bemeneti fájl megegyezik (szöveges módban)." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, fuzzy, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "B és C binárisan megegyezik.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "A és B szövege megegyezik.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Az ütközések száma: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Az automatikusan feloldott ütközések száma: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "A fel nem oldott ütközések száma: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Ütközések" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 #, fuzzy msgid "" msgstr "<Összeolvasztási ütközés>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<Összeolvasztási ütközés>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Még nincs feloldva az összes ütközés.\n" "A fájl nem lesz elmentve.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Megmaradt ütközések" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Fájlmentési hiba" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Hiba történt írás közben." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Módosítva]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy #| msgid "Conflicts" msgid "Conflict" msgstr "Ütközések" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Nem található összehasonlítható fájlpár." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Biztonsági mentés készítése közben egy régebbi biztonsági mentést nem " "sikerült törölni. \n" "Fájlnév: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Biztonsági mentés készítése közben egy átnevezés nem sikerült. \n" "A fájlok nevei: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "A fájlállapot lekérdezése: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Fájl beolvasása: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Fájl írása: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Elfogyott a memória" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Könyvtár létrehozása: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Könyvtár törlése: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Fájl törlése: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Szimbolikus link létrehozása: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Fájl átnevezése: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Fájl másolása: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Hiba történt fájlmásolás közben: nem sikerült olvasásra megnyitni egy fájlt. " "A fájl neve: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Hiba történt fájlmásolás közben: nem sikerült írásra megnyitni egy fájlt. A " "fájl neve: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Hiba történt fájlmásolás közben: egy olvasási művelet nem sikerült. A fájl " "neve: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Hiba történt fájlmásolás közben: egy írási művelet nem sikerült. A fájl " "neve: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Könyvtár beolvasása: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Könyvtár kilistázása: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy #| msgid "Link: " msgid "Line" msgstr "Link: " #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "nem áll rendelkezésre" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 #, fuzzy msgid "Top line" msgstr "Felső sor - %1" #: difftextwindow.cpp:1769 msgid "End" msgstr "Vég" #: kdiff3.cpp:169 #, fuzzy msgid "Current Configuration:" msgstr "Szinkronizálási művelet az aktuális elemmel" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "Fájlmegnyitási hiba" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "Az --auto opciót használná a program, de nincs megadva a kimeneti fájl." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" "Az --auto opció figyelmen kívül lesz hagyva könyvtárak összehasonlításánál." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "A mentés nem sikerült." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Nem sikerült megnyitni a következő fájlokat:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fájlmegnyitási hiba" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Dokumentumok megnyitása összehasonlításhoz..." #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "Kész." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Az összeolvasztás eredményének elmentése. Minden ütközést fel kell oldani." #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Az aktuális dokumentum mentése mint..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Kilépés az alkalmazásból" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Kivágja a kijelölt részt és a vágólapra helyezi" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kimásolja a kijelölt részt és a vágólapra helyezi" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Beilleszti a vágólap tartalmát az aktuális pozíciónál" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Sztring keresése" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "A sztring keresése újból" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Az állapotsor ki-be kapcsolása" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "A KDiff3 beállításai..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Ugrás az aktuális deltára..." #: kdiff3.cpp:532 #, fuzzy #| msgid "Go to Current Delta" msgid "" "Current\n" "Delta" msgstr "Ugrás az aktuális deltára..." #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Ugrás az első deltára" #: kdiff3.cpp:534 #, fuzzy #| msgid "Go to First Delta" msgid "" "First\n" "Delta" msgstr "Ugrás az első deltára" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Ugrás az utolsó deltára" #: kdiff3.cpp:536 #, fuzzy #| msgid "Go to Last Delta" msgid "" "Last\n" "Delta" msgstr "Ugrás az utolsó deltára" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Ugrás az előző deltára" #: kdiff3.cpp:540 #, fuzzy #| msgid "Go to Previous Delta" msgid "" "Prev\n" "Delta" msgstr "Ugrás az előző deltára" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Ugrás a következő deltára" #: kdiff3.cpp:542 #, fuzzy #| msgid "Go to Next Delta" msgid "" "Next\n" "Delta" msgstr "Ugrás a következő deltára" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Ugrás az előző ütközésre" #: kdiff3.cpp:544 #, fuzzy #| msgid "Conflicts" msgid "" "Prev\n" "Conflict" msgstr "Ütközések" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Ugrás a következő ütközésre" #: kdiff3.cpp:546 #, fuzzy #| msgid "Go to Next Conflict" msgid "" "Next\n" "Conflict" msgstr "Ugrás a következő ütközésre" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Ugrás az előző feloldatlan ütközésre" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Ugrás a következő feloldatlan ütközésre" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Sor(ok) kiválasztása A-ból" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Sor(ok) kiválasztása B-ből" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Sor(ok) kiválasztása C-ből" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "A forrás kiválasztása után automatikus ugrás a következő feloldatlan " "ütközésre" #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "A szóközök és tabulátorok megjelenítése eltéréseknél" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Az üres karakterek megjelenítése" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "A sorszámok megjelenítése" #: kdiff3.cpp:560 #, fuzzy #| msgid "Show Line Numbers" msgid "" "Line\n" "Numbers" msgstr "A sorszámok megjelenítése" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "A kiválasztása mindenhol" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "B kiválasztása mindenhol" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "C kiválasztása mindenhol" #: kdiff3.cpp:564 #, fuzzy msgid "Choose A for All Unsolved Conflicts" msgstr "A kiválasztása az összes feloldatlan ütközéshez" #: kdiff3.cpp:565 #, fuzzy msgid "Choose B for All Unsolved Conflicts" msgstr "B kiválasztása az összes feloldatlan ütközéshez" #: kdiff3.cpp:566 #, fuzzy msgid "Choose C for All Unsolved Conflicts" msgstr "C kiválasztása az összes feloldatlan ütközéshez" #: kdiff3.cpp:567 #, fuzzy msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "A kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez" #: kdiff3.cpp:568 #, fuzzy msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "B kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez" #: kdiff3.cpp:569 #, fuzzy msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "C kiválasztása az összes feloldatlan elválasztókarakter-ütközéshez" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Az egyszerű ütközések automatikus feloldása" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Delták beállítása az ütközésekhez" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 #, fuzzy msgid "Automatically Solve History Conflicts" msgstr "Az egyszerű ütközések automatikus feloldása" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 #, fuzzy msgid "Join Selected Diffs" msgstr "A kiválasztott fájl összehasonlítása" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Az A ablak megjelenítése" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "A B ablak megjelenítése" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "A C ablak megjelenítése" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fókusz a következő ablakra" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fókusz az előző ablakra" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "A megosztás irányának megváltoztatása" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Osztott nézet (könyvtár és szöveg)" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Váltás a könyvtár- és szöveges nézet között" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Az összeolvasztás eredménye még nincs elmentve." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Mentés és kilépés" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Kilépés mentés nélkül" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Az összeolvasztás eredményét nem sikerült elmenteni." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Éppen folyamatban van egy könyvtárösszeolvasztás. Biztosan félbe szeretné " "szakítani a műveletet?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "A fájl mentése..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "A fájl elmentése más néven..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "Az összeolvasztási művelet befejeződött." #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "Kilépés..." #: kdiff3.cpp:956 #, fuzzy #| msgid "Select Another Font" msgid "Selection" msgstr "Válasszon egy másik betűtípust" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "Az összeolvasztási művelet befejeződött." #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "Az összeolvasztási művelet befejeződött." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Kilépés..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Az eszköztár átkapcsolása..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Az állapotsor átkapcsolása..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (alap):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fájl..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Könyvtár..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (opcionális):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Kimenet (opcionális):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Beállítás..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 #, fuzzy msgid "Search text:" msgstr "A keresett szöveg:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Nagybetűérzékeny" #: smalldialogs.cpp:372 msgid "Search A" msgstr "A keresése" #: smalldialogs.cpp:377 msgid "Search B" msgstr "B keresése" #: smalldialogs.cpp:382 msgid "Search C" msgstr "C keresése" #: smalldialogs.cpp:387 msgid "Search output" msgstr "A keresés kimenete" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Keresés" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 #, fuzzy msgid "Match failed." msgstr "A mentés nem sikerült." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 #, fuzzy msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Akkor kell esetleg bejelölni, ha a nem ASCII karakterek helytelenül jelennek " "meg." #: optiondialog.cpp:465 #, fuzzy #| msgid "Configure..." msgid "Configure" msgstr "Beállítás..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "A szerkesztő és a diff-kimenet betűtípusa" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Dőlt betűk az eltéréseknél" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Ennek hatására a program az eltérések megjelenítéséhez dőlt betűket fog " "használni.\n" "Ha a betűtípus nem tartalmaz dőlt betűket, akkor az opciónak nincs hatása." #: optiondialog.cpp:568 msgid "Color" msgstr "Szín" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Előtérszín:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Háttérszín:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "A diff szöveg háttérszíne:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "A szín:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "B szín:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "C szín:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Ütközési szín:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "A jelenlegi tartomány háttérszíne:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "A jelenlegi tartomány diff-jének háttérszíne:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 #, fuzzy msgid "Directory Comparison View:" msgstr "A könyvtárak összehasonlítási állapota" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Szerkesztő" #: optiondialog.cpp:718 #, fuzzy msgid "Editor Behavior" msgstr "A szerkesztő működési jellemzői" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "A Tab billentyű szóközöket szúrjon be" #: optiondialog.cpp:735 #, fuzzy #| msgid "" #| "On: Pressing tab generates the appropriate number of spaces.\n" #| "Off: A Tab-character will be inserted." msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Ha be van jelölve: a Tab lenyomásakor a megadott számú szóköz kerül a " "szövegbe.\n" "Ha nincs bejelölve: a Tab lenyomásakor Tab karakter kerül a szövegbe.." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tabulátorméret:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "A behúzás megőrzése" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" "Ha be van jelölve: új sor kezdésekor az előző sor behúzását használja a " "program.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Ha be van jelölve: a kijelölt adatok másolata mindig automatikusan a " "vágólapra kerül.\n" "Ha nincs bejelölve: a másolás csak parancsra történik meg (pl. a Ctrl+C-vel)." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Ablak" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "KDiff3" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "A diff és az összeolvasztás beállításai" #: optiondialog.cpp:809 #, fuzzy msgid "Treat as white space." msgstr "A C/C++-megjegyzések üres helynek tekintése." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "A számok figyelmen kívül hagyása" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "A számjegyek figyelmen kívül hagyása sorillesztésnél. (Hasonló 'Az üres " "karakterek figyelmen kívül hagyása' opcióhoz.)\n" "Néha szükség lehet erre az opcióra számadatokat tartalmazó fájlok " "összehasonlításánál." #: optiondialog.cpp:819 #, fuzzy msgid "Ignore C/C++ comments" msgstr "A C/C++-megjegyzések figyelmen kívül hagyása" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "A C/C++-megjegyzések üres helynek tekintése." #: optiondialog.cpp:825 #, fuzzy msgid "Ignore case" msgstr "A számok figyelmen kívül hagyása" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Előfeldolgozási parancs:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "A felhasználó által megadott előfeldolgozás használata (a részletek a " "dokumentációban találhatók)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Sorösszehasonlítási előparancs:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Ezt a parancsot sorillesztésnél használja a program.\n" "(A részletek a dokumentációban találhatók.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Alaposabb próbálkozás (lassabb)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Bekapcsolja a --minimal opciót a külső diff programnál.\n" "Hatására a sebesség jelentősen lecsökkenhet nagy fájlok esetén." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "A diff és az összeolvasztás beállításai" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Automatikus léptetési késleltetés (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Automatikus léptetés esetén a megadott ideig a kijelölt rész látszik,\n" "utána a program automatikusan a következő ütközésre lép. A megengedett " "értéktartomány: 0-2000 ms" #: optiondialog.cpp:895 #, fuzzy #| msgid "Show Window A" msgid "Show info dialogs" msgstr "Az A ablak megjelenítése" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):" #: optiondialog.cpp:904 optiondialog.cpp:917 #, fuzzy msgid "Manual Choice" msgstr "Kézi választás" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Lehetővé teszi az összeolvasztási algoritmusnak, hogy automatikusan " "kiválassza a megfelelő bemenetet, ha az üres helyek megváltozását kell nézni." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "Az alkönyvtárak száma:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "&Directory" msgid "Directory" msgstr "Köny&vtár" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Az alkönyvtárakban is" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" "Itt lehet megadni, hogy az összehasonlítás az alkönyvtárak tartalmára is " "kiterjedjen-e." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Fájlminták:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Az ellenőrzendő fájlok mintája. \n" "Használható illesztési karakterek: '*' és '?'\n" "Több minta is megadható pontosvesszővel elválasztva." #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Kizáró fájlminták:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "A műveletből kizárni kívánt fájlok mintája. \n" "Használható illesztési karakterek: '*' és '?'\n" "Több minta is megadható pontosvesszővel elválasztva." #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Kizáró könyvtárminták:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "A műveletből kizárni kívánt könyvtárak mintája. \n" "Használható illesztési karakterek: '*' és '?'\n" "Több minta is megadható pontosvesszővel elválasztva." #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "A .cvsignore használata" #: optiondialog.cpp:1115 #, fuzzy #| msgid "" #| "Extends the antipattern to anything that would be ignored by CVS.\n" #| "Via local \".cvsignore\"-files this can be directory specific." msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "A kizárási mintát kiterjeszti a CVS által figyelmen kívül hagyott fájlokra.\n" "A \".cvsignore\" fájlok segítségével ez minden könyvtárban külön megadható." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "A keresések a rejtett fájlokra és könyvtárakra is terjedjenek ki" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "A keresések terjedjenek ki a rejtett fájlokra és könyvtárakra is." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" "A keresések a ponttal kezdődő nevű fájlokra és könyvtárakra is terjedjenek " "ki." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "A fájllinkek követése" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Be: összehasonlítás a link által mutatott fájllal.\n" "Ki: a linkek összehasonlítása." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "A linkek követése" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Ha be van jelölve: a linkek által mutatott könyvtárak lesznek " "összehasonlítva.\n" "Ha nincs bejelölve: maguk a linkek lesznek összehasonlítva." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 #, fuzzy msgid "Binary comparison" msgstr "A könyvtárak összehasonlítási állapota" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 #, fuzzy msgid "Trust the size and modification date (unsafe)" msgstr "A módosítási dátum valósnak feltételezése (nem megbízható!)" #: optiondialog.cpp:1179 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Két fájlt egyezőnek feltételez majd a program, ha a hosszuk és az utolsó " "módosítás dátuma megegyezik.\n" "Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség." #: optiondialog.cpp:1184 #, fuzzy msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "A módosítási dátum valósnak feltételezése (nem megbízható!)" #: optiondialog.cpp:1185 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Két fájlt egyezőnek feltételez majd a program, ha a hosszuk és az utolsó " "módosítás dátuma megegyezik.\n" "Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "A méret valósnak feltételezése (nem megbízható!)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Két fájlt egyezőnek feltételez majd a program, ha a hosszuk megegyezik.\n" "Nagy könyvtárak vagy lassú hálózat esetén lehet erre szükség, ha letöltéskor " "a módosítási dátum megváltozik." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "A könyvtárak szinkronizálása" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "A program másolja át a fájlokat mindkét könyvtárba - ilyenkor\n" "összehasonlítás után a könyvtárak meg fognak egyezni.\n" "Csak akkor működik, ha az összehasonlításnál nincs megadva a cél." #: optiondialog.cpp:1208 #, fuzzy msgid "White space differences considered equal" msgstr "Üres karakterek 2 fájl összeolvasztásánál (alapértelmezés):" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Az újabb másolása összeolvasztás helyett (nem megbízható!)." #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Nem kell a fájlok tartalmával törődni, csak az újabb fájlt kell venni.\n" "Csak akkor használja, ha tudja, milyen következményekkel jár ez a művelet!\n" "Az opciónak csak két könyvtár összehasonlításakor van hatása." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Biztonsági mentések (.orig)" #: optiondialog.cpp:1228 #, fuzzy #| msgid "" #| "When a file would be saved over an old file, then the old file\n" #| "will be renamed with a '.orig'-extension instead of being deleted." msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Mielőtt a program egy régebbi fájlt felülírna az újabbal, a régi fájl\n" "legyen átnevezve '.orig' kiterjesztéssel (törlés helyett)." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 #, fuzzy msgid "Note: Local Encoding is " msgstr "A helyi kódolás használata" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "Művelet" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Nem kompatibilis betűtípus" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Folytatás (kockázatos)" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Válasszon egy másik betűtípust" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Ezzel alapállapotba hozható az összes beállítás (nem csak az aktuális témáé)." #: pdiff.cpp:260 #, fuzzy msgid "PreprocessorCmd: " msgstr "Előfeldolgozási parancs:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "A betöltése" #: pdiff.cpp:304 msgid "Loading B" msgstr "B betöltése" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Sordiff: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "C betöltése" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linediff: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linediff: A <-> C" #: pdiff.cpp:534 #, fuzzy msgid "All input files contain the same text, but are not binary equal." msgstr "Az összes bemeneti fájl megegyezik (szöveges módban)." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "A és B fájl binárisan megegyezik.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Néhány bemeneti fáj bináris fájlnak tűnik.\n" "A KDiff3-féle összeolvasztás szöveges fájlok kezelésére való.\n" "Csak akkor lépjen tovább, ha valóban ezt szeretne." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Félbeszakítás" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Fájlok megnyitása..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fájlmegnyitási hiba" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "A kijelölt adatok kivágása..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "A kijelölt adatok másolása a vágólapra..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "A vágólap tartalmának beillesztése..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Mentés és folytatás" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Folytatás mentés nélkül" #: pdiff.cpp:2018 msgid "Search complete." msgstr "A keresés befejeződött." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "A keresés befejeződött" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "Hiba történt egy könyvtár létrehozása közben." #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not find our part!\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "A keresett komponens nem található.\n" "Ez a hiba valószínűleg valamilyen telepítési probléma következménye. További " "információ a forráscsomagban található README fájlban található." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "A KDiff3 beállításai" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "Directory Merge" #~ msgstr "Könyvtárösszeolvasztás" #~ msgid "C&ontinue" #~ msgstr "F&olytatás" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Szántó Tamás" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "tszanto@mol.hu" #~ msgid "Enables/disables the toolbar" #~ msgstr "Az eszköztár ki-be kapcsolása" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "A és B fájl binárisan megegyezik.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "A és C fájl binárisan megegyezik.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "A és C szövege megegyezik. \n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "B és C binárisan megegyezik.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "B és C szövege megegyezik.\n" #~ msgid "Preserve carriage return" #~ msgstr "A CR (kocsivissza) karakterek megőrzése" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "A kocsivissza ('\\r') karakterek megjelenítése.\n" #~ "Segít a különféle operációs rendszerekben megváltoztatott szövegek " #~ "eltéréseinek kezelésénél." #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Diff és összeolvasztás" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "Könyvtárösszeolvasztás" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "Könyvtárösszeolvasztás" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "A könyvtárak szinkronizálása" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "Az újabb másolása összeolvasztás helyett (nem megbízható!)." #~ msgid "List only deltas" #~ msgstr "Csak az eltérések jelenjenek meg" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "A listában nem jelennek meg a nem módosult fájlok és könyvtárak." #, fuzzy #~ msgid "no selection" #~ msgstr "A kijelölt adatok automatikus kimásolása a vágólapra" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "Kézi választás" #, fuzzy #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "Néhány eszközzel való kompatibilitásért." #~ msgid "For compatibility with certain tools." #~ msgstr "Néhány eszközzel való kompatibilitásért." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "A szerkesztő és a diff-kimenet színei" #~ msgid "Text Diff and Merge Tool" #~ msgstr "Szöveges eszköz diff készítéséhez és összeolvasztáshoz" #~ msgid "" #~ "\n" #~ "\n" #~ "File not saved." #~ msgstr "" #~ "\n" #~ "\n" #~ "A fájl nem lett elmentve." #~ msgid "Out of memory while preparing to save." #~ msgstr "A mentés előkészítése közben elfogyott a memória." #~ msgid "Delete (If Exists)" #~ msgstr "Törlés (ha létezik)" #~ msgid "Delete A and B" #~ msgstr "A és B törlése" #~ msgid "Merge to A and B" #~ msgstr "Beolvasztás A és B-be" #, fuzzy #~ msgid "Error writing temporary file: %1" #~ msgstr "Fájl írása: %1" #~ msgid "Convert to upper case" #~ msgstr "Konvertálás nagybetűkre" #~ msgid "" #~ "Turn all lower case characters to upper case on reading. (e.g.: 'a'->'A')" #~ msgstr "A kisbetűk nagybetűkké alakítása olvasáskor (pl. 'a' -> 'A')" #, fuzzy #~ msgid "Convert to upper case\n" #~ msgstr "Konvertálás nagybetűkre" #~ msgid "" #~ "Running the external diff failed.\n" #~ "Check if the diff works, if the program can write in the temp folder or " #~ "if the disk is full.\n" #~ "The external diff option will be disabled now and the internal diff will " #~ "be used." #~ msgstr "" #~ "Nem sikerült futtatni a külső diff programot.\n" #~ "Ellenőrizze, hogy a program használható-e, tud-e írni az ideiglenes " #~ "könyvtárba és van-e elég szabad hely a lemezen.\n" #~ "A külső diff program le lesz tiltva, helyette a beépített diff program " #~ "lesz felhasználva." kdiff3-0.9.97/po/uk/0000755000175100001440000000000011626145654013367 5ustar joachimuserskdiff3-0.9.97/po/uk/kdiff3plugin.po0000644000175100001440000000732111626145606016314 0ustar joachimusers# translation of kdiff3plugin.po to Ukrainian # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Yuri Chornoivan , 2008, 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-02 09:55+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Порівняти з %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Об’єднати з %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Зберегти «%1» на потім" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-рівневе об’єднання за основою" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Порівняти з..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Очистити список" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Порівняти" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3-рівневе порівняння" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Про додаток меню KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Додаток меню KDiff3: © Joachim Eibl, 2008\n" "Домашня сторінка KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "За допомогою додатка контекстного меню:\n" "Для простого порівняння двох вибраних файлів виберіть пункт «Порівняти».\n" "Якщо інший файл у якомусь іншому місці, «Збережіть» перший файл. У цьому " "разі він з’явиться у підменю «Порівняти з...». Потім скористайтеся пунктом " "«Порівняти з» для другого файла.\n" "Для 3-рівневого об’єднання спочатку «Збережіть» основний файл, потім варіант " "для об’єднання і оберіть «3-рівневе об’єднання за основою» на іншому " "варіанті файла, який буде використано як файл призначення об’єднання.\n" "Те саме стосується і порівняння з об’єднанням каталогів." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Про додаток меню KDiff3" kdiff3-0.9.97/po/uk/CMakeLists.txt0000644000175100001440000000016311626145605016123 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(uk ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/uk/kdiff3fileitemactionplugin.po0000644000175100001440000000746411626145606021241 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Yuri Chornoivan , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 07:57+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3…" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Порівняти з %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Об’єднати з %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Зберегти «%1» на потім" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "3-рівневе об’єднання за основою" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Порівняти з…" #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Спорожнити список" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Порівняти" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "3-рівневе порівняння" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Про додаток меню KDiff3…" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Додаток дій з пунктами файлів KDiff3: ©Joachim Eibl, 2011\n" "Домашня сторінка KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "За допомогою додатка контекстного меню:\n" "Для простого порівняння двох вибраних файлів виберіть пункт «Порівняти».\n" "Якщо інший файл у якомусь іншому місці, «Збережіть» перший файл. У цьому " "разі він з’явиться у підменю «Порівняти з…». Потім скористайтеся пунктом " "«Порівняти з» для другого файла.\n" "Для 3-рівневого об’єднання спочатку «Збережіть» основний файл, потім варіант " "для об’єднання і оберіть «3-рівневе об’єднання за основою» на іншому " "варіанті файла, який буде використано як файл призначення об’єднання.\n" "Те саме стосується і порівняння з об’єднанням каталогів." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Про додаток дій з пунктами файлів KDiff3" kdiff3-0.9.97/po/uk/kdiff3.po0000644000175100001440000031066711626145606015107 0ustar joachimusers# translation of kdiff3.po to Ukrainian # Translation of kdiff3.po to Ukrainian # # Ivan Petrouchtchak , 2006, 2008. # Yuri Chornoivan , 2008, 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-20 19:47+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Продовжити" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Скасувати" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Вийти" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Гаразд" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Довідка" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Типові значення" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Файл" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "З&міни" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Каталог" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "П&ересування" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iffview" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Об'єднання" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Вікно" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "П&араметри" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Довідка" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Інформація" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "А&втор" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Подяка" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Операція об’єднання для поточного елемента" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Операція синхронізації для поточного елемента" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Відкрити" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Зберегти" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Зберегти як..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Друк..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Вирізати" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Копіювати" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Вставити" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Вибрати все" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Показати пенал" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Показати рядок &стану" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Налаштувати %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Про" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Знайти" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Знайти далі" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Вибрати шрифт" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Ви обрали шрифт зі змінною шириною символів.\n" "\n" "Оскільки ця програма може показувати такі шрифти\n" "некоректно, у вас можуть бути проблеми з редагуванням.\n" "\n" "Бажаєте продовжити, чи оберете інший шрифт?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Несумісний шрифт." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Продовжувати, я все контролюю" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Вибрати інший шрифт" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Докладнішу документацію можна переглянути у меню довідки або у підтеці doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Використання Diff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ігнорувати" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Вийти" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Помилка запису даних кишені у тимчасовий файл." #: diff.cpp:255 msgid "From Clipboard" msgstr "З буфера обміну даними" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Після завершальних лапок мав бути пробіл." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Невідповідність лапок." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Неочікувані лапки у аргументі." #: diff.cpp:503 msgid "No program specified." msgstr "Не вказано програму." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Попередня обробка зазнала невдачі. Перевірте цю команду:\n" "\n" " %1\n" "\n" "Зараз команду попередньої обробки буде вимкнено." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Команда попередньої обробки відповідних рядків, скоріше за все, зазнала " "невдачі. Перевірте цю команду.\n" "\n" " %1\n" "\n" "Команда попередньої обробки відповідних рядків зараз буде вимкнено." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Помилка, пов’язана з втратою даних:\n" "Якщо цю помилку можна відтворити, зверніться до автора програми.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Критична внутрішня помилка" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Суміш посилань і звичайних файлів." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Посилання: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Розмір. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Дата і розмір: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Помилка створення тимчасової копії %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Помилка відкриття %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Порівняння файла..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Помилка читання з %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Назва" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Дія" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Стан" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Не розв'язано" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Розв'язано" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Не-білий" #: directorymergewindow.cpp:359 msgid "White" msgstr "Білий" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Зараз ви виконуєте об’єднання каталогів. Ви впевнені, що бажаєте перервати " "об’єднання і пересканувати каталог?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Попередження" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Пересканувати" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Продовжити об'єднання" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Помилка відкриття каталогів:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Каталог А «%1» не існує або це не каталог.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Каталог В «%1» не існує або це не каталог.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Каталог С «%1» не існує або це не каталог.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Помилка відкриття каталогу" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Каталог призначення повинен відрізнятися від A або B, якщо об’єднуються " "ієрархічні каталоги.\n" "Перевірте ще раз перш ніж продовжувати." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Попередження про параметри" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Сканування каталогів..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Читання каталогу A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Читання каталогу B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Читання каталогу C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Деякі підтеки не придатні для читання у" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Перевірте права доступу до підкаталогів." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Готово." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Стан порівняння каталогів" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Кількість підкаталогів:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Кількість однакових файлів:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Кількість різних файлів:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Кількість об’єднань вручну:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Це торкнеться всіх операцій об’єднання." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Зміна всіх операцій об’єднання" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Обробка " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Реалізувати." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Копіювати A до B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Копіювати B до A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Вилучити A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Вилучити B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Вилучити A і B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Об’єднати у A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Об’єднати у B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Об’єднати у A і B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Вилучити (якщо існує)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Об'єднати" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Об’єднати (вручну)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Помилка: Конфлікт типів файлів" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Помилка: змінено і вилучено" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Помилка: Дати однакові, а файли відрізняються." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Зараз ця операція неможлива." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Операція неможлива" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Цього не мало статися: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Якщо вам відомо яким чином відтворити помилку, будь ласка, повідомте про неї " "авторів програми." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Помилка програми" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Під час копіювання сталася помилка.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Помилка" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Помилка об’єднання" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Помилка." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Виконано." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Не збережено." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Невідома операція об’єднання. (Цього не мало статися!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Невідома операція об’єднання." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Зараз розпочнеться об’єднання.\n" "\n" "Виберіть «Зробити це», якщо ви прочитали настанови і знаєте, що саме " "робите.\n" "Виберіть «Імітувати це», щоб побачити результати дії.\n" "\n" "Зауважте, що ця програма знаходиться у стані тестування і розробники НЕ " "МОЖУТЬ ГАРАНТУВАТИ нічого! Зробіть резервну копію важливих даних!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Запуск об’єднання" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Зробити" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Симулювати" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Підсвічений елемент має відмінний тип у різних каталогах. Виберіть потрібну " "дію." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "Дати змін файлів однакові, але файли — різні. Виберіть дію." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Підсвічений елемент було змінено у одному з каталогів і вилучено у іншому. " "Оберіть належну дію." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "Ця дія зараз неможлива, оскільки виконується об’єднання каталогів." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "На останньому кроці сталася помилка.\n" "Бажаєте продовжити з елемента, що викликав помилку чи бажаєте пропустити цей " "елемент?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Продовжити об’єднання після помилки" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Продовжити з останнього елемента" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Пропустити елемент" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Пропущено." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Виконання..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Операцію об’єднання завершено." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Об’єднання завершено" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Імітацію об’єднання завершено: перевірте, чи згодні ви з запропонованими " "операціями." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "Сталася помилка. Натисніть кнопку «Гаразд», щоб побачити докладнішу " "інформацію.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Помилка: під час вилучення %1: невдала спроба створення резерву." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "рекурсивно вилучити каталог( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "delete( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Помилка: невдача під час спроби виконання дії delete для теки на етапі " "читання теки." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Помилка: невдала спроба виконати rmdir( %1 )." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Помилка: дія вилучення зазнала невдачі." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "manual merge( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Зауваження: Після завершення об’єднання вручу користувач може " "продовжити роботу натисканням F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Помилка: невдала спроба copy( %1 -> %2 ). Неможливо вилучити існуючий файл " "призначення." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Помилка: невдала спроба copyLink: віддалені посилання ще не підтримуються." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Помилка: copyLink зазнала невдачі." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copy( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Помилка під час rename( %1 -> %2 ): Не вдалося вилучити існуюче призначення." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rename( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Помилка: Перейменування зазнало невдачі." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Помилка під час виконання makeDir %1. Не вдалося вилучити існуючий файл." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Помилка створення каталогу." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Призн." #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Каталог" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Тип" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Розмір" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Атриб." #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Час останньої зміни" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Призначення посилання" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Файл" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "не доступне" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Призн.): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Основа): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Призн.): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Призн.): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Призн.:" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Зберегти режим об’єднання каталогів як..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Почати/Продовжити об’єднання каталогів" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Виконати операцію для поточного елемента" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Порівняти вибраний файл" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Об’єднати поточний файл" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Об’єднати\n" "файл" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Згорнути всі підтеки" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Розгорнути всі підтеки" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Вибрати A для списку всіх елементів" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Вибрати B для списку всіх елементів" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Вибрати C для списку всіх елементів" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Операція автовибору для всіх елементів" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Нічого не робити з усіма елементами" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Показувати однакові файли" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Однакові\n" "файли" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Показувати різні файли" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Показувати файли лише у A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Файли\n" "лише у A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Показувати файли лише у B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Файли\n" "лише у B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Показувати файли лише у C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Файли\n" "лише у C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Порівняти явно вибрані файли" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Об’єднати явно вибрані файли" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Нічого не робити" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Вилучити A і B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Об’єднати у A і B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ігнорується (Визначається користувачем)." #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Інструмент для порівняння і злиття файлів і тек" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Виправлення вад, супровідник пакунка для Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Встановлювач для Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-довідка" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Латка для буфера" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-довідка" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Клас CvsIgnoreList з Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Клас StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Латка рівності каталогів-розфарбування" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Виправлення повільного запуску у Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Розширення Diff для Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Інтенсивне тестування, використання і інформація про його результати" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Підтримка Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Портування до KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Портування на OS/2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Велике спасибі всім, хто повідомляв про вади і пропонував ідеї!" #: main.cpp:196 msgid "Merge the input." msgstr "Об'єднати вивід." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Явно вказаний файл-основа. Для сумісності з деякими інструментами." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Файл виводу. У разі наявності -m. Наприклад: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Файл виводу, ще раз. (Для сумісності з деякими інструментами.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Без графічного інтерфейсу, якщо всі конфлікти розв’язуються автоматично. " "(Потрібно: -o файл)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Не розв’язувати конфлікти автоматично. (Для сумісності...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Заміна видимої назви для вхідного файла 1 (основи)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Заміна видимої назви для вхідного файла 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Заміна видимої назви для вхідного файла 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Альтернативна заміна видимої назви. Вкажіть один раз для кожного набору " "вхідних даних." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Перевизначити параметр налаштування. Скористайтеся один раз для кожного " "параметра. Наприклад: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Показати список параметрів налаштування і поточні значення." #: main.cpp:208 msgid "Use a different config file." msgstr "Використовувати інший файл налаштувань.." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "файл1 для відкриття (основний, якщо не вказано інший за --base)" #: main.cpp:212 msgid "file2 to open" msgstr "файл2 для відкриття" #: main.cpp:213 msgid "file3 to open" msgstr "файл3 для відкриття" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Кількість ще нерозв’язаних конфліктів: %1 (з яких %2 пробіли)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Вивід було змінено.\n" "Якщо ви продовжите, зміни буде втрачено." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Всі вхідні файли однакові." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Всі вхідні файли містять однаковий текст." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Файли %1 і %2 двійково однакові.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Текст файлів %1 і %2 однаковий.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Всього конфліктів: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "К-ть автоматично розв’язаних конфліктів: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "К-ть нерозв’язаних конфліктів: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Конфлікти" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<Немає рядка джерела>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<Конфлікт об’єднання (Лише пробіл)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<Конфлікт об’єднання>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Розв’язано не всі конфлікти.\n" "Файл не збережено.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Залишилось конфліктів" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Виник конфлікт, пов’язаний з різними стилями завершення рядків. Будь ласка, " "оберіть потрібний стиль вручну.\n" "Файл не було збережено.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Помилка створення резервної копії. Файл не збережено." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Помилка збереження файла" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Помилка при записуванні." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Вивід" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Змінено]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Кодування для збереження" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Стиль кінців рядка:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Конфлікт" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Кодек з" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Не вдалося знайти файли для порівняння." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Під час спроби резервного копіювання, не вдалося вилучити стару резервну " "копію. \n" "Назва файла: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Під час спроби резервного копіювання, не вдалося перейменування. \n" "Назва файлів: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Отримання стану файла: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Читання файла: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Запис файла: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Не вистачає пам'яті" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Створення каталогу: %1." #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Вилучення каталогу: %1." #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Вилучення файла: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Створення символічного посилання: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Перейменування файла: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Копіювання файла: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Помилка під час копіювання файла: не вдалося відкрити файл для читання. " "Назва файла: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Помилка під час спроби копіювання файла: не вдалося відкрити файл для " "запису. Назва файла: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Помилка під час копіювання файла: неможливо прочитати. Назва файла: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Помилка під час операції копіювання: Невдала спроба запису. Назва файла: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Читання каталогу: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Побудова списку каталогу: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Скасувати" #: difftextwindow.cpp:403 msgid "Line" msgstr "Рядок" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Рядок недоступний" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Кодування:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Верхній рядок" #: difftextwindow.cpp:1769 msgid "End" msgstr "Кінець" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Поточне налаштування:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Помилковий параметр налаштування:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Використано параметр --auto, але не вказано файла виводу." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Під час порівняння каталогів параметр --auto проігноровано." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Помилка збереження." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Під час спроби відкриття цих файлів сталася помилка:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Помилка відкриття файла" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Відкриває документи для порівняння..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Перезавантажити" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Зберігає результат об’єднання. Всі конфлікти слід розв’язати!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Зберігає поточний документ як..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Показати розбіжності" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Закриває програму" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Вирізує вибране та кладе його у кишеню" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Копіює вибране до кишені" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Вставляє вміст кишені в поточну позицію" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Вибрати все у поточному вікні" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Шукати рядок" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Шукати знову рядок" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Вмикає/вимикає рядок стану" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Налаштувати KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Перейти до поточної дельти" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Поточна\n" "дельта" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Перейти до першої дельти" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Перша\n" "дельта" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Перейти до останньої дельти" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Остання\n" "дельта" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "(Пропускає різниці у пробілах, якщо вимкнено «Показувати пробіли».)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Не пропускати різниці у пробілах, навіть якщо вимкнено параметр «Показувати " "пробіли».)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Перейти до попередньої дельти" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Попередня\n" "дельта" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Перейти до наступної дельти" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Наступна\n" "дельта" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Перейти до попереднього конфлікту" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Попередній\n" "конфлікт" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Перейти до наступного конфлікту" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Наступний\n" "конфлікт" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Перейти до попереднього нерозв’язаного конфлікту" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Попередній\n" "нерозв’язаний" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Перейти до наступного нерозв’язаного конфлікту" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Неступний\n" "нерозв’язаний" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Виберіть рядки з A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Вибрати\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Вибрати рядки з B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Вибрати\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Вибрати рядки з C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Вибрати\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Автоматично перейти до наступного конфлікту за визначення джерела" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Автоматично\n" "наступний" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Показувати символи пробілів і табуляцій для різниць" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Символи-\n" "пробіли" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Показувати пробіли" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Пробіли-\n" "дельти" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Показувати номери рядків" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Номери\n" "рядків" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Вибрати A всюди" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Вибрати B всюди" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Вибрати C всюди" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Вибрати A для всіх нерозв’язаних конфліктів" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Вибрати B для всіх нерозв’язаних конфліктів" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Вибрати C для всіх нерозв’язаних конфліктів" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Вибрати A для всіх нерозв’язаних конфліктів пробілів" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Вибрати B для всіх нерозв’язаних конфліктів пробілів" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Вибрати C для всіх нерозв’язаних конфліктів пробілів" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Автоматично розв’язувати прості конфлікти" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Застосувати різницю до конфліктів" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Запустити автооб’єднання за формальними виразами" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Автоматично розв’язувати конфлікти у журналі" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Розділити різницю на вибраному" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Об’єднати вибрані різниці" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Показати вікно A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Показати вікно B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Показати вікно C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Фокус до наступного вікна" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Звичайний огляд" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Перегляд A з B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Перегляд A з C Overview" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Перегляд B з C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Перенесення рядків у вікнах різниці" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Додати вирівнювання різниці вручну" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Очистити всі вирівнювання різниці вручну" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Фокус на попереднє вікно" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Перемкнути орієнтацію відокремлення" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Розділений перегляд тексту і тек" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Перемкнутися між переглядом тексту і тек" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Результат об’єднання не збережено." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Зберегти і вийти" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Вийти без збереження" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Помилка під час збереження результатів об’єднання." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Зараз ви виконуєте об’єднання каталогів. Ви впевнені, що бажаєте перервати " "його?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Збереження файла..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Файл зберігається з новою назвою..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Можливість друку не реалізовано." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Друк..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Вибір" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Друк завершено." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Друк перервано." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Вихід..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Перемикання пенала..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Перемикання рядка стану..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Основний):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Файл..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Каталог..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (додатковий):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Обміняти/Копіювати назви ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Обмін %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Копія %1->Вивід" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Обмін %1<->Вивід" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Вивід (не обов'язковий):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Налаштувати..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Гаразд" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Знайти текст:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "З врахуванням регістру" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Пошук в A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Пошук в B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Пошук в C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Пошук у виводі" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Пошук" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Тестування формальних виразів" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Формальний вираз автооб’єднання:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Приклад рядка автооб’єднання:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Для перевірки автооб’єднання скопіюйте рядок у тому вигляді, у якому він " "використовується у ваших файлах." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Результат пошуку:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Початковий формальний вираз історії:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Приклад початкового рядка історії (з початковим коментарем):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Копіюйте початковий рядок історії, у тому вигляді, як він використовується у " "ваших файлах,\n" "разом з початковим коментарем." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Початковий формальний вираз елемента історії:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Порядок ключів сортування історії:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Приклад початкового рядка запису історії (без початкового коментаря):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Копіюйте початок рядка запису історії у тому вигляді, як він " "використовується у ваших файлах,\n" "але пропустити початковий коментар." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Результат ключа впорядкування:" #: smalldialogs.cpp:508 msgid "OK" msgstr "Гаразд" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Знайдено відповідник." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Відповідників не знайдено." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Кількість лівих і правих дужок у формальному виразі не збігаються." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Юнікод, 8 бітів" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Юнікод" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Змінити це, якщо символи, що не належать до ASCII не відображаються коректно." #: optiondialog.cpp:465 msgid "Configure" msgstr "Налаштувати" #: optiondialog.cpp:531 msgid "Font" msgstr "Шрифт" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Вихідний шрифт редактора і різниці" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Курсив для різниці" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Вибрати курсив для відображення шрифту різниці.\n" "Якщо шрифт не підтримує курсивні символи, нічого не значитиме." #: optiondialog.cpp:568 msgid "Color" msgstr "Колір" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Параметри кольорів" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Вікна редактора і різниці:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Колір тексту:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Колір тла:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Колір тла різниці:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Колір A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Колір B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Колір C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Колір конфліктів:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Колір тла поточного діапазону:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Колір тла поточного діапазону різниці:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Колір для діапазонів різниць вирівняних вручну:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Перегляд порівняння каталогів:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Колір найновішого файла:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Зміна цього кольору буде ефективною після початку нового порівняння " "каталогів." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Колір найстарішого файла:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Колір файлів проміжного віку:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Колір відсутніх файлів:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Редактор" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Режим роботи редактора" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Використовувати пробіли замість табуляції" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Увімкнено: Натискання клавіші табуляції вставить відповідну кількість " "пробілів.\n" "Вимкнено: Буде вставлено символ Tab." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Розмір табуляції:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Автовідступ" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" "Увімкнено: Відступ попереднього рядка буде використано для наступного.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Автоматичне копіювання позначеного" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Увімкнено: Будь-яка вибрана область копіюється до кишені.\n" "Вимкнено: Явне проведення копіювання, наприклад за допомогою Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Автовибір" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Встановлює стиль кінців рядка під час збереження файла.\n" "DOS/Windows: CR+LF; UNIX: LF; де CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Параметри Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Вважати пробілом." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ігнорувати числа" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ігнорувати цифри під час порівняння рядків. (Подібно до ігнорування " "пробілів.)\n" "Може допомогти для файлів з числовими даними." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ігнорувати коментарі C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Вважати коментарі C/C++ пробілами." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Без врахування регістру" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Вважати різницю у регістрі змінами у кількості пробілів. («а»<=>«А»)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Команда препроцесора:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "Попередня обробка, визначена користувачем. (Подробиці у документації.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Команда відповідності рядків препроцесора:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Цей препроцесор використовується лише для порівняння рядків.\n" "(Подробиці у документації.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Агресивніше (повільніше)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Вмикає параметр --minimal для зовнішніх різниць.\n" "Аналіз великих файлів значно уповільнюється." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Вирівняти B і C для 3 вхідних файлів" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Спробувати вирівняти B і C під час порівняння або об’єднання трьох вхідних " "файлів.\n" "Не рекомендується для об’єднання, оскільки такі дії можуть його ускладнити.\n" "(Типово вимкнено.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Об’єднати параметри" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Автоматичне продовження за (у мс):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "У режимі автопродовження результат поточного вибору показується на \n" "вказаний проміжок часу перед переходом до наступного конфлікту. Діапазон: " "0-2000 мс" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Показувати інформаційні вікна" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Показувати діалогове вікно з відомостями про кількість конфліктів." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Типове значення пробілів для об’єднання 2 файлів:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Вибір вручну" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Дозволити алгоритму об’єднання автоматично вибирати вхідне значення для змін " "у пробілах." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Типове значення пробілів для об’єднання 3 файлів:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Формальний вираз автоматичного об’єднання" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Формальний вираз для рядків, де KDiff3 має автоматично вибрати одне " "джерело.\n" "Якщо рядок з конфліктом відповідає формальному виразу, буде вибрано\n" "— якщо доступний — C, у іншому випадку — B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Запустити автооб’єднання за формальними виразом на початку об’єднання" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Запускати об’єднання для формальних виразів автоматично об’єднання\n" "одразу після запуску об’єднання.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Об’єднання історії керування версіями" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Формальний вираз для початку запису історії керування версіями.\n" "Зазвичай, цей рядок містить ключове слово «$Log$».\n" "Типове значення: «.*\\$Log.*\\$.*»" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Запис історії керування версіями складається з декількох рядків.\n" "Вкажіть формальний вираз для визначення початкового рядка (без вступного " "коментаря).\n" "Для групування ключів, які ви бажаєте використати для сортування, " "скористайтеся дужками.\n" "Якщо залишити це поле порожнім, KDiff3 припустить, що записи історії " "відокремлюються порожніми рядками.\n" "Подробиці можна дізнатися з документації." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Впорядкування історії при об’єднанні" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Впорядкувати історію керування версіями за ключем." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Порядок сортування початків записів за ключем:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Кожна пара дужок, які використовуються у формальному виразі, містить\n" "ключ впорядкування записів історії.\n" "Вкажіть список ключів (пронумерованих у порядку появи,\n" "починаючи з 1), з використання роздільника «,» (наприклад «4,5,6,1,2,3,7»).\n" "Якщо залишити це поле порожнім, сортування не проводитиметься.\n" "Подробиці можна дізнатися з документації." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Об’єднувати за журналом керування версіями на початку об’єднання" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "Запускати історію керування версіями на початку об’єднання." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Макс. кількість записів у історії:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Обрізати після вказаного номера. Вкажіть -1, що визначити нескінченну " "кількість записів." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Перевіряти ваші формальні вирази" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Безвідносна команда об’єднання:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Якщо вказано цей параметр, відповідний скрипт буде запущено після\n" "автоматично об’єднання, якщо не виявлено інших пов’язаних змін.\n" "Викликають з параметрами: filename1 filename2 filename3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Автоматично зберегти і вийти, якщо немає конфліктів" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Якщо KDiff3 було запущено для об’єднання файлів з командного рядка і всі\n" "конфлікти можна розв’язати без втручання користувача, автоматично зберегти " "файли і вийти.\n" "(Відповідає параметру командного рядка «--auto».)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Каталог" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Рекурсивні каталоги" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Чи аналізувати підкаталоги." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Шаблони файлів:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Шаблон(и) файлів, які буде проаналізовано. \n" "Шаблони заміни: «*» і «?»\n" "Декілька шаблонів слід розділяти символом «;»" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Шаблон(и) виключення файлів:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Шаблон(и) файлів, які буде виключено з аналізу. \n" "Шаблони заміни: «*» і «?»\n" "Декілька шаблонів слід розділяти символом «;»" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Шаблон(и) виключення тек:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Шаблон(и) тек, які буде виключено з аналізу. \n" "Шаблони заміни: «*» і «?»\n" "Декілька шаблонів слід розділяти символом «;»" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Використовувати .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Розширює шаблон виключення до всього, що ігноруватиметься CVS.\n" "Залежить від локальних файлів «.cvsignore» у окремім каталозі." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Показувати приховані файли і теки" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Знаходить файли і каталоги з атрибутом «прихований»." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Знаходить файли і каталоги, назва яких починається з «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Йти за посиланнями на файли" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Увімкнено: Порівнювати файли, на які вказує посилання.\n" "Вимкнено: Порівнювати самі посилання." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Слідувати за посилання на каталоги" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Увімкнено: Порівнювати каталоги, на які вказує посилання.\n" "Вимкнено: Порівнювати посилання." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Порівняння назв файлів з врахуванням регістру" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Порівняння каталогів порівнюватиме файли і каталоги, якщо їхні назви " "збігаються.\n" "Встановіть цей параметр, якщо мають збігатися і регістри літер назв. (Типово " "вимкнено у Windows, у інших системах увімкнено.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Режим порівняння файлів" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Двійкове порівняння" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Двійкове порівняння кожного файла. (Типове)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Повний аналіз" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Провести повний аналіз і показати статистичну інформацію у додаткових " "стовпчиках.\n" "(Повільніше за двійкове порівняння, набагато повільніше для двійкових " "файлів.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Довіряти розміру і даті зміни (небезпечно)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Припускати, що файли з однаковим розміром і часом зміни — однакові.\n" "Якщо вміст файлів однаковий, але дати зміни різні, вважати файли різними.\n" "Корисно для великих каталогів або повільних мереж." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Довіряти розміру і даті, але використовувати двійкове порівняння за різниці " "дат (небезпечно)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Припускати, що файли з однаковим розміром і часом зміни — однакові.\n" "Якщо розміри однакові, але дати різні, використовувати двійкове порівняння.\n" "Корисно для великих каталогів або повільних мереж." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Довіряти розміру (небезпечно)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Припускати, що файли однакові, якщо мають однаковий розмір.\n" "Корисно для великих каталогів або повільного зв’язку мережею, коли під час " "звантаження змінюється дата." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Синхронізувати теки." #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Пропонує зберігати файли у обох каталогах, отже,\n" "по завершенню обидва каталоги будуть однаковими.\n" "Працює, лише якщо порівнюються два каталоги без визначення призначення." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Файли з різницею у пробілах — однакові" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Якщо файли відрізняються лише пробілами, вважати їх однаковими.\n" "Цей параметр активний, лише якщо вибрано повний аналіз." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Копіювати новіший, замість об’єднання (небезпечно)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Не заглядати всередину — брати новіший файл.\n" "(Користуйтеся цим, лише якщо знаєте що робите!)\n" "Ефективно лише у разі порівняння двох каталогів." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Файли резерву (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Якщо файл буде збережено замість старого файла, старий файл\n" "буде перейменовано на файл з суфіксом «.orig» замість вилучення." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Локалізація" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Мова (потрібний перезапуск)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Виберіть мову рядків графічного інтерфейсу або «Авто».\n" "Щоб змінити мову програми, вийдіть з неї і знову запустіть KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Використовувати однакове кодування для всього:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Увімкнення цього параметра надає змогу змінювати всі кодування зміною лише " "першого.\n" "Вимкніть його, якщо потрібні окремі параметри для кожної з частин." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Зауваження: локальним кодуванням є " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Кодування файла для A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Якщо увімкнено Юнікод (UTF-16 або UTF-8) визначатиметься автоматично.\n" "Якщо файл не у Юнікоді, відбудеться повернення до вибраного кодування.\n" "(Визначення Юнікоду відбувається за першими байтами файла.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Визначати Юнікод автоматично" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Кодування файла для B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Кодування файла для C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Кодування файла для об’єднання і збереження:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Автовибір" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Якщо параметр увімкнено, використовується кодування з вхідних файлів.\n" "У неоднозначних випадках користувача буде запитано про кодування для " "збереження файла." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Кодування файлів для файлів препроцесора:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Мова з записом справа ліворуч" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Читання деякими мовами відбувається справа ліворуч.\n" "Цей параметр дозволяє відповідно змінити поведінку переглядача і редактора." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Інтеграція" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Параметри інтеграції" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Ігнорувати параметри командного рядка:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Список параметрів командного рядка, які слід ігнорувати, якщо KDiff3 " "використовується іншими інструментами.\n" "Декілька значень можна вказати відокремленням їх за допомогою «;»\n" "Таким чином можна позбутися повідомлень про «Невідомий параметр»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Завершувати роботу за клавішею Escape" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Швидкий спосіб завершення роботи.\n" "Для тих, хто звик користуватися клавішею Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Інтегрувати з ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Інтегрувати з Rational ClearCase від IBM.\n" "Змінює файл «map» у підтеці ClearCase «lib/mgrs»\n" "(Доступне, лише якщо теку «bin» ClearCase можна знайти.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Вилучити інтеграцію з ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Відновити старий файл «map» від попередньої спроби інтеграції з Clearcase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Несумісний шрифт" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Продовжити, я все контролюю" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Вибрати інший шрифт" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Встановлює типові значення для всіх параметрів. Не лише тих, що у цьому " "розділі." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "PreprocessorCmd: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Наступні параметри, які ви обрали, змінять дані:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Скоріше за все, ця поведінка небажана під час об’єднання.\n" "Ви бажаєте вимкнути ці параметри ви продовжувати з задіяними параметрами?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Параметр небезпечний для об’єднання" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Використовувати ці параметри під час об’єднання" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Вимкнути небезпечні параметри" #: pdiff.cpp:300 msgid "Loading A" msgstr "Завантаження A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Завантаження B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linediff: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Завантаження C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linediff: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linediff: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Всі вхідні файли містять однаковий текст, але не є двійково однаковими." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Файли %1 і %2 містять однаковий текст, але не є двійково однаковими. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Деякі з вхідних файлів не є суто текстовими файлами.\n" "Зауважте, що операцію об’єднання у KDiff3 не призначено для двійкових " "файлів.\n" "Продовжуйте, але можливі помилки." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Деякі з символів вхідних даних не вдалося перетворити на символи Unicode.\n" "Ймовірно, вами використано помилковий кодек (наприклад UTF-8 для файлів з " "даними не у форматі UTF-8).\n" "Не зберігайте результат, якщо не певні. Відповідальність за наслідки дії " "лежить лише на вас.\n" "Файли вхідних даних, яких стосується це зауваження, зберігаються у %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Перервати" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Відкриття файлів..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Помилка відкриття файла" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Вирізання вибраного..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Копіювання вибраного до кишені..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Вставлення вмісту кишені..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Зберегти й продовжити" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Продовжити без збереження" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Пошук завершено." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Пошук завершено" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Нічого не позначено у жодному з вхідних вікон різниці." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Помилка під час додавання вручну діапазону diff" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Не вдалося ініціалізувати додатковий модуль KDiff3.\n" "Зазвичай, це є наслідком проблем зі встановленням. Будь ласка, прочитайте " "файл README у пакунку джерела, щоб дізнатися більше." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "о. Іван Петрущак,Юрій Чорноіван" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "fr.ivan@ukrainian-orthodox.org,yurchor@ukr.net" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Налаштувати KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Головний пенал" kdiff3-0.9.97/po/nn/0000755000175100001440000000000011626145654013363 5ustar joachimuserskdiff3-0.9.97/po/nn/kdiff3plugin.po0000644000175100001440000000452211626145606016310 0ustar joachimusers# Translation of kdiff3plugin to Norwegian Nynorsk # # Eirik U. Birkeland , 2009. msgid "" msgstr "" "Project-Id-Version: KDE 4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-01-11 18:43+0100\n" "Last-Translator: Eirik U. Birkeland \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 0.3\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Samanlikn med %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Slå saman med %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Lagra «%1» til seinare" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Samanslåing av tre filer med base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Samanlikn med …" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Tøm liste" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Samanlikn" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Samanlikning med tre filer" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Om KDiff3-menytillegg …" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3-menytillegg© 2008 Joachim Eibl\n" "Nettstad: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare " "With\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/nn/CMakeLists.txt0000644000175100001440000000016311626145606016120 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(nn ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/nn/kdiff3.po0000644000175100001440000015733011626145606015077 0ustar joachimusers# Translation of kdiff3 to Norwegian Nynorsk # msgid "" msgstr "" "Project-Id-Version: KDE 4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2008-11-26 17:46+0100\n" "Last-Translator: Karl Ove Hufthammer \n" "Language-Team: Norwegian Nynorsk \n" "Language: nn\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hjelp" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Om" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "&Opphavsperson" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "" #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "" #: directorymergewindow.cpp:358 msgid "Status" msgstr "" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "" #: directorymergewindow.cpp:2989 msgid "A" msgstr "" #: directorymergewindow.cpp:2990 msgid "B" msgstr "" #: directorymergewindow.cpp:2991 msgid "C" msgstr "" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 msgid "Line" msgstr "" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "" #: kdiff3.cpp:956 msgid "Selection" msgstr "" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "" #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "" #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "" #: optiondialog.cpp:603 msgid "Background color:" msgstr "" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history entries." "\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" kdiff3-0.9.97/po/ug/0000755000175100001440000000000011626145654013363 5ustar joachimuserskdiff3-0.9.97/po/ug/kdiff3plugin.po0000644000175100001440000000410511626145610016300 0ustar joachimusers# Uyghur translation for kdiff3plugin. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Sahran , 2011. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-09 19:00+0900\n" "Last-Translator: Sahran \n" "Language-Team: Uyghur Computer Science Association \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "سېلىشتۇر" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/ug/CMakeLists.txt0000644000175100001440000000016311626145610016113 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ug ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ug/kdiff3.po0000644000175100001440000016362111626145610015072 0ustar joachimusers# Uyghur translation for kdiff3. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # Sahran , 2011. # msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-09 19:00+0900\n" "Last-Translator: Sahran \n" "Language-Team: Uyghur Computer Science Association \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "داۋاملاشتۇر" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "ۋاز كەچ" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "چېكىن" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "ياردەم" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "كۆڭۈلدىكى قىممەتلەر" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "ھۆججەت(&F)" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "تەھرىر(&E)" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "بىرلەشتۈر(&M)" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "كۆزنەك(&W)" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "تەڭشەك(&S)" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "ياردەم(&H)" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "ھەققىدە(&A)" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "ئاپتور(&U)" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "تەشەككۈرلەر(&T)" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "ئاچ" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "ساقلا" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "باشقا ئاتتا ساقلا…" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "باس…" #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "كەس" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "كۆچۈر" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "چاپلا" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "ھەممىنى تاللا" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "قورال بالداقنى كۆرسەت" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 نى سەپلە(&C)…" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "ھەققىدە" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "ئىزدە" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "كېيىنكىنى ئىزدە" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "خەت نۇسخا تاللا" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "پەرۋا قىلما" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "چېكىن" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "ئاتى" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "مەشغۇلات" #: directorymergewindow.cpp:358 msgid "Status" msgstr "ھالەت" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "ئاق" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "ئاگاھلاندۇرۇش" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "بىر تەرەپ قىلىۋاتىدۇ " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "بىرىكتۈر" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "پروگرامما خاتالىقى" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "خاتالىق" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "خاتا." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "تامام." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "تىپى" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "چوڭلۇقى" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "ھۆججەت" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "ئىشلەتكىلى بولمايدۇ" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "ھېچقانداق قىلما" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "توقۇنۇشلار" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "چىقار" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "توقۇنۇش" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "ئەسلەك يېتىشمىدى" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "ۋاز كەچ(&C)" #: difftextwindow.cpp:403 msgid "Line" msgstr "قۇر" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "كودلاش:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "تامام" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "قايتا يۈكلە" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "پروگراممىدىن چېكىن" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "تاللانغان بۆلەكنى كېسىپ چاپلاش تاختىسىغا كۆچۈرىدۇ" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "تاللانغان بۆلەكنى چاپلاش تاختىسىغا كۆچۈرىدۇ" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "بىر ھەرپ-بەلگە ئىزدە" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "قۇر نومۇرىنى كۆرسەت" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "ھۆججەت ساقلاۋاتىدۇ…" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "بېسىۋاتىدۇ…" #: kdiff3.cpp:956 msgid "Selection" msgstr "تاللانما" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "چېكىنىۋاتىدۇ…" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "ھۆججەت …" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "سەپلە…" #: smalldialogs.cpp:174 msgid "&OK" msgstr "جەزملە(&O)" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "چوڭ كىچىك يېزىلىشنى پەرقلەندۈر" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "ئىزدە(&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "جەزملە" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "يۇنىكود" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "سەپلە" #: optiondialog.cpp:531 msgid "Font" msgstr "خەت نۇسخا" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "رەڭ" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "ئالدى رەڭگى:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "تەگلىك رەڭگى:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "تەھرىرلىگۈچ" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "ئۆزلۈكىدىن بايقا" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "سېلىشتۇرۇش(Diff)" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "مۇندەرىجە" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "ئۆزلۈكىدىن تاللا" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "توپلاشتۇرۇش" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "توختات" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "تاللانغاننى كېسىۋاتىدۇ…" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "تاللانغاننى چاپلاش تاختىسىغا كۆچۈرۈۋاتىدۇ" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "چاپلاش تاختىسى مەزمۇنلىرىنى قىستۇرۇۋاتىدۇ…" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "ئىزدەش تاماملاندى." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "ئابدۇقادىر ئابلىز, غەيرەت كەنجى" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "sahran.ug@gmail.com, gheyret@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "ئاساسىي قورال بالداق" kdiff3-0.9.97/po/zh_CN/0000755000175100001440000000000011626145654013751 5ustar joachimuserskdiff3-0.9.97/po/zh_CN/kdiff3plugin.po0000644000175100001440000000463111626145612016674 0ustar joachimusers# translation of kdiff3plugin.po to 简体中文 # Copyright (C) 2004, 2008 Free Software Foundation, Inc. # # zhu-zhy , 2004. # Mai Haohui , 2004. # Ni Hui , 2008. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2008-12-27 18:08+0800\n" "Last-Translator: Ni Hui \n" "Language-Team: 简体中文 \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, fuzzy, kde-format msgid "Merge with %1" msgstr "合并到 A" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 #, fuzzy msgid "Compare with ..." msgstr "正在比较文件..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "清除列表" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "比较" #: kdiff3plugin.cpp:163 #, fuzzy msgid "3 way comparison" msgstr "二进制比较" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "关于 KDiff3 菜单插件..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 菜单插件:Copyright (C) 2008 Joachim Eibl\n" "KDiff3 主页:http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "关于 KDiff3 菜单插件..." kdiff3-0.9.97/po/zh_CN/CMakeLists.txt0000644000175100001440000000016611626145611016505 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(zh_CN ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/zh_CN/kdiff3.po0000644000175100001440000022717611626145612015470 0ustar joachimusers# Copyright (C) 2004 Free Software Foundation, Inc. # # zhu-zhy , 2004. # Mai Haohui , 2004. # Li Ang , 2010. # Feng Chao , 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-06-06 10:18+0800\n" "Last-Translator: Feng Chao \n" "Language-Team: Chinese Simplified \n" "Language: zh_CNX-Generator: Lokalize 1.1\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Language: zh_CN\n" "X-Generator: Lokalize 1.2\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "继续" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "取消" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "退出" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "确定" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "帮助" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "默认" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "文件(&F)" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "编辑(&E)" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "目录(&D)" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "移动(&M)" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "查看 Diff(&I)" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "合并(&M)" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "窗口(&W)" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "设置(&S)" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "帮助(&H)" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "关于(&A)" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "作者(&U)" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "感谢(&T)" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "当前项目合并操作" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "当前项目同步操作" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "打开" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "保存" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "另存为..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "打印..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "剪切" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "复制" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "粘贴" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "全选" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "显示工具栏" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "显示状态栏(&S)" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "配置 %1(&C)..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "关于" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "查找" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "查找下一个" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "选择字体" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "您选择了一个可变宽度字体。\n" "\n" "因为此程序不能正确处理可变宽度字体\n" "您可能在编辑时遇到问题。\n" "\n" "您要继续,还是另选一种字体。" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "不兼容字体" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "自愿冒险继续" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "选择另一种字体" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "需更多文档,请见帮助菜单或doc目录。" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "忽略" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "退出" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "将剪贴板数据写入临时文件失败。" #: diff.cpp:255 msgid "From Clipboard" msgstr "从剪贴板" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "预处理可能失败了。请检查这个命令:\n" "\n" " %1\n" "\n" "现在预处理命令会被禁用。" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "行匹配处理可能失败。请检查这个命令:\n" "\n" " %1\n" "\n" "现在行匹配处理命令会被禁用。" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "数据丢失错误:\n" "如果它是可复现的,请联系作者。\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "严重内部错误" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "链接和普通文件混合" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "链接:" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "大小。" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "日期和大小:" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "创建临时 %1 副本失败。" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "打开 %1 失败。" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "正在比较文件..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "读取 %1 时错误" #: directorymergewindow.cpp:358 msgid "Name" msgstr "名称" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "操作" #: directorymergewindow.cpp:358 msgid "Status" msgstr "状态" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "未解决的" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "已解决的" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "非空白" #: directorymergewindow.cpp:359 msgid "White" msgstr "空白" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "您当前正在合并目录。您确定要放弃合并,重新扫描目录吗?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "警告" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "重新扫描" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "继续合并" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "打开目录失败:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "目录 A “%1”不存在或者不是目录。\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "目录 B “%1”不存在或者不是目录。\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "目录 C “%1”不存在或者不是目录。\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "打开目录错误" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "当三个目录合并时,目标目录不能是 A 或者 B。\n" "在继续进行前,请再核对一遍。" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "参数警告" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "正在扫描目录..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "读取目录 A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "读取目录 B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "读取目录 C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "不能进入读取一些子目录" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "检查子目录权限。" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "就绪。" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "目录比较状态" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "子目录数:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "相同文件数:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "不同文件数:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "手动合并数:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "这将影响全部合并操作。" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "更改全部合并操作" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "处理 " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "执行。" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "复制 A 到 B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "复制 B 到 A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "删除 A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "删除 B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "删除 A 和 B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "合并到 A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "合并到 B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "合并到 A 和 B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "删除(如果存在)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "合并" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "合并(手动)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "错误:文件类型冲突" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "错误:变化并删除" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "错误:日期相同但是文件不同。" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "现在不能执行此操作。" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "操作不可行" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "此情况不应再发生:\n" "\n" "合并结果保存:m_pMFI=0\n" "\n" "如果您知道如何重现错误,请联系程序作者。" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "程序错误" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "复制时发生错误。\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "错误" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "合并错误" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "错误。" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "完成。" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "未保存。" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "未知合并操作。(绝不可以发生!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "未知合并操作。" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "合并将开始。\n" "\n" "选择“执行”如果您已经阅读了指南并知道您在做什么。\n" "选择“模拟”将告诉您将发生什么。\n" "\n" "注意此程序依然处于 beta 状态,没有任何保证!备份您的重要数据!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "开始合并" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "执行" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "模拟" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "高亮的项目在不同的目录有不同类型。选择做什么。" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "文件的修改日期相同但是文件不同。选择做什么。" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "高亮的项目在一个目录被修改,在另一个目录被删除。请选择如何处理。" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "此操作当前不可行,因为目录合并正在运行。" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "最后一步有错误。\n" "您要继续进行导致错误的项目还是跳过该项?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "出错后继续合并" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "继续进行上一项" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "跳过项目" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "已跳过。" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "进行中..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "合并操作完成。" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "合并完成" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "模拟合并完成:核对您是否赞同被提议的操作。" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "错误发生。按 OK 看详细信息。\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "错误:在删除 %1 时:创建备份失败。" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "递归删除目录( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "删除( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "错误:在试图读取目录时删除目录操作失败。" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "错误:rmdir( %1 )操作失败。" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "错误:删除操作失败。" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "手动合并( %1,%2,%3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr " 注意:在手动合并之后用户应该按 F7 继续。" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "错误:复制( %1 -> %2 )失败。删除现存目标失败。" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "复制链接( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "错误:复制链接失败:远程链接尚未支持。" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "错误:复制链接失败。" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "复制( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "重命名( %1 -> %2 )错误:无法删除现存目标。" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "重命名( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "错误:重命名失败。" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "建立目录 %1 出错。无法删除现存文件。" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "建立目录( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "创建目录时出错。" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "目标" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "目录" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "类型" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "大小" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "属性" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "上次修改" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "链接目标" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "文件" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "不可用" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (目标):" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A 基准" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (目标):" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (目标):" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "目标:" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "另存目录合并状态..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "开始/继续目录合并" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "开始当前项目操作" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "比较所选文件" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "合并当前文件" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "合并文件" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "折叠全部子文件夹" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "打开全部子文件夹" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "选择 A 的全部项目" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "选择 B 的全部项目" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "选择 C 的全部项目" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "为全部项目自动选择操作" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "全部项目无操作" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "显示相同的文件" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "相同\n" "文件" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "显示不同的文件:" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "显示只在A中有的文件" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "只在\n" "A中文件" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "显示只在B中有的文件" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "只在\n" "B中文件" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "显示只在C中有的文件" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "只在\n" "C中文件" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "比较所选文件" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "合并所选文件" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "什么也不做" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "删除 A 和 B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "合并到 A 和 B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "忽略。(用户自定义的。)" #: main.cpp:162 msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "比较及合并文件和目录的工具" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "从剪贴板" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE4 移植" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ 十分感谢报告错误和贡献想法的人们!" #: main.cpp:196 msgid "Merge the input." msgstr "合并输入。" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "明确基准文件,以便与某些工具兼容。" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "输出文件。Implies -m。例如:-o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "再次输出文件。(为与某些工具兼容。)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "如果全部冲突自动解决无图形用户界面。(需要 -o file)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "不自动解决冲突。(为了兼容性...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "为输入文件1(基准文件)做的可见名替换。" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "为输入文件2做的可见名替换。" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "为输入文件3做的可见名替换。" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "候选可见名替换。每次输入提供。" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 #, fuzzy msgid "Show list of config settings and current values." msgstr "显示配置及值。" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "使用不同的配置文件。" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "要打开的文件(基准文件,如果未通过 --base 指定)" #: main.cpp:212 msgid "file2 to open" msgstr "要打开的文件 2" #: main.cpp:213 msgid "file3 to open" msgstr "要打开的文件 3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "还未解决的冲突数目:%1(其中 %2 项为空白字符)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "已修改输出。\n" "如果您继续您的更改将丢失。" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "全部输入文件二进制数据相同。" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "全部输入文件包含相同文本。" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "文件 %1 和 %2 二进制数据相同。\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "文件%1和%2文本相同。\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "冲突总数:" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "自动解决的冲突数目:" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "未解决冲突数目:" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "冲突" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<无源行>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<合并冲突(只有空白字符)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<合并冲突>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "尚未解决全部冲突。\n" "文件未保存。\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "遗留的冲突" #: mergeresultwindow.cpp:2734 #, fuzzy msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "有一处行尾风格冲突。请手动选择行尾风格。\n" "文件未保存。" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "创建备份失败。文件未保存。" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "保存文件错误" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "写入时出错。" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "输出" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[已修改]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "保存用的文件编码:" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "行尾风格:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "UNIX" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "冲突" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "无法找到文件比较。" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "试图做备份时,删除旧备份失败。\n" "文件名:" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "试图备份时,重命名失败。\n" "文件名:" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "获取文件状态:%1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "读取文件:%1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "写入文件:%1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "内存溢出" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "建立目录:%1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "删除目录:%1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "删除文件:%1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "创建符号链接:%1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "重命名文件:%1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "复制文件:%1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "文件复制操作出错:打开文件读取失败。文件名:%1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "文件复制操作出错:打开文件写入失败。文件名:%1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "文件复制操作出错:读取失败。文件名:%1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "文件复制操作出错:写入失败。文件名:%1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "读取目录:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "目录列表:%1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "取消(&C)" #: difftextwindow.cpp:403 msgid "Line" msgstr "行" #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "不可用" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "编码:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "顶端行数" #: difftextwindow.cpp:1769 msgid "End" msgstr "末尾" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "当前配置:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "配置选项错误:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "选项 -- 自动使用,但没有指定输出文件。" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "选项 -- 自动忽略目录比较。" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "保存失败。" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "打开以下文件失败:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "文件打开出错" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "打开文档比较..." #: kdiff3.cpp:479 msgid "Reload" msgstr "重新装入" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "保存合并结果。必须解决全部冲突!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "保存当前文档为..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "打印差异" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "退出程序" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "剪切所选节,将其放入剪贴板" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "复制所选节至剪贴板" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "粘贴剪贴板内容到实际位置" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "选则当前窗口的所有内容" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "搜索字符串" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "再次搜索该字符串" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "启用/禁止状态栏" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "配置 KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "到当前 Delta" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "当前\n" "差异" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "到第一个 Delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "首个差异" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "到最后一个 Delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "最后\n" "差异" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "(禁用“显示空白字符”时跳过空白差异。)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "(禁用“显示空白字符”时也不跳过空白差异。)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "到上一个 Delta" #: kdiff3.cpp:540 #, fuzzy #| msgid "Go to Previous Delta" msgid "" "Prev\n" "Delta" msgstr "到上一个 Delta" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "到下一个 Delta" #: kdiff3.cpp:542 #, fuzzy #| msgid "Go to Next Delta" msgid "" "Next\n" "Delta" msgstr "到下一个 Delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "到上一个冲突" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "上一个冲突" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "到下一个冲突" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "下一个冲突" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "到上一个未解决冲突" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "上一个未解决的" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "到下一个未解决冲突" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "下一个未解决的" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "从 A 选择 行" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "选择\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "从 B 选择行" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "选择\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "从 C 选择行" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "选择\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "源码选择后自动到下一个未解决冲突" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "自动\n" "下一个" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "显示间距和制表符的不同" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "空白\n" "字符" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "显示空白字符" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "显示行号" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "行数" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "总是选择 A" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "总是选择 B" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "总是选择 C" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "所有未解决冲突均选择 A" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "所有未解决冲突均选择 B" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "所有未解决冲突均选择 C" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "所有未解决空白字符冲突均选择 A" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "所有未解决空白字符冲突均选择 B" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "所有未解决空白字符冲突均选择 C" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "自动解决简单冲突" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "设置 Delta 为冲突" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "进行正则表达式自动合并" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "自动解决历史冲突" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "合并所选差异" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "显示窗口 A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "显示窗口 B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "显示窗口 C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "聚焦于下一个窗口" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "普通概览" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A 和 B 概览" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A 和 C 概览" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B 和 C 概览" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "在 Diff 窗口自动换行" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "添加手工对齐" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "清除所有的手工对齐" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "聚焦于上一个窗口" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "切换分隔方向" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "目录和文本分屏视图" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "切换目录和文本视图" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "合并结果未保存。" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "保存并退出" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "退出不保存" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "保存合并结果失败。" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "您当前正在合并目录。您确认要放弃吗?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "正在保存文件..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "正在用新文件名保存文件..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "打印完成。" #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "正在打印..." #: kdiff3.cpp:956 msgid "Selection" msgstr "选择" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "打印完成。" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "打印中止。" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "正在退出..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "切换工具栏..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "切换状态栏..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (基准文件):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "文件..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "目录..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (可选):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "交换/复制文件名..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "交换 %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "复制 %1->输出" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "交换 %1<->输出" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "输出(可选):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "配置..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "确定(&O)" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "搜索文本:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "区分大小写" #: smalldialogs.cpp:372 msgid "Search A" msgstr "搜索 A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "搜索 B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "搜索 C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "搜索输出" #: smalldialogs.cpp:392 msgid "&Search" msgstr "搜索(&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "正则表达式测试器" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "自动合并正则表达式:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "匹配结果:" #: smalldialogs.cpp:441 optiondialog.cpp:962 #, fuzzy msgid "History start regular expression:" msgstr "历史记录起始正则表达式:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 #, fuzzy msgid "History entry start regular expression:" msgstr "历史记录条目起始正则表达式:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "排序结果:" #: smalldialogs.cpp:508 msgid "OK" msgstr "确定" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "匹配失败。" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "8 位 Unicode" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "如果非 ASCII 字符不能正确显示,请更改此选项。" #: optiondialog.cpp:465 msgid "Configure" msgstr "配置" #: optiondialog.cpp:531 msgid "Font" msgstr "字体" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "编辑器和 Diff 输出字体" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "delta 使用斜体字" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "选择斜体字表示差别。\n" "如果字体不支持斜体,那么这个选项无效。" #: optiondialog.cpp:568 msgid "Color" msgstr "颜色" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "颜色设置" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "编辑器和Diff视图:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "前景颜色:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "背景颜色:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Diff 背景颜色:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "颜色 A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "颜色 B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "颜色 C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "冲突颜色:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "当前范围背景颜色:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "当前范围差别背景颜色:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "手工对其区域颜色:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "目录比较视图:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "最新文件的颜色" #: optiondialog.cpp:682 #, fuzzy msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "修改此颜色将在下次目录比较时生效。" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "最老文件的颜色:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "中等文件的颜色:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "缺失文件的颜色:" #: optiondialog.cpp:717 msgid "Editor" msgstr "编辑器" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "编辑器行为" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "制表符插入空格" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "打开:按下 Tab 则生成相应数量的空格。\n" "关闭:将插入一个制表符。" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "制表符大小:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "自动缩进" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "打开:使用前一行的缩进于新一行。\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "自动复制选择" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "打开:任何选择将被自动写入剪贴板。\n" "关闭:您必须明确复制内容,如通过 Ctrl-C。" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "窗口(&W)" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "自动选择" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "设置保存文件的行尾。\n" "DOS/Windows:CR+LF;Unix:LF;而 CR=0D,LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Diff 设置" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "按空白字符处理。" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "忽略数字" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "在行匹配阶段,忽略数字字符。(与忽略空白字符相似。)\n" "可能帮助比较带数值数据的文件。" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "忽略 C/C++ 注解" #: optiondialog.cpp:821 #, fuzzy msgid "Treat C/C++ comments like white space." msgstr "C/C++ 注解按空白字符处理。" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "忽略大小写" #: optiondialog.cpp:828 #, fuzzy msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "将大小写变化当成空白字符更改。(“a”<=>“A”)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "预处理程序命令:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "用户定义预处理。(详细内容见文档。)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "行匹配预处理命令:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "此预处理仅在行匹配时使用。\n" "(详细内容见文档。)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "尽量仔细(较慢)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "为外部 diff 程序启用 --minimal 选项。\n" "大文件的分析会慢得多。" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "三方比较时对齐B和C" #: optiondialog.cpp:857 #, fuzzy msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "进行三方比较或合并时尝试对齐B与C。\n" "合并时不推荐,因为会导致情况更复杂。\n" "(默认关闭)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "合并设置" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "自动前进延迟(毫秒):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "在自动前进模式,当前选择结果显示一定时间,才会跳到下一个冲突。范围:0-2000 毫" "秒" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "显示信息对话框" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "显示冲突数量对话框" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "2 文件合并默认空白字符:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "手动选择" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "允许合并算法为仅有空白字符变化自动选择输入。" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "默认 3 文件合并空白字符:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "自动化合并正则表达式" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 #, fuzzy msgid "Run regular expression auto merge on merge start" msgstr "合并开始时进行正则表达式自动合并" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "版本控制历史合并" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "历史合并排序" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 #, fuzzy msgid "Merge version control history on merge start" msgstr "开始合并时进行版本控制历史合并" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "最大历史记录数:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "测试正则表达式" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "合并无冲突时自动保存并退出" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "目录" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "包含子目录" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "是否分析子目录。" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "文件模式:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "要分析的文件模式。\n" "通配符:“*”和“?”\n" "几个模式可以使用分隔符:“;”指定" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "排除文件模式:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "排除分析的文件模式。\n" "通配符:“*”和“?”\n" "几个模式可以使用分隔符:“;”指定" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "排除目录模式:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "排除分析的目录模式。\n" "通配符:“*”和“?”\n" "几个模式可以使用分隔符:“;”指定" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "使用 .cvsignore" #: optiondialog.cpp:1115 #, fuzzy #| msgid "" #| "Extends the antipattern to anything that would be ignored by CVS.\n" #| "Via local \".cvsignore\"-files this can be directory specific." msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "扩展排除模式至任何被 CVS 忽略的类型。\n" "通过本地“.cvsignore”文件,可以指定目录。" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "查找隐藏目录和文件" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "查找具有隐藏属性的文件和目录。" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "查找以“.”开头的文件和目录。" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "追踪文件链接" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "打开:比较链接指向的文件。\n" "关闭:比较链接。" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "追踪目录链接" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "打开:比较链接指向的目录。\n" "关闭:比较链接。" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "文件名区分大小写" #: optiondialog.cpp:1159 #, fuzzy msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "目录比较将比较名字相同的文件或目录。\n" "设置此选项如果文件名大小写敏感。(Windows上默认关闭,其他操作系统默认设置。)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "文件比较模式" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "二进制比较" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "用二进制比较模式比较每个文件。(默认)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "完全分析" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "进行完全分析并且在额外的列里显示统计信息。\n" "(比较二进制比较模式慢,比较二进制文件更慢。)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "信任修改日期(不安全)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "如果修改日期和文件长度相同,则认为文件相同。\n" "具有相同内容但修改日期不同的文件将被视作不同。\n" "对于大目录或较慢的网络有用。" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "信任文件大小及修改日期,但日期不相同时使用二进制比较(不安全)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "如果修改日期和文件长度相同,则认为文件相同。\n" "如果修改日期不相同而文件长度相同,则使用二进制比较。\n" "对于大目录或较慢的网络有用。" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "信任大小(不安全)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "如果文件长度相同则认为文件相同。\n" "当下载过程中日期被修改时,对于大目录或较慢网络有用。" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "同步目录" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "为了以后目录相同,提供在两个目录里存储文件。\n" "仅在比较两个目录并未指定目标目录时有效。" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "认为相同的空白字符数" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "如果文件只在空白字符上有差异,则认为它们相同。\n" "仅当选择完全比较时此选项才激活。" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "复制较新而不合并(不安全)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "不进入查看,仅取较新的文件。\n" "(如果您知道自己在做什么再选此项!)\n" "仅在比较两个目录时有效。" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "备份文件(.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "保存文件会覆盖旧文件时,旧文件将被重命名为“.orig”扩展名,而不是被删除。" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "区域设置" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "语言(需要重启)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "选择 GUI 的语言或者选择“自动”。\n" "要让更改生效,请退出并重启 KDiff3。" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "所有文件使用同一编码:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "启用此选项将使得只更改第一个编码设置即可更改全部文件的编码。\n" "如果需要为每个文件设置不同的编码,请禁用此选项。" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "注意:本地编码为" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "A 的文件编码:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "自动检测Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "B 的文件编码:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "C 的文件编码:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "合并输出和保存的文件编码:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "自动选择" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "预处理文件的文件编码:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "从右至左语言" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "某些语言是从右到左书写的。\n" "此设置将更改查看器和编辑器的设置。" #: optiondialog.cpp:1548 msgid "Integration" msgstr "集成" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "集成设置" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "需要忽略的命令行选项:" #: optiondialog.cpp:1568 #, fuzzy msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "当KDiff3被其他工具使用时需要忽略的命令行选项。\n" "多个选项请用“;\"分隔。这可以避免出现未知参数的错误。" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "可以用ESC键退出" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "快速退出方法。\n" "给那些习惯使用ESC键退出的人使用。" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "集成到 ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "集成到IBM Rational ClearCase。修改ClearCase “lib/mgrs”下的“map”文件(仅当" "ClearCase的“bin”目录在访问路径中时才可以使能)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "取消与 ClearCase 的集成" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "集成到 ClearCase 之前恢复老的“map”文件。" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "不兼容字体" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "自愿冒险继续" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "选择另一种字体" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "这将重置全部选项,而不仅是当前主题的选项。" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "预处理程序命令:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "你所选的以下选项可能会更改数据:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "大多数情况下合并应该不会用到这些选项。\n" "您想禁用这些设置还是继续激活这些设置?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "合并时会造成不安全的选项" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "在合并时使用这些选项" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "禁用不安全的选项" #: pdiff.cpp:300 msgid "Loading A" msgstr "加载 A" #: pdiff.cpp:304 msgid "Loading B" msgstr "加载 B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff:A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linediff:A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "加载 C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff:B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff:A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linediff:B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linediff:A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "全部输入文件包含相同文本,但二进制不相同。" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "文件%1和%2文本相同,但二进制数据不相同。\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "一些输入文件不是纯文本文件。\n" "注意 KDiff3-merge 不适用用于二进制数据。\n" "继续则需您自己承担风险。" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "放弃" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "正在打开文件..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "打开文件错误" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "剪切所选内容..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "复制所选内容到剪贴板..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "插入剪贴板内容..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "保存并继续" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "不保存继续" #: pdiff.cpp:2018 msgid "Search complete." msgstr "搜索完成。" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "搜索完成" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "未在任何 diff 输入窗口选择内容。" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "添加手动 Diff 区域时出错" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "无法初始化 KDiff 组件!\n" "通常为安装错误。详细内容请阅读源码包内的 README 文件。" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "KDE 中国" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "kde-china@kde.org" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "配置 KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "主工具栏" #~ msgid "Directory Merge" #~ msgstr "目录合并" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "开源软件国际化简体中文组(http://i18n.linux.net.cn)" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "i18n-translation@list.linux.net.cn" #~ msgid "Enables/disables the toolbar" #~ msgstr "启用/禁止工具栏" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "文件 A 和 B 二进制数据相同。\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "文件 A 和 C 二进制数据相同。\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "文件 A 和 C 文本相同。\n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "文件 B 和 C 二进制数据相同。\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "文件 B 和 C 文本相同。\n" #~ msgid "Preserve carriage return" #~ msgstr "保留回车" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "如果存在,显示回车字符“\\r”。\n" #~ "这个选项帮助比较在不同操作系统下修改的文件。" #~ msgid "Diff and Merge" #~ msgstr "Diff 和 Merge" #~ msgid "Save Directory Merge State ..." #~ msgstr "目录合并" #~ msgid "Load Directory Merge State ..." #~ msgstr "目录合并" #~ msgid "Synchronize Directories" #~ msgstr "同步目录" #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "复制较新而不合并(不安全)" #~ msgid "List only deltas" #~ msgstr "仅列出 delta" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "未更改的文件和目录不会在列表显示。" #~ msgid "no selection" #~ msgstr "自动复制选择" #~ msgid "Manually match lines" #~ msgstr "手动选择" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "没有效果。为与某些工具兼容而设。" #~ msgid "For compatibility with certain tools." #~ msgstr "为与某些工具兼容。" #~ msgid "Colors in Editor & Diff Output" #~ msgstr "编辑器和 Diff 输出颜色" kdiff3-0.9.97/po/nb/0000755000175100001440000000000011626145654013347 5ustar joachimuserskdiff3-0.9.97/po/nb/kdiff3plugin.po0000644000175100001440000000574711626145607016307 0ustar joachimusers# Translation of kdiff3plugin to Norwegian Bokmål # # Bjørn Steensrud , 2008, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-15 15:58+0200\n" "Last-Translator: Bjørn Steensrud \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Sammenlikne med %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Flett sammen med %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Lagre «%1» til senere" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-veis fletting med basis" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Sammenlikne med …" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Tøm liste" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Sammenlikne" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3-veis sammenlikning" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Om programtillegget for KDiff3-meny …" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Programtillegg for KDiff3-meny: Copyright © 2008 Joachim Eibl\n" "KDiff3 nettsted: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare " "With\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Bruke utvidelsen av kontekstmenyen:\n" "For enkel sammenlikning av to markerte filer velg «Sammenlikne».\n" "Hvis den andre fila ligger et annet sted «Lagre» den første fila til senere. " "Den dukker opp i undermenyen «Sammenlikne med. Bruk deretter «Sammenlikne " "med» på den andre fila.\n" "En 3-veis fletting gjøres ved å «Lagre» basisfila, deretter grenen som skal " "flettes inn og velg «3-veis fletting med basis» på den andre grenen, som " "brukes som målfil.\n" "Det samme gjelder sammenlikning og fletting av mapper." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Om programtillegget for KDiff3-meny" kdiff3-0.9.97/po/nb/CMakeLists.txt0000644000175100001440000000016311626145607016105 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(nb ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/nb/kdiff3fileitemactionplugin.po0000644000175100001440000000614011626145607021210 0ustar joachimusers# Translation of kdiff3fileitemactionplugin to Norwegian Bokmål # # Bjørn Steensrud , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-07 15:03+0200\n" "Last-Translator: Bjørn Steensrud \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 …" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Sammenlikne med %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Flett sammen med %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Lagre «%1» til senere" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "3-veis fletting med basis" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Sammenlikne med …" #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Tøm liste" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Sammenlikne" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "3-veis sammenlikning" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Om programtillegget for KDiff3-meny …" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Programtillegg for KDiff3 filhandling: Copyright © 2011 Joachim Eibl\n" "KDiff3 nettsted: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Bruke utvidelsen av kontekstmenyen:\n" "For enkel sammenlikning av to markerte filer velg «Sammenlikne».\n" "Hvis den andre fila ligger et annet sted «Lagre» den første fila til senere. " "Den dukker opp i undermenyen «Sammenlikne med. Bruk deretter «Sammenlikne " "med» på den andre fila.\n" "En 3-veis fletting gjøres ved å «Lagre» basisfila, deretter grenen som skal " "flettes inn og velg «3-veis fletting med basis» på den andre grenen, som " "brukes som målfil.\n" "Det samme gjelder sammenlikning og fletting av mapper." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Om programtillegget for KDiff3 filhandling" kdiff3-0.9.97/po/nb/kdiff3.po0000644000175100001440000023553611626145607015071 0ustar joachimusers# Translation of kdiff3 to Norwegian Bokmål # # Knut Yrvin , 2003. # Bjørn Steensrud , 2006, 2008, 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-15 15:58+0200\n" "Last-Translator: Bjørn Steensrud \n" "Language-Team: Norwegian Bokmål \n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Fortsett" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Avbryt" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Avslutt" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Hjelp" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Standardverdier" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Fil" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Rediger" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "M&appe" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "F&lytting" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iffvisning" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Flett" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Vindu" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Innstillinger" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hjelp" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Om" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "F&orfatter" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Takk til" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Flettehandling på gjeldende element" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Synk-handling på gjeldende element" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Åpne" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Lagre" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Lagre som …" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Skriv ut …" #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Klipp ut" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopier" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Lim inn" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Velg alt" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Vis verktøylinje" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Vis &statuslinja" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Sett opp  %1 …" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Om" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Finn" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Finn neste" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Velg skrift" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Du har valgt en skrift med variabel bredde.\n" "\n" "Fordi dette programmet ikke håndterer skrifter med\n" "variabel bredde riktig, kan du få vansker med redigering.\n" "\n" "Vil du fortsette, eller vil du velge en annen skrift." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Ikke kompatibel skrift." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Fortsett på egen risiko" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Velg en annen skrift" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Mer dokumentasjon finnes i Hjelp-menyen eller undermappa doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3-bruk" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Overse" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Avslutt" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Klarte ikke å skrive fra utklippstavla til midlertidig fil." #: diff.cpp:255 msgid "From Clipboard" msgstr "Fra utklippstavla" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Forventer mellomrom etter avsluttende hermetegn." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Hermetegn stemmer ikke overens." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Uventet hermetegn inne i argument." #: diff.cpp:503 msgid "No program specified." msgstr "Ikke noe program oppgitt." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Forarbeidet muligens mislykket. Se denne kommandoen:\n" "\n" " %1\n" "\n" "Kommandoen for forarbeide blir nå slått av." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Forarbeidet med å samordne linjer muligens mislykket. Se denne kommandoen:\n" "\n" " %1\n" "\n" "Forarbeide-kommandoen for linjesamordning blir nå slått av." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Datatap-feil:\n" "Hvis det kan gjenskapes, vennligst kontakt forfatteren.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Alvorlig intern feil" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Blanding av lenker og normale filer." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Lenke: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Størrelse: " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Dato og størrelse: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Klarte ikke opprette midlertidig kopi av %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Klarte ikke åpne %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Sammenlikner fil …" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Feil ved lesing fra %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Navn" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Handling" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Uløst" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Løst" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Ikkehvitt" #: directorymergewindow.cpp:359 msgid "White" msgstr "Hvitt" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Nå utfører du en mappefletting. Er du sikker på at du vil avbryte flettingen " "og lese gjennom mappa på nytt?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Advarsel" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Les på nytt" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Fortsett fletting" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Klarte ikke åpne mapper:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Mappe A «%1» finnes ikke eller er ikke en mappe.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Mappe B «%1» finnes ikke eller er ikke en mappe.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Mappe C «%1» finnes ikke eller er ikke en mappe.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Feil ved åpning av mappe" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Målmappa må være en annen enn A eller B når tre mapper flettes.\n" "Kontroller igjen før du fortsetter." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameter-advarsel" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Leser mapper …" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Leser mappe A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Leser mappe B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Leser mappe C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Noen undermapper var ikke lesbare i" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Kontroller rettigheter på undermappene." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Klar." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status for mappesammenlikning" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Antall undermapper:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Antall like filer:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Antall forskjellige filer:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Antall manuelle flettinger:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Dette påvirker alle flettehandlinger." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Endre alle flette-handlinger" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Arbeider " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Gjenstår." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Kopier A til B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Kopier B til A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Slett A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Slett B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Slett A & B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Flett til A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Flett til B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Flett til A & B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Slett (hvis det finnes)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Flett sammen" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Flett (manuelt)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Feil: Konflikt mellom filtyper" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Feil: Endret og slettet" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Feil: Datoene er like, men ikke filene." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Denne handlinga er ikke mulig nå." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Handling ikke mulig" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Dette skulle aldri skje: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Hvis du vet hvordan dette kan gjenskapes, ta kontakt med programforfatteren." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programfeil" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Det oppsto en feil under kopiering.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Feil" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Flettefeil" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Feil." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Ferdig." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Ikke lagret." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Ukjent flettehandling. (Dette må aldri skje!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Ukjent flettehandling." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Flettingen skal til å starte.\n" "\n" "Velg «Gjør det» hvis du har lest instruksjonene og vet hva du gjør.\n" "Velg «Simuler det» for å se hva som vil skje.\n" "\n" "Vær oppmerksom på at dette programmet er i beta-status og det er OVERHODET " "INGEN GARANTI! Ta sikkerhetskopi av vitale data!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Starter fletting" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Gjør det" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simuler det" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Det markerte elementet har forskjellig type i de forskjellige mappene. Velg " "hva som skal gjøres." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Filene er ulike men har samme dato for siste endring. Velg hva som skal " "gjøres." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Det markerte elementet ble endret i en mappe og slettet i en annen. Velg hva " "som skal gjøres." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "Denne handlinga er ikke mulig nå fordi en mappefletting pågår." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Det var en feil i siste steg.\n" "Vil du fortsette med elementet som ga feil, eller hoppe over det?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Fortsett fletting etter feil" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Fortsett med siste element" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Hopp over element" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Hoppet over." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Pågår …" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Flettehandling fullført." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fletting fullført" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulert fletting fullført. Se etter om du er enig i de foreslåtte " "handlingene." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Det oppsto en feil. Trykk OK for å se detaljerte opplysninger.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Feil: Under sletting av %1: oppretting av sikkerhetskopi mislyktes." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "slett mappe rekursivt( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "slett ( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Feil: mappesletting mislyktes under forsøk på å lese mappa." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Feil: rmdir( %1 ) mislyktes." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Feil: sletting mislyktes." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "manuell fletting( %1, %2, %3 → %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Merk: Etter en manuell fletting bør brukeren fortsette ved å trykke F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Feil: kopiering (%1 → %2) mislyktes. Eksisterende mål kunne ikke slettes." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 → %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Feil: copyLink mislyktes. Det er ikke støtte for nettverkslenker ennå." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Feil: copyLink mislyktes." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopier(%1 → %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Feil under navneendring( %1 → %2 ): Kan ikke slette eksisterende mål." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "endre navn ( %1 → %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Feil: navneendring mislyktes." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Feil ved oppretting av mappe %1. Kan ikke slette eksisterende fil." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Lag mappe( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Feil under oppretting av mappe." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Mål" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Mappe" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Type" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Størrelse" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Siste endring" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Lenkemål" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Fil" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "ikke tilgjengelig" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (mål): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (basis): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (mål): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (mål) :" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Mål: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Lagre status for mappefletting som …" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Start/fortsett mappefletting" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Kjør handling for gjeldende element" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Sammenlikne valgt fil" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Flett gjeldende fil" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Flett\n" "Fil" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Brett sammen alle undermapper" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Fold ut alle undermapper" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Velg A for alle elementer" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Velg B for alle elementer" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Velg C for alle elementer" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Auto-velg handling for alle elementer" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Ingen handling for alle elementer" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Vis identiske filer" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identiske\n" "filer" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Vis forskjellige filer" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Vis filer bare i A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Filer \n" "bare i A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Vis filer bare i B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Filer \n" "bare i B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Vis filer bare i C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Filer \n" "bare i C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Sammenlikne uttrykkelig valgte filer" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Flett uttrykkelig valgte filer" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ikke gjør noe" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Slett A && B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Flett til A && B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorert. (Selvvalgt.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Verktøy for sammenlikning og fletting av filer og mapper" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002–2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Feilrettelser. Debian vedlikeholder" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows-installerer" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-hjelp" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Utklippstavle-lapp" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-hjelp" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Class CvsIgnoreList fra Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Class StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Lapp for farge på mappelikhet" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Fiks for langsom oppstart på Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff-utvidelse for Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intens testing, bruk og tilbakemelding" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac-støtte" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE 4-porting" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "OS2 port" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Mange takk til dem som rapporterte feil og bidro med ideer!" #: main.cpp:196 msgid "Merge the input." msgstr "Flett inn-data." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Uttrykkelig angitt basefil. For kompatibilitet med visse verktøy." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Utdata-fil. Impliserer -m. F.eks: -o nyfil.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Utdata-fil, igjen. (For kompatibilitet med visse verktøy)." #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "Ingen GUI hvis alle konflikter kan auto-løses. (Trenger -o fil)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Ikke løs konflikter automatisk. (For kompatibilitet …)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Synlig navnerstatning for inn-fil 1 (basis)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Synlig navnerstatning for inn-fil 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Synlig navnerstatning for inn-fil 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "Alternativ synlig navnerstatning. Angi en gang for hver inngang." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Overstyr en innstilling. Bruk en gang for hver innstilling. F.eks.: --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Vis liste over oppsettsinnstillinger og gjeldende verdier." #: main.cpp:208 msgid "Use a different config file." msgstr "Bruk en annen oppsettsfil." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "fil 1 som skal åpnes (basis, hvis ikke oppgitt via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "fil 2 som skal åpnes" #: main.cpp:213 msgid "file3 to open" msgstr "fil 3 som skal åpnes" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Antall uløste konflikter som gjenstår: %1 ( herav %2 tomrom )" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Utdata er blitt endret.\n" "Hvis du fortsetter mister du endringene dine." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Alle inn-filer er binært like." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Alle inn-filer inneholder samme tekst." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Filene %1 og %2 er binært like.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Filer %1 og %2 har lik tekst. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Totalt antall konflikter: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Antall automatisk løste konflikter: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Antall uløste konflikter :" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikter" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Ikke alle konflikter er løst ennå.\n" "Fila er ikke lagret.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Gjenstående konflikter" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Det er en konflikt mellom stilene for linjeslutt. Velg manuelt stil for " "linjeslutt.\n" "Fila er ikke lagret.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Det lyktes ikke å lage sikkerhetskopi. Fila er ikke lagret." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Feil ved fillagring" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Feil ved skriving." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Utdata" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Endret]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Koding for lagring" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Linjeavslutning:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Kodek fra" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Klarte ikke finne filer for sammenlikning." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Under forsøk på å lage sikkerhetskopi lyktes det ikke å slette \n" "en tidligere kopi. Filnavn: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Under forsøk på å lage sikkerhetskopi lyktes det ikke å endre navn.\n" "Filnavn: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Henter filstatus: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Leser fil: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Skriver fil: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Slapp opp for minne" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Lager mappe: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Fjerner mappe: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Fjerner fil: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Oppretter symbolsk lenke: %1 → %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Endrer navn på fil: %1 → %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopierer fil: %1 → %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "Feil under filkopiering: Klarte ikke åpne fil for lesing. Filnavn: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Feil under filkopiering: Klarte ikke åpne fil for skriving. Filnavn: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Feil under filkopiering: Lesing mislyktes. Filnavn: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Feil under filkopiering: Skriving mislyktes. Filnavn: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Leser mappe: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Lister mappe: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Avbryt" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linje" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Linje ikke tilgjengelig" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Tegnkoding:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Øverste linje" #: difftextwindow.cpp:1769 msgid "End" msgstr "Slutt" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Gjeldende oppsett:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Feil i oppsett:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "--auto brukt, men ingen utdatafil er oppgitt." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "--auto ignorert for mappesammelikning." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Lagring mislyktes." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Klarte ikke åpne disse filene:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Feil ved åpning av fil" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Åpner dokumentere for sammenlikning …" #: kdiff3.cpp:479 msgid "Reload" msgstr "Last på nytt" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Lagrer fletteresultatet. Alle konflikter må løses!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Lagrer gjeldende dokument som …" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Skriv ut forskjellene" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Avslutter programmet" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Klipper ut det markerte og legger det på utklippstavla" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopierer det markerte til utklippstavla" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Limer inn innhold fra utklippstavla til gjeldende posisjon" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Velg alt i gjeldende vindu" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Søk etter en streng" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Søk igjen etter strengen" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Slår statuslinja av/på" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Sett opp KDiff3 …" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Gå til gjeldende Delta" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Gjeldende\n" "Delta" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Gå til første Delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Første\n" "Delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Gå til siste Delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Siste\n" "Delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "(Hopper over forskjeller i tomrom når «Vis tomrom» er slått av.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Hopper ikkeover forskjeller i tomrom selv når «Vis tomrom» er slått av.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Gå til forrige Delta" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Forrige\n" "Delta" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Gå til neste Delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Neste\n" "Delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Gå til forrige konflikt" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Forrige\n" "lonflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Gå til neste konflikt" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Neste\n" "konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Gå til forrige uløste konflikt" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Forrige\n" "uløste" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Gå til neste uløste konflikt" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Neste\n" "uløste" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Velg linje(r) fra A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Velg\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Velg linje(r) fra B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Velg\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Velg linje(r) fra C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Velg\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Gå automatisk til neste uløste konflikt etter at kildene er valgt" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Auto\n" "neste" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Vis mellomrom og tabulatortegn for forskjeller" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Tomroms\n" "tegn" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Vis tomrom" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Tomroms\n" "deltaer" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Vis linjenumre" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Linje\n" "numre" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Velg A overalt" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Velg B overalt" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Velg C overalt" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Velg A for alle uløste konflikter" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Velg B for alle uløste konflikter" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Velg C for alle uløste konflikter" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Velg A for alle uløste tomromkonflikter" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Velg B for alle uløste tomromkonflikter" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Velg C for alle uløste tomromkonflikter" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Løs enkle konflikter automatisk" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Sett deltaer til konflikter" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Kjør autofletting med regulære uttrykk" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Løs opp historiekonflikter automatisk" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Splitt differansen ved utvalget" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Slå sammen valgte differ" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Vis vindu A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Vis vindu B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Vis vindu C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fokus på neste vindu" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normal oversikt" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Oversikt A mot B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Oversikt A mot C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Oversikt B mot C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Ordbryt i diff-vinduer" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Legg til manuell diff-innretting" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Tilbakestill all manuell diff-innretting" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fokus på forrige vindu" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Bytt om splitt-orientering" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Mappe og tekst delt visning" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Bytt mellom mappe- og tekstvisning" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Fletteresultatet er ikke lagret." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Lagre og avslutt" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Avslutt uten lagring" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Fletteresultatet kunne ikke lagres." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Du holder på med en mappefletting. Er du sikker på at du vil avbryte?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Lagrer fil …" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Lagrer fil med nytt filnavn …" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Utskrift er ikke implementert." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Skriver ut …" #: kdiff3.cpp:956 msgid "Selection" msgstr "Utvalg" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Utskrift fullført." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Utskrift avbrutt." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Avslutter …" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Slår verktøylinje av/på …" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Slå statuslinje av/på …" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Basis):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fil …" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Mappe …" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (valgfri):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Bytt/kopier navn …" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Bytt om %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Kopier %1->Utdata" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Bytt om %1<->utdata" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Utdata (valgfri):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Sett opp …" #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Søketekst:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Skill mellom store og små bokstaver" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Søk i A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Søk i B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Søk i C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Utdata fra søk" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Søk" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Prøv ut regulært uttrykk" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Regulært uttrykk for automatisk fletting:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Eksempel på autoflette-linje:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Kopier hit en linje slik som brukt i filene dine, for å teste autofletting." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultat av søk:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Regulært uttrykk for start på historien:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Eksempel på startlinje for historie (med innledende kommentar):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopier en historie-startlinje fra en av filene dine,\n" "ta med den innledende kommentaren." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Regulært uttrykk for start på historieoppføring:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Sorteringsrekkefølge for historienøkler:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Eksempel på startlinje for historieoppføring (uten innledende kommentar):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopier en startlinje for historieoppføring fra en av filene dine,\n" "men ta bort den innledende kommentaren." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resulterende sorteringsnøkler:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Tilslag." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Ikke tilslag." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Begynn- og sluttparenteser stemmer ikke overens i regulært uttrykk." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Endre dette hvis tegn som ikke er i ASCII ikke blir vist riktig." #: optiondialog.cpp:465 msgid "Configure" msgstr "Sett opp" #: optiondialog.cpp:531 msgid "Font" msgstr "Skrift" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Skrift for redigering og utdata" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kursivskrift for deltaer" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Velger kursivversjon av skrifta for forskjeller.\n" "Hvis skrifta ikke finnes i kursiv, så gjør dette ingenting." #: optiondialog.cpp:568 msgid "Color" msgstr "Farge" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Fargeinnstillinger" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Redigering og forskjellsvisning:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Forgrunnsfarge:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Bakgrunnsfarge:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Bakgrunnsfarge for forskjell:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Farge A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Farge B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Farge C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Konfliktfarge:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Bakgrunnsfarge for gjeldende område:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Bakgrunnsfarge for gjeldende forskjellsområde:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Farge for manuelt innrettede forskjellsområder:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Mappesammenlikning:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Farge for nyeste fil:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Endring av denne fargen får bare virkning når neste mappe-sammenlikning " "utføres." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Farge for eldste fil:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Farge for filer med midlere alder:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Farge for manglende filer:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Redigerer" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Redigeringsoppsett" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "TAB setter inn mellomrom" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "På: tab-tasten setter inn passende antall mellomrom.\n" "Av: Et tab-tegn settes inn." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "TAB-størrelse:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automatisk innrykk" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "På: Innrykket for forrige linje brukes for en ny linje.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Autokopier utvalg" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "På: Alt som markeres skrives straks til utklippstavla.\n" "Av: Du må uttrykkelig kopiere, f.eks. med Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Oppdag automatisk" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Bestemmer tegn for slutt på linja når en fil lagres.\n" "DOS/Windows: CR+LF; UNIX: LF; med CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Innstillinger for Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Behandle som tomrom." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorer tall" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignorer sifre når linjene søkes opp. (Likner Ignorer tomrom)\n" "Kan hjelpe til å sammenlikne filer med numeriske data." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorer C/C++-kommentarer" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Behandle kommentarer i C/C++ som tomrom." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ikke ta hensyn til store/små bokstaver" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Behandle endringer små/store som endring i tomrom («a»<=>«A»)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Forarbeide-kommando:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "Selvvalgt forarbeide. (Detaljer finnes i dokumentasjonen)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Linjesøkende forarbeide, kommando:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Denne forbehandleren brukes bare når linjer søkes.\n" "(Detaljer i dokumentasjonen)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Grundig (langsommere)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Slår på --minimal for det eksterne diff-programmet.\n" "Analyse av store filer blir mye langsommere." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Innrett B og C for 3 inn-filer" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Forsøk å rette inn B og C når tre inn-filer sammenliknes eller flettes.\n" "Ikke anbefalt for fletting fordi fletting kan bli mer komplisert.\\ " "(Standard er av.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Innstillinger for fletting" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Forsinkelse for auto-avansering (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Når det brukes auto-avansering vises resultatet av gjeldende utvalg \n" "i oppgitt tid, før det hoppes til neste konflikt. Verdiområde fra 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Vis informasjonsdialoger" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Vis en dialog med informasjon om antall konflikter." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Standard for 2-fils tomromsfletting:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Manuelt valg" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Tillat flettealgoritmen å velge inn-data automatisk for endringer som bare " "gjelder tomrom." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Standard for 3-fils tomromsfletting:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Automatisk fletting med regulært uttrykk" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regulært uttrykk for linjer der KDiff3 skal velge én kilde automatisk.\n" "Når en linje med konflikt stemmer med det regulære uttrykket, så \n" "velges C hvis tilgjengelig, ellers B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Kjør autofletting med regulære uttrykk ved flettestart" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Kjør autoflettingen med regulære uttrykk med en\n" "gang når en fletting begynner.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fletting av historien fra versjonskontroll" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regulært uttrykk for start på oppføringa i versjonskontroll-historien.\n" "Denne linja inneholder som regel nøkkelordet \"$Log$\".\n" "Standard: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history entries." "\n" "See the documentation for details." msgstr "" "En historieoppføring består av flere linjer.\n" "Oppgi et regulært uttrykk som finner første linje (uten kommentaren foran).\n" "Bruk parenteser for å binde sammen nøkler du vil bruke til sortering.\n" "Hvis det står tomt regner KDiff3 med at det er blanke linjer mellom " "historieoppføringene.\n" "Se i dokumentasjonen etter detaljer." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Flettesortering av historien" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Sorter versjonskontroll-historien etter en nøkkel." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Nøkkelrekkefølge for sortering av historiestart:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Hvert parentespar brukt i det regulære uttrykket for start på " "historieoppføringa\n" "angir en nøkkel som kan brukes til sortering.\n" "Oppgi en liste over nøkler (nummerert i den rekkefølge de opptrer\n" "med start på 1), med «,» som skilletegn (f.eks. \"4,5,6,1,2,3,7\").\n" "Står dette tomt blir det ikke sortert.\n" "Detaljer finnes i dokumentasjonen." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Flett versjonshistorien når flettingen begynner" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "Kjør autofletting på versjonshistorien når fletting begynner." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Maks antall oppføringer i historien:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Stopp etter det oppgitte antallet. Bruk -1 for ubegrenset antall oppføringer." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Test de regulære uttrykkene" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Irrelevant flettekommando:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Hvis det er oppgitt, kjøres dette skriptet etter\n" "autofletting når ingen andre relevante endringer \n" "ble funnet. Kalles med parametre filnavn1 filnavn2 filnavn3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Automatisk lagring og avslutting etter fletting uten konflikter" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Hvis KDiff3 ble startet for filfletting fra kommandolinja og alle " "konflikter\n" "kan løses uten å spørre brukeren, så lagre og avslutt automatisk.\n" "(Likner kommandolinjevalget «--auto»." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Mappe" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekursive mapper" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Om undermapper skal analyseres eller ikke." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Filmønster(e):" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mønster(e) for filnavn som skal analyseres.\n" "Jokertegn: «*» og «?»\n" "Flere mønstre kan oppgis med «;» som skilletegn" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Fil-antimønster(e):" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mønster(e) for filer som ikke skal analyseres. \n" "Jokertegn: «*» og «?»\n" "Flere mønstre kan oppgis med «;» som skilletegn" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Mappe-antimønster(e) :" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mønster(e) for mapper som ikke skal analyseres. \n" "Jokertegn: «*» og «?»\n" "Flere mønstre kan oppgis med «;» som skilletegn" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Bruk .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Utvider antimønsteret til alt som CVS ville ignorere.\n" "Dette kan gjøres pr. mappe med lokale «.cvsignore»-filer." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Finn skjulte filer og mapper" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Finner filer og mapper som har attributtet «skjult." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Finner filer og mapper med navn som begynner med «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Følg fil-lenker" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "På: Sammenlikne filer som lenkene peker på.\n" "Av: Sammenlikne lenkene." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Følg mappelenker" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "På: Sammenlikne mapper lenkene peker på.\n" "Av: Sammenlikne lenkene." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Store/små bokstaver i filnavn" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Mappesammenlikningen behandler filer og mapper når navnene er like.\n" "Slå på dette hvis navnene er versalvâre – dvs store/små bokstaver må være " "like. (Standard for Windows er av, ellers på.)v" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Hvordan filer sammenliknes" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binær sammenlikning" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binær sammenlikning av hver fil. (Standard)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Full analyse" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Gjør en full analyse og vis statistikk i ekstra kolonner.\n" "(Langsommere enn binær sammenlikning, mye langsommere for binære filer.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Stol på størrelsen og endringsdatoen (utrygt)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Anta at filer er like hvis endringsdatoene og størrelsene er like.\n" "Filer med samme innhold men forskjellig endringsdato blir vist som " "forskjellige.\n" "Nyttig for store mapper eller langsomme nett." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Stol på størrelse og dato, men bruk binær sammenlikning hvis datoen ikke " "stemmer (utrygt)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Anta at filer er like hvis endringsdatoene og størrelsene er like.\n" "Hvis datoene ikke er like, men størrelsene er like, så bruk binær " "sammenlikning.Nyttig for store mapper eller langsomme nett." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Stol på størrelsen (utrygt)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Anta at filer er like hvis størrelsene er like.\n" "Nyttig for store mapper eller langsomme nett når datoen endres under " "nedlasting." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synkroniser mapper" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Kan lagre filer i begge mapper slik at begge\n" "mappene er like etterpå. Dette virker bare hvis\n" "to mapper sammenliknes uten å oppgi et mål." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Tomromsforskjeller betraktes som like" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Hvis filer er forskjellige bare i tomrom, betrakt dem som\n" "like. Dette er bare aktivt når det kjøres full analyse." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Kopier den nyeste i stedet for å flette (utrygt)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Ikke se inni filene, bare bruk den nyeste fila.\n" "(Bruk dette bare når du vet hva du gjør!)\n" "Bare virksomt når to mapper sammenliknes." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Ta sikkerhetskopi av filer (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Hvis en ny fil ville bli lagret oppå en gammel, så får den gamle\n" "fila nytt navn med «.orig» til slutt i stedet for å bli slettet." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regionale innstillinger" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Språk (krever omstart av KDiff3)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Velg språk for GUI-strengene, eller «Auto».\n" "KDiff3 må stoppes og startes på nytt for at dette skal få virkning." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Bruk samme koding for alt:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Hvis dette er slått på kan alle kodinger endres ved bare å endre den første." "\n" "Slå av hvis det trengs separate innstillinger." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Merk: Lokal koding er " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Filkoding for A :" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Hvis dette er slått på blir Unicode oppdaget (UTF-16 eller UTF-8).\n" "Hvis fila ikke er i Unicode, så blir den valgte kodingen brukt som reserve.\n" "(Unicode oppdages avhengig av de første tegnene i en fil.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Auto-oppdag Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Filkoding for B :" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Filkoding for C :" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Filkoding for flettet resultat og lagring:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Autovalg" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Hvis dette er slått på, så brukes kodingen fra inndata-filene.\n" "Hvis en entydig koding ikke kan bestemmes, vil et dialogvindu be brukeren " "velge en koding for lagring." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Filkoding for forbehandlingsfiler:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Høyre mot venstre-språk" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Noen språk leses fra høyre mot venstre.\n" "Denne innstillinga endrer visning og redigering tilsvarende." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integrasjon" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Integrasjonsinnstillinger" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Kommandolinjeparametre som skal ignoreres:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Liste over kommandolinje-parametre som skal hoppes over når KDiff3 brukes av " "andre verktøy.\n" "Flere verdier kan oppgis atskilt med «;»\n" "Da forsvinner feilmeldinga «Ukjent parameter»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Avslutt også med Escape-tasten" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Rask måte å avslutte på.\n" "For de som er vant til å bruke Escape-tasten." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrer med ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integrer med Rational ClearCase fra IBM.\n" "Dette endrer «map»-fila i ClearCases undermappe «lib/mgrs»\n" "(Virker bare hvis ClearCases «bin»-mappe ligger i søkestien.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Fjern ClearCase-integrering" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Legg tilbake den gamle «map»-fila som ble brukt før ClearCase-integrering." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Ikke kompatibel skrift" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Fortsett på egen risiko" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Velg en annen skrift" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Dette tilbakestiller alle valg, ikke bare dem i dette emnet." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Forbehandlingskommando :" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Følgende innstillinger som er valgt kan endre data:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Ved fletting er nok ikke dette ønsket.\n" "Vil du slå av disse innstillingene eller fortsette med dem slått på?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Utrygg innstilling for fletting" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Bruk disse innstillingene under fletting" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Slå av utrygge innstillinger" #: pdiff.cpp:300 msgid "Loading A" msgstr "Laster A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Laster B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linjediff A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Laster C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linjediff B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linjediff A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "Alle inn-filene inneholder samme tekst, men er ikke binært like." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Filene %1 og %2 har lik tekst, men er ikke binært like. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Det ser ut til at noen av inndata-filene ikke er rene tekstfiler.\n" "Merk at KDiff3-fletting ikke er beregnet for binære data.\n" "Fortsett på egen risiko." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Noen tegn i inndata kunne ikke gjøres om til gyldig unicode.\n" "Kanskje du bruker feil kodek (f.eks. UTF-8 for filer som ikke er i UTF-8).\n" "Er du usikker, så ikke lagre resultatet. Fortsett på egen risiko.\n" "Inndata-filer som er påvirket er i %1. " #: pdiff.cpp:1080 msgid "Abort" msgstr "Avbryt" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Åpner filer …" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Feil ved filåpning" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Klipper ut utvalget …" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopierer utvalg til utklippstavla …" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Setter inn fra utklippstavla …" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Lagre og fortsett" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Fortsett uten lagring" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Søk fullført." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Søk fullført" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Ingenting er valgt i noe av inndata-vinduene." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Feil oppsto ved tillegg av manuelt diff-område" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Klarte ikke klargjøre KDiff3-part.\n" "Dette skyldes oftest et installasjonsproblem. Det står mer om dette i README-" "fila i kildekoden." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Klaus Ade Johnstad" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "klaus@skolelinux.no" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Sett opp KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Hovedverktøylinje" kdiff3-0.9.97/po/lt/0000755000175100001440000000000011626145654013367 5ustar joachimuserskdiff3-0.9.97/po/lt/kdiff3plugin.po0000644000175100001440000000416311626145607016316 0ustar joachimusers# Lithuanian translations for kdiff3plugin package. # This file is distributed under the same license as the kdiff3plugin package. # Andrius Štikonas , 2009. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-01-18 17:39+0200\n" "Last-Translator: Andrius Štikonas \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n" "%10>=2 && (n%100<10 || n%100>=20) ? 2 : 3);\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/lt/CMakeLists.txt0000644000175100001440000000016311626145607016125 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(lt ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/lt/kdiff3.po0000644000175100001440000017204211626145607015101 0ustar joachimusers# Lithuanian translation of the KDiff3 pakckage # # Remigijus Jarmalavičius , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-28 19:13+0300\n" "Last-Translator: Remigijus Jarmalavičius \n" "Language-Team: Lithuanian \n" "Language: lt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n%10==1 && n%100!=11 ? 1 : n" "%10>=2 && (n%100<10 || n%100>=20) ? 2 : 3);\n" "X-Generator: Lokalize 1.2\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Tęsti" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Atšaukti" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Išjungti" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Gerai" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Pagalba" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Failas" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Keisti" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Aplankas" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Langas" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Nustatymai" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Pagalba" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Apie" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utorius" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Atverti" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Išsaugoti" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Įrašyti kaip..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Spausdinti..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Iškirpti" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopijuoti" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Padėti" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Pažymėti viską" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Rodyti įrankinę" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Rodyti &būsenos juostą" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Konfigūruoti %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Apie" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Rasti" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Rasti kitą" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Pasirinkite šriftą" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Nesuderinamas šriftas." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Pasirinkite kitą šriftą" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignoruoti" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Išeiti" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "Iš iškarpinės" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Dydis. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Pavadinimas" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operacija" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Būsena" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Dėmesio" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 #, fuzzy msgid "Ready." msgstr "" "#-#-#-#-# kfindpart.po (kfindpart) #-#-#-#-#\n" "Pasiruošęs\n" "#-#-#-#-# kfilereplace.po (kfilereplace) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# k3b.po (k3b) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# pwmanager.po (pwmanager) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kdat.po (kdat) #-#-#-#-#\n" "Pasiruošęs.\n" "#-#-#-#-# kcron.po (kcron) #-#-#-#-#\n" "Pasiruošęs.\n" "#-#-#-#-# ksayit.po (ksayit) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kmouth.po (kmouth) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kmrml.po (kmrml) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kcoloredit.po (kcoloredit) #-#-#-#-#\n" "Pasiruošęs.\n" "#-#-#-#-# kverbos.po (kverbos) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kmail.po (kmail) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# ksync.po (ksync) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# dub.po (dub) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n" "Pasirengęs." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Apjungti" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Klaida" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Klaida." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Baigta." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipas" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Dydis" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Failas" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nieko nedaryti" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Trinti A ir B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2008 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2008 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac palaikymas" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 #, fuzzy msgid "KDE4 porting" msgstr "Nieko" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konfliktai" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Failo išsaugojimo klaida" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Išvestis" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Eilutės pabaigos stilius:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konfliktas" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Skaitomas failas: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Rašomas failas: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Nepakanka atminties" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Kuriamas aplankas: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Šalinamas aplankas: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Šalinamas failas: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Kuriama simbolinė nuoroda: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Pervadinamas failas: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopijuojamas failas: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Skaitomas aplankas:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Atšaukti" #: difftextwindow.cpp:403 msgid "Line" msgstr "Eilutė" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Viršutinė eilutė" #: difftextwindow.cpp:1769 msgid "End" msgstr "Pab" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Dabartinė konfigūracija:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Išsaugojimas nepavyko." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Failo atvėrimo klaida" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 #, fuzzy msgid "Reload" msgstr "" "#-#-#-#-# kfindpart.po (kfindpart) #-#-#-#-#\n" "Pasiruošęs\n" "#-#-#-#-# kfilereplace.po (kfilereplace) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# k3b.po (k3b) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# pwmanager.po (pwmanager) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kdat.po (kdat) #-#-#-#-#\n" "Pasiruošęs.\n" "#-#-#-#-# kcron.po (kcron) #-#-#-#-#\n" "Pasiruošęs.\n" "#-#-#-#-# ksayit.po (ksayit) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kmouth.po (kmouth) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kmrml.po (kmrml) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kcoloredit.po (kcoloredit) #-#-#-#-#\n" "Pasiruošęs.\n" "#-#-#-#-# kverbos.po (kverbos) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kmail.po (kmail) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# ksync.po (ksync) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# dub.po (dub) #-#-#-#-#\n" "Pasirengęs.\n" "#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n" "Pasirengęs." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 #, fuzzy msgid "Quits the application" msgstr "" "#-#-#-#-# k3b.po (k3b) #-#-#-#-#\n" "Išeina iš programos\n" "#-#-#-#-# kmag.po (kmag) #-#-#-#-#\n" "Baigs programos darbą\n" "#-#-#-#-# kmouth.po (kmouth) #-#-#-#-#\n" "Baigs programos darbą\n" "#-#-#-#-# kverbos.po (kverbos) #-#-#-#-#\n" "Baigs programos darbą\n" "#-#-#-#-# ksync.po (ksync) #-#-#-#-#\n" "Baigs programos darbą\n" "#-#-#-#-# umbrello.po (umbrello) #-#-#-#-#\n" "Baigs programos darbą" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Iškirps pažymėtą sritį ir padės į talpyklą" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Nukopijuos pažymėtą sritį į talpyklą" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Padės talpyklės turinį dabartinėje pozicijoje" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Įjungs arba išjungs būsenos juostą" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Konfigūruoti KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Eiti į ankstesnį konfliktą" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Ankstesnis\n" "konfliktas" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Eiti į kitą konfliktą" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Kitas\n" "konfliktas" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Pasirinkti\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Pasirinkti\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Pasirinkti\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "Iškerpamas žymėjimas..." #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Išsaugomas failas..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Failas įrašomas nauju pavadinimu..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Spausdinimas baigtas." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Spausdinama..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Pažymėjimas" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Spausdinimas baigtas." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Spausdinimas nutrauktas." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Išeinama..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Perjungti būsenos juostą..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Failas..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Konfigūruoti..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Gerai" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 #, fuzzy msgid "Case sensitive" msgstr "" "#-#-#-#-# kate.po (kate) #-#-#-#-#\n" "Skirti raidžių dydį\n" "#-#-#-#-# quanta.po (quanta) #-#-#-#-#\n" "Skirti raidžių dydį\n" "#-#-#-#-# kfilereplace.po (kfilereplace) #-#-#-#-#\n" "Skirti raidžių dydį\n" "#-#-#-#-# kbabel.po (kbabel) #-#-#-#-#\n" "Skiriant raidžių dydį\n" "#-#-#-#-# kopete.po (kopete) #-#-#-#-#\n" "Skirti raidžių dydį" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Ieškoti" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "Gerai" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unikodas" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "Konfigūruoti" #: optiondialog.cpp:531 msgid "Font" msgstr "Šriftas" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Spalva" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Spalvų nustatymai" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Priekinio plano spalva:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Fono spalva:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Spalva A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Spalva B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Spalva C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Konflikto spalva:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Redaktorius" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Langas" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "Iškerpamas žymėjimas..." #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignoruoti skaičius" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignoruoti C/C++ komentarus" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Aplankas" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sinchronizuoti aplankus" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "Iškerpamas žymėjimas..." #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "Operacija" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Nutraukti" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Atveriami failai..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Klaida atveriant bylą" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Iškerpamas žymėjimas..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopijuojama pažymėtą vietą į talpyklę..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Įterpiamas talpyklės turinys..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Andrius Štikonas" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "stikonas@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Konfigūruoti KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Pagrindinė įrankinė" kdiff3-0.9.97/po/sv/0000755000175100001440000000000011626145654013400 5ustar joachimuserskdiff3-0.9.97/po/sv/kdiff3plugin.po0000644000175100001440000000605611626145611016325 0ustar joachimusers# translation of kdiff3plugin.po to Swedish # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Stefan Asserhäll , 2008, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-02 21:06+0200\n" "Last-Translator: Stefan Asserhall \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "Kdiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Jämför med %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Sammanfoga med %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Spara '%1' till senare" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Trevägs sammanfogning med bas" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Jämför med..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Rensa lista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Jämför" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Trevägs jämförelse" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Om Kdiff3:s menyinsticksprogram..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3:s menyinsticksprogram: Copyright © 2008 Joachim Eibl\n" "KDiff3:s hemsida: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Hur man använder utökningen i den sammanhangsberoende menyn:\n" "För enkel jämförelse av två utvalda filer, välj \"Jämför\".\n" "Om den andra filen finns någon annanstans, \"Spara\" den första filen till " "senare. Den visas i undermenyn \"Jämför med...\". Använd därefter \"Jämför " "med\" för den andra filen.\n" "För en trevägs sammanfogning, \"Spara\" först basfilen, därefter grenen som " "ska sammanfogas och välj \"Trevägs sammanfogning med bas\" i den andra " "grenen, som kommer att användas som resultat.\n" "Detsamma gäller också för jämförelse och sammanfogning av kataloger." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Om Kdiff3:s menyinsticksprogram" kdiff3-0.9.97/po/sv/CMakeLists.txt0000644000175100001440000000016311626145611016131 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(sv ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/sv/kdiff3fileitemactionplugin.po0000644000175100001440000000622411626145611021237 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Last-Translator: Stefan Asserhall , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 17:00+0200\n" "Last-Translator: Stefan Asserhall \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "Kdiff3..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Jämför med %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Sammanfoga med %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Spara '%1' till senare" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Trevägs sammanfogning med bas" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Jämför med..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Rensa lista" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Jämför" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Trevägs jämförelse" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Om Kdiff3:s menyinsticksprogram..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Kdiff3-insticksprogram för filobjektåtgärder: Copyright © 2011 Joachim Eibl\n" "Kdiff3-hemsida: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Hur man använder utökningen av den sammanhangsberoende menyn:\n" "För enkel jämförelse av två utvalda filer, välj \"Jämför\".\n" "Om den andra filen finns någon annanstans, \"Spara\" den första filen till " "senare. Den visas i undermenyn \"Jämför med...\". Använd därefter \"Jämför " "med\" för den andra filen.\n" "För en trevägs sammanfogning, \"Spara\" först basfilen, därefter grenen som " "ska sammanfogas och välj \"Trevägs sammanfogning med bas\" i den andra " "grenen, som kommer att användas som resultat.\n" "Detsamma gäller också för jämförelse och sammanfogning av kataloger." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Om Kdiff3:s insticksprogram för filobjektåtgärder" kdiff3-0.9.97/po/sv/kdiff3.po0000644000175100001440000024207311626145611015107 0ustar joachimusers# translation of kdiff3.po to Swedish # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # # Stefan Asserhäll , 2004, 2005, 2006, 2007, 2008, 2009, 2010. # Stefan Asserhall , 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 16:56+0200\n" "Last-Translator: Stefan Asserhall \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Fortsätt" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Avbryt" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Avsluta" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Hjälp" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Förval" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Arkiv" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Redigera" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Katalog" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Förflyttning" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "&Jämförelsevy" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Sa&mmanfoga" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "Fö&nster" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "In&ställningar" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hjälp" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Om" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "&Upphovsman" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Tack till" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Sammanfogningsåtgärd för aktuellt objekt" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Synkroniseringsåtgärd för aktuellt objekt" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Öppna" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Spara" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Spara som..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Skriv ut..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Klipp ut" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopiera" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Klistra in" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Markera alla" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Visa verktygsrad" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Visa &statusrad" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Anpassa %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Om" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Sök" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Sök igen" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Välj teckensnitt" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Du valde ett teckensnitt med variabel bredd.\n" "\n" "Eftersom programmet inte hanterar teckensnitt med variabel bredd\n" "på ett riktigt sätt, kan du råka ut för problem vid redigering.\n" "\n" "Vill du fortsätta, eller vill du välja ett annat teckensnitt?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Olämpligt teckensnitt." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Fortsätt på egen risk" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Välj ett annat teckensnitt" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "För ytterligare dokumentation, se hjälpmenyn eller underkatalogen doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Användning av Kdiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorera" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Avsluta" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Skrivning av klippbordsdata till tillfällig fil misslyckades." #: diff.cpp:255 msgid "From Clipboard" msgstr "Från klippbord" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Förväntade mellanslag efter avslutande citationstecken." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Inga matchande citationstecken." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Oväntat citationstecken inne i argument." #: diff.cpp:503 msgid "No program specified." msgstr "Inget program angivet." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Preprocessing misslyckades möjligen. Kontrollera kommandot:\n" "\n" " %1\n" "\n" "Preprocessingkommandot inaktiveras nu." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Preprocessingen för radmatchning misslyckades möjligen. Kontrollera " "kommandot:\n" "\n" " %1\n" "\n" "Preprocessingen för radmatchning inaktiveras nu." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Dataförlustfel:\n" "Om det går att upprepa, kontakta upphovsmannen.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Allvarligt internt fel" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Blandning av länkar och normala filer." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Länk: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Storlek: " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Datum och storlek: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Att skapa tillfällig kopia av %1 misslyckades." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Öppna %1 misslyckades." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Jämför fil..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Fel vid läsning från %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Namn" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Åtgärd" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Olöst" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Löst" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Inte blank" #: directorymergewindow.cpp:359 msgid "White" msgstr "Blank" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Du håller för närvarande på med att sammanfoga kataloger. Är du säker på att " "du vill avbryta den och avsöka katalogen igen?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Varning" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Avsök igen" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Fortsätt sammanfoga" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Öppna katalogerna misslyckades:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Katalog A \"%1\" finns inte eller är inte en katalog.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Katalog B \"%1\" finns inte eller är inte en katalog.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Katalog C \"%1\" finns inte eller är inte en katalog.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Fel vid öppna katalog" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Målkatalogen får inte vara samma som A eller B när tre kataloger " "sammanfogas.\n" "Kontrollera igen innan du fortsätter." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parametervarning" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Söker i kataloger..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Läser katalog A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Läser katalog B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Läser katalog C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Vissa underkataloger kunde inte läsas i" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Kontrollera rättigheter för underkatalogerna." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Klar." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status för katalogjämförelse" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Antal underkataloger:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Antal likadana filer:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Antal olika filer:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Antal manuella sammanfogningar:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Det här påverkar alla sammanfogningsåtgärder." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Ändra alla sammanfogningsåtgärder" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Behandlar " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Att göra." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Kopiera A till B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Kopiera B till A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Ta bort A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Ta bort B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Ta bort A och B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Sammanfoga till A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Sammanfoga till B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Sammanfoga till A och B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Ta bort (om den finns)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Sammanfoga" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Sammanfoga (manuellt)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Fel: Konflikt i filtyper" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Fel: Ändrad och borttagen" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Fel: Datum är lika men filerna är det inte." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Den här åtgärden är för närvarande inte möjlig att utföra." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Åtgärd inte möjlig" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Det här ska aldrig inträffa:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Om du vet hur du kan upprepa detta, kontakta programmets upphovsman." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programfel" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Ett fel uppstod vid kopiering.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Fel" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Sammanfogningsfel" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Fel." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Klar." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Inte sparad." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Okänd sammanfogningsåtgärd. (Det här får aldrig inträffa!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Okänd sammanfogningsåtgärd." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Sammanfogning ska nu börja.\n" "\n" "Välj \"Gör det\" om du har läst instruktionerna och vet vad du gör.\n" "Genom att välja \"Simulera det\" får du reda på vad som skulle hända.\n" "\n" "Var medveten om att det här programmet fortfarande har beta-status, och det " "finns INGA GARANTIER överhuvudtaget! Gör säkerhetskopior av viktig " "information!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Startar sammanfogning" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Gör det" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulera det" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Det markerade objektet har olika typ i de olika katalogerna. Välj vad du " "vill göra." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Ändringsdatum för filerna är samma, men filerna är det inte. Välj vad du " "vill göra." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Det markerade objektet har olika typ i de olika katalogerna. Välj vad du " "vill göra." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Den här åtgärden är för närvarande inte möjlig eftersom katalogsammanfogning " "för närvarande kör." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Ett fel uppstod under föregående steg.\n" "Vill du fortsätta med objektet som orsakade felet, eller vill du hoppa över " "objektet?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Fortsätt sammanfoga efter ett fel" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Fortsätt med sista objekt" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Hoppa över objekt" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Överhoppad." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Pågår..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Sammanfogningsåtgärd färdig." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Sammanfogning färdig" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulerad sammanfogning färdig. Kontrollera om du håller med om de " "föreslagna åtgärderna." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Ett fel uppstod. Tryck på Ok för att se detaljerad information.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Fel: Vid borttagning av %1: Misslyckades skapa säkerhetskopia." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "Ta bort katalog rekursivt (%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "Ta bort (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Fel: Borttagningsåtgärd för katalog misslyckades när katalogen skulle läsas." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Fel: Åtgärden rmdir (%1) misslyckades." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Fel: Borttagningsåtgärden misslyckades." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "Manuell sammanfogning (%1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Observera: Efter en manuell sammanfogning bör användaren fortsätta " "genom att trycka på F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Fel: Kopiering (%1 -> %2) misslyckades. Borttagning av befintlig fil " "misslyckades." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Kopiera länk (%1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Fel: Kopiera länk misslyckades: Fjärrlänkar stöds inte ännu." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Fel: Kopiera länk misslyckades." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "Kopiera (%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Fel vid namnbyte (%1 -> %2): Kan inte ta bort befintlig fil." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "Byt namn (%1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Fel: Namnbyte misslyckades." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Fel när katalogen %1 skulle skapas: Kan inte ta bort befintlig fil." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Skapa katalog (%1)" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Fel vid skapa katalog." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Mål" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Katalog" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Typ" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Storlek" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Egenskap" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Senast ändrad" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Länkmål" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Arkiv" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "Ej tillgänglig" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (mål): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (bas): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (mål): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (mål): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Mål: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Spara tillstånd för katalogsammanfogning som..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Starta eller fortsätt katalogsammanfogning" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Utför åtgärd för aktuellt objekt" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Jämför markerade filer" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Sammanfoga markerade filer" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Sammanfoga\n" "fil" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Dra ihop alla underkataloger" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Expandera alla underkataloger" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Välj A för alla objekt" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Välj B för alla objekt" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Välj C för alla objekt" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Välj automatiskt åtgärd för alla objekt" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Ingen åtgärd för något objekt" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Visa identiska filer" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identiska\n" "filer" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Visa olika filer" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Visa bara filer i A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Bara\n" "filer i A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Visa bara filer i B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Bara\n" "filer i B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Visa bara filer i C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Bara\n" "filer i C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Jämför explicit markerade filer" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Sammanfoga explicit markerade filer" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Gör ingenting" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Ta bort A och B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Sammanfoga till A och B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorerad. (Användardefinierad.)" #: main.cpp:162 msgid "kdiff3" msgstr "Kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Verktyg för jämförelse och sammanfogning av filer och kataloger" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Felrättningar, underhåll av Debian-paket" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Installationsprogram för Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Hjälp om i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Programfix för klippbord" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "I/O-slaven för hjälp" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Klassen CvsIgnoreList från Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Klassen StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Programfix för färgläggning av kataloglikhet" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Fix för långsam start på Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext för Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensiv test, användning och gensvar" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Stöd för Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Överföring till KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Överföring till OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "Samt stort tack till de som rapporterade fel och bidrog med idéer!" #: main.cpp:196 msgid "Merge the input." msgstr "Sammanfoga indata." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Explicit basfil. För att fungera tillsammans med vissa verktyg." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Utdatafil, igen. (för att fungera med vissa verktyg.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -" "o fil)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" "Lös inte konflikter automatiskt. (För att fungera med andra verktyg...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Synlig ersättning av namn för indatafil 1 (bas)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Synlig ersättning av namn för indatafil 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Synlig ersättning av namn för indatafil 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternativ synlig ersättning av namn. Ange detta en gång för all indata." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Överskrid en inställning. Använd en gång för varje inställning, t.ex. --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Visa lista med inställningar och nuvarande värden." #: main.cpp:208 msgid "Use a different config file." msgstr "Använd en annan inställningsfil." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "Fil 1 att öppna (basfil, om den inte anges med --base)" #: main.cpp:212 msgid "file2 to open" msgstr "Fil 2 att öppna" #: main.cpp:213 msgid "file3 to open" msgstr "Fil 3 att öppna" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Antal återstående olösta konflikter: %1 (av vilka %2 är blanktecken)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Utdata har ändrats.\n" "Om du fortsätter kommer dina ändringar att gå förlorade." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Alla indatafiler är binärt lika." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Alla indatafiler innehåller samma text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Filerna %1 och %2 är binärt likadana.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Filerna %1 och %2 innehåller samma text.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Totalt antal konflikter: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Antal automatiskt lösta konflikter: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Antal olösta konflikter: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikter" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Alla konflikter har inte lösts ännu.\n" "Filen sparas inte.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Konflikter kvar" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Det finns konflikter i typ av radslut. Välj typ av radslut manuellt.\n" "Filen har inte sparats.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Misslyckades skapa säkerhetskopia. Filen sparades inte." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Fel vid spara fil" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Fel vid skrivning." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Utmatning" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Ändrad]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Kodning för att spara" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Typ av radslut:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Kodare från" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Kunde inte hitta filer för jämförelse." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "Kdiff3-del" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Vid försök att skapa en säkerhetskopia, misslyckades borttagning av äldre " "säkerhetskopia.\n" "Filnamn: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Vid försök att skapa en säkerhetskopia, misslyckades namnbyte.\n" "Filnamn: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Hämtar filstatus: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Läser fil: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Skriver fil: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Slut på minne" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Skapar katalog: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Tar bort katalog: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Tar bort fil: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Skapar symbolisk länk: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Byter namn på fil: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopierar fil: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Fel under filkopieringsåtgärd: Öppna fil för läsning misslyckades. Filnamn: " "%1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Fel under filkopieringsåtgärd: Öppna fil för skrivning misslyckades. " "Filnamn: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Fel under filkopieringsåtgärd: Läsning misslyckades. Filnamn: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Fel under filkopieringsåtgärd: Skrivning misslyckades. Filnamn: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Läser katalog: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listar katalog: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Avbryt" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linje" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Rad inte tillgänglig" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kodning:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Övre rad" #: difftextwindow.cpp:1769 msgid "End" msgstr "Slut" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Aktuell inställning:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Fel i inställningsalternativ:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Väljaren --auto användes, men ingen utdatafil angavs." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Väljaren --auto ignoreras för katalogjämförelse." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Misslyckades spara." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Misslyckades öppna följande filer:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fel vid öppna fil" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Öppnar dokument för jämförelse..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Uppdatera" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Sparar sammanfogningsresultat. Alla konflikter måste vara lösta." #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Sparar aktuellt dokument som..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Skriv ut skillnaderna" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Avslutar programmet" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Klipper ut markerad del och flyttar den till klippbordet" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopierar markerad del till klippbordet" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Klistrar in klippbordets innehåll på aktuell position" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Markera allting i nuvarande fönster" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Sök efter en sträng" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Sök efter strängen igen" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Aktiverar/inaktiverar statusraden" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Anpassa Kdiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Gå till aktuell skillnad" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Aktuell\n" "skillnad" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Gå till första skillnad" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Första\n" "skillnad" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Gå till sista skillnad" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Sista\n" "skillnad" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Hoppar över skillnader i blanktecken när \"Visa blanktecken\" är " "inaktiverat.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Hoppar inte över skillnader i blanktecken även när \"Visa blanktecken\" är " "inaktiverat.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Gå till föregående skillnad" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Föregående\n" "skillnad" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Gå till nästa skillnad" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Nästa\n" "skillnad" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Gå till föregående konflikt" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Föregående\n" "konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Gå till nästa konflikt" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Nästa\n" "konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Gå till föregående olösta konflikt" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Föregående\n" "olösta" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Gå till nästa olösta konflikt" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Nästa\n" "olösta" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Välj rad(er) från A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Välj\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Välj rad(er) från B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Välj\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Välj rad(er) från C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Välj\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Gå automatiskt till nästa olösta konflikt efter val av källa" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automatiskt\n" "nästa" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Visa mellanslag och tabulatortecken i jämförelse" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Blank\n" "tecken" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Visa blanktecken" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Blanktecken\n" "skillnader" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Visa radnummer" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Rad\n" "nummer" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Välj A överallt" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Välj B överallt" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Välj C överallt" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Välj A för alla olösta konflikter" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Välj B för alla olösta konflikter" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Välj C för alla olösta konflikter" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Välj A för olösta konflikter med blanktecken" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Välj B för olösta konflikter med blanktecken" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Välj C för olösta konflikter med blanktecken" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Lös automatiskt enkla konflikter" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Ändra skillnader till konflikter" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Kör automatisk sammanfogning med reguljärt uttryck" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Lös automatiskt historikkonflikter" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Dela jämförelse vid markering" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Foga ihop markerade jämförelser" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Visa fönster A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Visa fönster B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Visa fönster C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fokus till nästa fönster" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normal översikt" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A mot B-översikt" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A mot C-översikt" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B mot C-översikt" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Radbryt skillnadsfönster" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Lägg till manuell justering av jämförelse" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Rensa alla manuella justeringar av jämförelse" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fokus till föregående fönster" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Byt delningsorientering" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Delad skärmvy för kataloger och text" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Byt mellan katalog och textvy" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Sammanfogningsresultatet har inte sparats." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Spara och avsluta" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Avsluta utan att spara" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Misslyckades spara sammanfogningsresultatet." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Du håller för närvarande på med en katalogsammanfogning. Är du säker på att " "du vill avbryta?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Sparar fil..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Sparar fil med ett nytt namn..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Utskrift inte implementerad." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Skriver ut..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Markering" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Utskrift färdig." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Utskrift avbruten." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Avslutar..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Växlar verktygsrad..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Växla statusraden..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (bas):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fil..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Katalog..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (valfri):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Byt eller kopiera namn..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Byt ut %1 mot %2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Kopiera %1 till utdata" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Byt %1 mot utmatning" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Utmatning (valfri):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Anpassa..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Ok" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Söktext:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Skiftlägeskänslig" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Sök A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Sök B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Sök C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Sökutmatning" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Sök" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Test av reguljära uttryck" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Reguljärt uttryck för automatisk sammanfogning:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Exempel på rad för automatisk sammanfogning:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "För att prova automatisk sammanfogning, kopiera en rad som används i dina " "filer." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Matchningsresultat:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Reguljärt uttryck för historikens början:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Exempel på startrad för historik (med inledande kommentar):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopiera en startrad för historik som används i dina filer,\n" "inklusive den inledande kommentaren." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Reguljärt uttryck för historikpostens början:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Sorteringsnyckelordning för historik:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Exempel på startrad för en historikpost (utan inledande kommentar):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopiera en startrad för en historikpost som används i dina filer,\n" "men utelämna den inledande kommentaren." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Sorteringsnyckelresultat:" #: smalldialogs.cpp:508 msgid "OK" msgstr "Ok" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Matchning lyckades." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Matchning misslyckades." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Inledande och avslutande parenteser matchar inte i reguljärt uttryck." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bitar" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Ändra det här om tecken som inte är ASCII inte visas riktigt." #: optiondialog.cpp:465 msgid "Configure" msgstr "Anpassa" #: optiondialog.cpp:531 msgid "Font" msgstr "Teckensnitt" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Teckensnitt för editor och jämförelser" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kursiv stil för skillnader" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Väljer den kursiva versionen av teckensnittet för skillnader.\n" "Om teckensnittet inte stöder kursiva tecken, gör detta ingenting." #: optiondialog.cpp:568 msgid "Color" msgstr "Färg" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Färginställningar" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Editor- och skillnadsvyer:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Förgrundsfärg:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Bakgrundsfärg:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Bakgrundsfärg för jämförelse:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Färg A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Färg B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Färg C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Konfliktfärg:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Bakgrundsfärg för aktuellt intervall:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Bakgrundsfärg för aktuellt jämförelseintervall:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Färg för manuellt justerade jämförelseintervall:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Katalogjämförelsevy:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Färg för nyaste fil:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "Att ändra färgen får bara effekt när nästa katalogjämförelse startas." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Färg för äldsta fil:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Färg för medelgammal fil:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Färg för saknade filer:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Editorbeteende" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tabulator infogar mellanslag" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "På: Genom att trycka på tabulator, skapas lämpligt antal mellanslag.\n" "Av: Ett tabulatortecken infogas." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tabulatorbredd:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automatisk indentering" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "På: Indentering av föregående rad används för en ny rad.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Kopiera automatiskt markering" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "På: Alla markeringar skrivs omedelbart till klippbordet.\n" "Av: Du måste kopiera explicit, t.ex. via Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "DOS/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Detektera automatiskt" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Anger radsluten när en redigerad fil sparas.\n" "DOS/Windows: CR+LF, Unix: LF, med CR=0D och LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Jämför" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Inställningar av jämför" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Behandla som blanktecken." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorera siffror" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignorera siffror när rader matchas. (Liknar ignorera blanktecken.)\n" "Kan hjälpa till att jämföra filer med numerisk data." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorera C/C++ kommentarer" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Behandla C/C++ kommentarer som blanktecken." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorera skiftläge" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Behandla skiftlägesskillnader som blankteckenskillnader. ('a' <=> 'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Preprocessorkommando:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Användardefinierad förbehandling (Se dokumentationen för detaljinformation.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Preprocessorkommando för radmatchning:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Den här preprocessorn används bara under radmatchning.\n" "(Se dokumentationen för detaljinformation.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Var noggrann (långsammare)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Aktiverar väljaren --minimal för det externa verktyget diff.\n" "Analys av stora filer blir mycket långsammare." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Justera B och C vid tre indatafiler" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Försök justera B och C vid jämförelse eller sammanfogning av tre " "indatafiler.\n" "Rekommenderas inte vid sammanfogning eftersom den kan bli mer komplicerad\n" "(normalvärdet är av)," #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Inställningar av sammanfoga" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Fördröjning vid automatisk fortsättning (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Vid läget automatisk fortsättning, visas resultatet av aktuell markering\n" "under den angivna tiden, innan det går vidare till nästa konflikt. " "Intervall: 0-2000 ms." #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Visa informationsdialogrutor" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Visa en dialogruta med information om antal konflikter." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Standardvärde för sammanfogning av blanktecken med två filer:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Manuellt val" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Tillåt att sammanfogningsalgoritmen automatiskt väljer indata för ändringar " "av bara blanktecken." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Standardvärde för sammanfogning av blanktecken med tre filer:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Automatisk sammanfogning med reguljärt uttryck" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Reguljärt uttryck för rader där Kdiff3 automatiskt ska välja en källa.\n" "När en rad med en konflikt matchar det reguljära uttrycket väljes -C\n" "om tillgängligt, annars väljes B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Kör automatisk sammanfogning med reguljärt\n" "uttryck omedelbart när en sammanfogning startar.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Sammanfogning enligt versionshanteringshistorik" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Reguljärt uttryck för början av versionshanteringens historikpost.\n" "Oftast innehåller raden nyckelordet \"$Log$\".\n" "Standardvärde: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "En av versionshanteringens historikposter består av flera rader.\n" "Ange det reguljära uttrycket för att detektera första raden (utan den " "inledande kommentaren).\n" "Använd parenteser för att gruppera nycklarna du vill använda för sortering.\n" "Om det lämnas tomt, antar Kdiff3 att tomma rader skiljer historikposterna " "åt.\n" "Se dokumentationen för detaljinformation." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Sortering av historiksammanfogning" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Sortera versionshanteringshistoriken med en nyckel." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Sorteringsnycklarnas ordning från historikpostens början:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Varje parentes som används i det reguljära uttrycket för historikpostens " "början\n" "grupperar en nyckel som kan användas för sortering.\n" "Ange listan med nycklar (som numreras i den ordning de förekommer med\n" "början på 1), med användning av ',' som skiljetecken (t.ex. " "\"4,5,6,1,2,3,7\").\n" "Om det lämnas tomt, görs ingen sortering.\n" "Se dokumentationen för detaljinformation." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" "Sammanfogning enligt versionshanteringshistorik när sammanfogning startar" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Kör automatisk sammanfogning enligt versionshanteringshistorik när " "sammanfogning startar." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Maximalt antal historikposter:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Skär bort efter angivet antal. Använd -1 för obegränsat antal poster." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Prova dina reguljära uttryck" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Ej relevant sammanfogningskommando:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Om angivet körs det här skriptet efter automatisk sammanfogning\n" "när inga andra relevanta ändringar detekterades.\n" "Anropas med parametrarna: filnamn1 filnamn2 filnamn3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Spara automatiskt och avsluta vid sammanfogning utan konflikter" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "När Kdiff3 startas från kommandoraden för en filsammanfogning och alla\n" "konflikter kan lösas utan användarinteraktion, spara då automatiskt och " "avsluta.\n" "(Liknar kommandoradsväljaren \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Katalog" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekursiva kataloger" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Om underkataloger ska analyseras eller inte." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Mönster för filer:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mönster för filer som ska analyseras.\n" "Jokertecken: '*' och '?'\n" "Flera mönster kan anges genom att använda skiljetecknet ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Undantagsmönster för filer:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mönster för filer som ska undantas från analys.\n" "Jokertecken: '*' och '?'\n" "Flera mönster kan anges genom att använda skiljetecknet ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Undantagsmönster för kataloger:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mönster för kataloger som ska undantas från analys.\n" "Jokertecken: '*' och '?'\n" "Flera mönster kan anges genom att använda skiljetecknet ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Använd .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Utökar undantagsmönster med allt som skulle ignoreras av CVS.\n" "Med lokala \".cvsignore\" filer, kan det vara katalogspecifikt." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Sök efter gömda filer och kataloger" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Söker efter filer och kataloger med egenskapen gömd." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Söker efter filer och kataloger som börjar med '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Följ fillänkar" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "På: Jämför filen som länken pekar på.\n" "Av: Jämför länkarna." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Följ kataloglänkar" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "På: Jämför katalogen som länken pekar på.\n" "Av: Jämför länkarna." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Skiftlägeskänslig filnamnsjämförelse" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Katalogjämförelsen jämför filer eller kataloger när deras namn matchar.\n" "Ange alternativet om namnens skiftläge måste matcha. (Normalvärdet för " "Windows är av, annars på.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Filjämförelseläge" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binär jämförelse" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binär jämförelse av varje fil. (Standardvärde)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Fullständig analys" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Gör en fullständig analys och visa statistisk information i extra kolumner.\n" "(Långsammare än binär jämförelse, mycket långsammare för binärfiler.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Lita på storlek och ändringsdatum (inte säkert)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Antar att filer är lika om ändringsdatum och fillängden är lika.\n" "Filer med lika innehåll men olika ändringsdatum kommer att verka vara " "olika.\n" "Användbar för stora kataloger eller långsamma nätverk." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Lita på storlek och datum, men använd binärjämförelse om datum inte stämmer " "(inte säkert)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Antar att filer är lika om ändringsdatum och fillängden är lika.\n" "Om datumen inte är lika men storlekarna är det, används binärjämförelse.\n" "Användbar för stora kataloger eller långsamma nätverk." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Lita på storleken (inte säkert)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Antar att filer är lika om deras fillängder är lika.\n" "Användbar för stora kataloger eller långsamma nätverk när datum ändras under " "nerladdning." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synkronisera kataloger" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Erbjuder att lagra filer i båda katalogerna, så att båda\n" "blir likadana efteråt. Fungerar bara när två kataloger\n" "jämförs och ingen målkatalog anges." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Skillnader i blanktecken anses lika" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Om filer bara skiljer sig med blanktecken, anse dem lika.\n" "Det här är bara aktiverat när fullständig analys väljes." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Kopiera nyare istället för att sammanfoga (inte säkert)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Titta inte i filen, utan använd bara den nyaste filen.\n" "(Använd bara det här om du vet vad du gör!)\n" "Har bara någon effekt när två kataloger jämförs." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Säkerhetskopior (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "När en fil skulle sparas och en gammal fil redan finns, kommer den\n" "gamla filen att döpas om med filändelsen '.orig' istället för att tas bort." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regionsinställningar" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Språk (omstart krävs)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Välj språk för strängarna i det grafiska gränssnittet eller \"Automatisk\".\n" "För att språkbytet ska ske, avsluta och starta om Kdiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Använd samma kodning för allt:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Att aktivera det här låter dig ändra alla kodningar genom att bara ändra den " "första.\n" "Inaktivera det om olika individuella inställningar behövs." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Observera: Lokal kodning är " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Filkodning för A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Om aktiverad detekteras Unicode-kodning (UTF-16 eller UTF-8).\n" "Om filens kodning inte kan detekteras, används den valda kodningen som " "reserv.\n" "(Detektering av Unicode beror på den första byten i en fil.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Detektera automatiskt Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Filkodning för B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Filkodning för C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Filkodning för sammanfogad utdata och vid spara:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Automatiskt markering" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Om aktiverad används indatafilernas kodning.\n" "I tvetydiga fall ombedes användaren att välja kodning för att spara med en " "dialogruta." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Filkodning för preprocessorfiler:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Språk som läses från höger till vänster" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Vissa språk läses från höger till vänster.\n" "Inställningen ändrar visningen och editorn på motsvarande sätt." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integrering" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Integreringsinställningar" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Kommandoradsväljare att ignorera:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Lista med kommandoradsväljare som ska ignoreras när Kdiff3 används av andra " "verktyg.\n" "Flera värden kan anges om de åtskiljs av ';'\n" "Detta undertrycker felmeddelandet \"Okänd väljare\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Avsluta också via Esc-tangenten" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Snabb metod att avsluta.\n" "För de som är vana vid att använda Esc-tangenten." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrering med Clearcase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integrera med Rational Clearcase från IBM.\n" "Ändrar \"map\"-filen i Clearcase-underkatalogen \"lib/mgrs\"\n" "(Bara aktiverat när Clearcase-katalogen \"bin\" finns i sökvägen.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Avbryt integrering med Clearcase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Återställ den gamla \"map\"-filen som användes innan integrering med " "Clearcase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Olämpligt teckensnitt" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Fortsätt på egen risk" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Välj ett annat teckensnitt" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Det här återställer alla alternativ, inte bara de i nuvarande ämne." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Preprocessorkommando: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Följande alternativ du valde kan ändra data:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Troligen är det inte önskvärt under en sammanfogning.\n" "Vill du inaktivera inställningarna eller fortsätta med inställningarna " "aktiva?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Alternativ osäkert vid sammanfogning" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Använd alternativen under sammanfogningen" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Inaktivera osäkra alternativ" #: pdiff.cpp:300 msgid "Loading A" msgstr "Laddar A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Laddar B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Jämförelse: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Radjämförelse: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Laddar C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Jämförelse: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Jämförelse: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Radjämförelse: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Radjämförelse: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "Alla indatafiler innehåller samma text, men är inte binärt likadana." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Filerna %1 och %2 har samma text, men är inte binärt likadana.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Vissa indatafiler verkar inte vara rena textfiler.\n" "Observera att Kdiff3:s sammanfogning inte är avsedd för binärdata.\n" "Fortsätt på egen risk." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Vissa indatatecken kunde inte konverteras till giltig Unicode.\n" "Du kanske använder fel avkodare (t.ex. UTF-8 för filer som inte använder " "UTF-8).\n" "Spara inte resultatet om du är osäker. Fortsätt på egen risk.\n" "Berörda indatafiler finns i %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Avbryt" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Öppnar filer..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fel när filen öppnades" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Klipper ut markering..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopierar markering till klippbord..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Infogar klippbordets innehåll..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Spara och fortsätt" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Fortsätt utan att spara" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Sökning färdig." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Sökning färdig" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Ingenting är markerad i något indatafönster med jämförelse." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Fel vid tillägg av manuellt jämförelseintervall" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Kunde inte initiera Kdiff3-delprogrammet.\n" "Detta händer oftast beroende på ett installationsproblem. Läs filen README i " "källkodspaketet för detaljinformation." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Stefan Asserhäll" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "stefan.asserhall@comhem.se" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&Kdiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Anpassa Kdiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "Kdiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Huvudverktygsrad" kdiff3-0.9.97/po/is/0000755000175100001440000000000011626145654013363 5ustar joachimuserskdiff3-0.9.97/po/is/kdiff3plugin.po0000644000175100001440000000422111626145606016304 0ustar joachimusers# translation of kdiff3plugin.po to icelandic # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Sveinn í Felli , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-06-12 13:35+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: icelandic \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" "\n" "\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 #, fuzzy msgid "Clear list" msgstr "Hreinsa lista" #: kdiff3plugin.cpp:157 #, fuzzy msgid "Compare" msgstr "Bera saman" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/is/CMakeLists.txt0000644000175100001440000000016311626145606016120 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(is ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/is/kdiff3.po0000644000175100001440000016361611626145606015103 0ustar joachimusers# translation of kdiff3.po to icelandic # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Sveinn í Felli , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-06-12 13:35+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: icelandic \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=n != 1;\n" "\n" "\n" #: kreplacements/kreplacements.h:105 #, fuzzy msgid "Continue" msgstr "Áfram" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 #, fuzzy msgid "Cancel" msgstr "Hætta við" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 #, fuzzy msgid "Quit" msgstr "Hætta" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 #, fuzzy msgid "Ok" msgstr "Í lagi" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 #, fuzzy msgid "Help" msgstr "Hjálp" #: kreplacements/kreplacements.cpp:185 #, fuzzy msgid "Defaults" msgstr "Sjálfgefið" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy msgid "&File" msgstr "&Skrá" #: kreplacements/kreplacements.cpp:297 #, fuzzy msgid "&Edit" msgstr "Br&eyta" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 #, fuzzy msgid "&Window" msgstr "&Gluggi" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "&Stillingar" #: kreplacements/kreplacements.cpp:306 #, fuzzy msgid "&Help" msgstr "&Hjálp" #: kreplacements/kreplacements.cpp:353 #, fuzzy msgid "&About" msgstr "&Um" #: kreplacements/kreplacements.cpp:369 #, fuzzy msgid "A&uthor" msgstr "Höf&undur" #: kreplacements/kreplacements.cpp:383 #, fuzzy msgid "&Thanks To" msgstr "Þakkir &fá" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 #, fuzzy msgid "Open" msgstr "Opna" #: kreplacements/kreplacements.cpp:606 #, fuzzy msgid "Save" msgstr "Vista" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 #, fuzzy msgid "Save As..." msgstr "Vista sem..." #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "Prenta..." #: kreplacements/kreplacements.cpp:639 #, fuzzy msgid "Cut" msgstr "Klippa" #: kreplacements/kreplacements.cpp:647 #, fuzzy msgid "Copy" msgstr "Afrita" #: kreplacements/kreplacements.cpp:655 #, fuzzy msgid "Paste" msgstr "Líma" #: kreplacements/kreplacements.cpp:663 #, fuzzy msgid "Select All" msgstr "Velja allt" #: kreplacements/kreplacements.cpp:671 #, fuzzy msgid "Show Toolbar" msgstr "Sýna tækjaslá" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format msgid "&Configure %1..." msgstr "&Stilla %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy msgid "About" msgstr "Um" #: kreplacements/kreplacements.cpp:722 #, fuzzy msgid "Find" msgstr "Finna" #: kreplacements/kreplacements.cpp:730 #, fuzzy msgid "Find Next" msgstr "Finna næsta" #: kreplacements/kreplacements.cpp:750 #, fuzzy msgid "Select Font" msgstr "Velja letur" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Ignore" msgstr "Hunsa" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Exit" msgstr "Hætta" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 #, fuzzy msgid "Name" msgstr "Nafn" #: directorymergewindow.cpp:358 #, fuzzy msgid "Operation" msgstr "Aðgerð" #: directorymergewindow.cpp:358 #, fuzzy msgid "Status" msgstr "Staða" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 #, fuzzy msgid "White" msgstr "Hvítur" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 #, fuzzy msgid "Warning" msgstr "Aðvörun" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 #, fuzzy msgid "Rescan" msgstr "Skanna aftur" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 #, fuzzy msgid "Ready." msgstr "Tilbúin." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 #, fuzzy msgid "Merge" msgstr "Sameina" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy msgid "Error" msgstr "Villa" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 #, fuzzy msgid "Error." msgstr "Villa." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 #, fuzzy msgid "Done." msgstr "Lokið." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 #, fuzzy msgid "Skipped." msgstr "Sleppt." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 #, fuzzy msgid "Type" msgstr "Tegund" #: directorymergewindow.cpp:2678 #, fuzzy msgid "Size" msgstr "Stærð" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy msgid "File" msgstr "Skrá" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 #, fuzzy msgid "Do Nothing" msgstr "Gera ekkert" #: directorymergewindow.cpp:2989 #, fuzzy msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 #, fuzzy msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 #, fuzzy msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 #, fuzzy msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 #, fuzzy msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 #, fuzzy msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 #, fuzzy msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 #, fuzzy msgid "Output" msgstr "Úttak" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 #, fuzzy msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 #, fuzzy msgid "Conflict" msgstr "Árekstrar" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 #, fuzzy msgid "Out of memory" msgstr "Ekkert minni eftir" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 #, fuzzy msgid "&Cancel" msgstr "&Hætta við" #: difftextwindow.cpp:403 #, fuzzy msgid "Line" msgstr "Lína" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 #, fuzzy msgid "Encoding:" msgstr "Kóðun:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 #, fuzzy msgid "End" msgstr "Endir" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 #, fuzzy msgid "Reload" msgstr "Endurlesa" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 #, fuzzy msgid "Quits the application" msgstr "Hættir í forritinu" #: kdiff3.cpp:492 #, fuzzy msgid "Cuts the selected section and puts it to the clipboard" msgstr "klippir það sem nú er valið og bætir því við klemmuspjaldið" #: kdiff3.cpp:494 #, fuzzy msgid "Copies the selected section to the clipboard" msgstr "Afritar það sem nú er valið á klemmuspjaldið" #: kdiff3.cpp:496 #, fuzzy msgid "Pastes the clipboard contents to current position" msgstr "Límir innihaldi klemmuspjaldsins á núverandi stað" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 #, fuzzy msgid "Enables/disables the statusbar" msgstr "Virkja/slökkva á stöðustikunni" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 #, fuzzy msgid "Saving file..." msgstr "Vista skrá..." #: kdiff3.cpp:718 #, fuzzy msgid "Saving file with a new filename..." msgstr "Vista skrá með nýju skráarnafni..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "Prentun stöðvuð." #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "Prenta..." #: kdiff3.cpp:956 #, fuzzy msgid "Selection" msgstr "Val" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "Prentun stöðvuð." #: kdiff3.cpp:993 #, fuzzy msgid "Exiting..." msgstr "Hætti..." #: kdiff3.cpp:1006 #, fuzzy msgid "Toggling toolbar..." msgstr "Birta/fela tækjaslá..." #: kdiff3.cpp:1027 #, fuzzy msgid "Toggle the statusbar..." msgstr "Birta/fela stöðuslá..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 #, fuzzy msgid "File..." msgstr "Skrá..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 #, fuzzy msgid "Configure..." msgstr "Stilla..." #: smalldialogs.cpp:174 #, fuzzy msgid "&OK" msgstr "Í &lagi" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 #, fuzzy msgid "Case sensitive" msgstr "Háð há/lágstöfum" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 #, fuzzy msgid "&Search" msgstr "&Leita" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 #, fuzzy msgid "OK" msgstr "Í lagi" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 #, fuzzy msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 #, fuzzy msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 #, fuzzy msgid "Configure" msgstr "Stilla" #: optiondialog.cpp:531 #, fuzzy msgid "Font" msgstr "Letur" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 #, fuzzy msgid "Color" msgstr "Litur" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 #, fuzzy msgid "Foreground color:" msgstr "Litur forgrunns:" #: optiondialog.cpp:603 #, fuzzy msgid "Background color:" msgstr "Bakgrunnslitur:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 #, fuzzy msgid "Editor" msgstr "Ritill" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy msgid "Dos/Windows" msgstr "&Gluggi" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "Velja sjálfvirkt" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Stillingar diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 #, fuzzy msgid "Ignore case" msgstr "Hunsa há/lágstafi" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy msgid "Directory" msgstr "Mappa" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "Velja sjálfvirkt" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 #, fuzzy msgid "Abort" msgstr "Hætta við" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 #, fuzzy msgid "Cutting selection..." msgstr "Klippi val..." #: pdiff.cpp:1276 #, fuzzy msgid "Copying selection to clipboard..." msgstr "Afrita val á klemmuspjald..." #: pdiff.cpp:1292 #, fuzzy msgid "Inserting clipboard contents..." msgstr "Tek af klemmuspjaldi..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 #, fuzzy msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Sveinn í Felli" #: rc.cpp:2 #, fuzzy msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "sveinki@nett.is" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 #, fuzzy msgid "Main Toolbar" msgstr "Aðaltækjaslá" kdiff3-0.9.97/po/es/0000755000175100001440000000000011626145654013357 5ustar joachimuserskdiff3-0.9.97/po/es/kdiff3plugin.po0000644000175100001440000000624611626145605016310 0ustar joachimusers# translation of kdiff3plugin.po to Spanish # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Enrique Matias Sanchez (Quique) , 2008. # Israel Garcia Garcia , 2010. # Eloy Cuadra , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-09 18:49+0200\n" "Last-Translator: Eloy Cuadra \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Comparar con %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Fusionar con %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Guardar «%1» para más tarde" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Fusión de 3 vías con la base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Comparar con..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Limpiar la lista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Comparar" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparación de 3 vías" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Acerca del complemento de menú de KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Complemento de menú de KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Página web de KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Uso de la extensión del menú contextual:\n" "Para una comparación simple de dos archivos seleccionados, elija " "«Comparar».\n" "Si el otro archivo estuviese en algún otro sitio, elija «Guardar» el primer " "archivo para más tarde. Aparecerá en submenú «Comparar con...». Entonces use " "«Comparar con» sobre el segundo archivo.\n" "Para una fusión de 3 vías, primero debe «Guardar» el archivo base, a " "continuación la rama a fusionar, y elegir «Fusión de 3 vías con base» sobre " "la otra rama, que se usará como destino.\n" "Lo mismo se aplica a la comparación y fusión de directorios." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Acerca del complemento de menú de KDiff3" kdiff3-0.9.97/po/es/CMakeLists.txt0000644000175100001440000000016311626145605016113 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(es ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/es/kdiff3fileitemactionplugin.po0000644000175100001440000000467211626145605021226 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Eloy Cuadra , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-09 18:51+0200\n" "Last-Translator: Eloy Cuadra \n" "Language-Team: Spanish \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Comparar con %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Fusionar con %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Guardar «%1» para más tarde" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Comparar con..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Borrar lista" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Comparar" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Acerca del complemento de menú de KDiff3..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Complemento de acciones de elementos de archivo de KDiff3: Copyright © 2011 " "Joachim Eibl\n" "Página web de KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/es/kdiff3.po0000644000175100001440000024767611626145605015107 0ustar joachimusers# translation of kdiff3.po to Español # traducción de kdiff3.po a Español # Copyright (C) 2003,2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # Miguel Revilla Rodríguez , 2003. # Carlos Mayo Hernández , 2003,2004, 2005. # santi , 2005, 2006, 2007. # Santiago Fernandez Sancho , 2006, 2008. # Israel Garcia Garcia , 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-01-16 14:50+0100\n" "Last-Translator: Israel Garcia Garcia \n" "Language-Team: Español \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continuar" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancelar" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Salir" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Aceptar" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Ayuda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Predeterminados" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Archivo" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Editar" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Directorio" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Movimiento" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iffview" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Fusionar" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Ventana" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "Preferencia&s" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Ayuda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Acerca de" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "Agradecimien&tos a" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Elemento actual de operación de fusión" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Elemento actual de operación de sincronización" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Abrir" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Guardar" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Guardar como..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimir..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Cortar" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copiar" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Pegar" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Seleccionar todo" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostrar barra de herramientas" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Mostrar barra de e&stado" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configurar %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Acerca de" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Buscar" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Buscar siguiente" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Seleccionar tipo de letra" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Seleccionó un tipo de letra de ancho variable.\n" "\n" "Debido a que este programa no manipula tipos de letra de ancho variables\n" "correctamente, podrá experimentar problemas durante la edición.\n" "\n" "¿Desea continuar o desea seleccionar otro tipo de letra?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Tipo de letra incompatible." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continuar bajo mi propio riesgo" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Seleccionar otro tipo de letra" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Para conseguir más documentación, consulte el menú ayuda o la subcarpeta doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Uso de KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorar" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Salir" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Error al escribir los datos del portapapeles en el archivo temporal." #: diff.cpp:255 msgid "From Clipboard" msgstr "Desde el portapapeles" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Posiblemente, falló el pre-procesamiento. Compruebe esta orden:\n" "\n" " %1\n" "\n" "La orden de pre-procesamiento se desactivará ahora." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "El preprocesamiento de combinación de línea probablemente falló. Compruebe " "esta orden:\n" "\n" " %1\n" "\n" "La orden de preprocesamiento de combinación de línea se desactivará." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Error de pérdida de datos:\n" "Si puede volver a producirlo, contacte con el autor.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Error interno grave" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mezcla de enlaces y archivos normales." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Enlace: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Tamaño: " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Fecha y tamaño: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Falló la creación de la copia temporal de %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Falló la apertura de %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Comparando archivo..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Error al leer de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nombre" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operación" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Estado" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Sin resolver" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Resuelto" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "No blanco" #: directorymergewindow.cpp:359 msgid "White" msgstr "Blanco" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Actualmente está haciendo una fusión de directorio. ¿Está seguro de que " "desea abandonar la fusión y volver a leer el directorio?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Aviso" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Volver a buscar" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continuar fusionando" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Falló la apertura de directorios:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Dir A «%1» no existe o no es un directorio.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Dir B «%1» no existe o no es un directorio.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Dir C «%1» no existe o no es un directorio.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Error al abrir directorio" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "El directorio de destino no debe ser el mismo que A o B cuando tres " "directorio estan fusionados.\n" "Compruebe de nuevo antes de continuar." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Advertencia en el parámetro" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Escaneando directorios..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Leyendo directorio A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Leyendo directorio B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Leyendo directorio C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Algunos subdirectorios no se pudieron leer" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Comprobar los permisos de los subdirectorios." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Listo." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Estado de la comparación del directorio" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Número de subdirectorios:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Número de archivos iguales:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Número de archivos diferentes:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Número de fusiones manuales:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Esto afecta a todas las operaciones de fusión." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Cambiando todas las operaciones de fusión" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Procesando " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Por hacer." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copiar A a B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copiar B a A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Borrar A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Borrar B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Borrar A y B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Fusionar a A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Fusionar a B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Fusionar a A y B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Borrar (si existe)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Fusionar" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Fusionar (manual)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Error: Conflicto de tipos de archivo" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Error: Cambiado y borrando" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Error: Las fechas son iguales pero los archivos no." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Esta operación no es posible actualmente." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operación imposible" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Esto nunca debe ocurrir: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Si sabe cómo reproducir esto, por favor contacte con el autor del programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Error de programa" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Ocurrió un error mientras se copiaba.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Error" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Error de fusión" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Error." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Hecho." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Sin guardar." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operación de fusión desconocida. (Esto no debe ocurrir nunca)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operación de fusión desconocida." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "La fusión va a empezar.\n" "\n" "Elegir «Hacerlo» si ha leído las instrucciones y sabe qué está haciendo.\n" "Elegir «Simularlo» para que os muestre que ocurriría.\n" "\n" "Tenga en cuenta que este programa está aún en versión de pruebas y no hay " "NINGUNA GARANTÍA en ningún caso. ¡Haga copias de respaldo de sus datos " "importantes!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Comenzando fusión" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Hacerlo" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simularlo" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "El elemento marcado tiene un tipo diferente en los diferentes directorios. " "Seleccione qué hacer." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Las fechas de modificación del archivo son iguales pero los archivos no. " "Seleccionar qué hacer." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "El elemento marcado está cambiado en una carpeta y borrado en la otra. " "Seleccione qué hacer." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Esta operación no es posible actualmente porque se está ejecutando una " "fusión de directorios." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Hubo un error en el último paso.\n" "¿Desea continuar con el elemento que causó el error o desea omitir este " "elemento?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continuar la fusión después de un error" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continuar con el último elemento" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Omitir elemento" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Omitido." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "En progreso..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operación de fusión completa." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fusión completa" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Fusión simulada completa. Compruebe si está de acuerdo con las operaciones " "propuestas." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Ocurrió un error. Pulse Aceptar para ver información mas detallada.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Error: Mientras se borraba %1: Falló la creación de copia de respaldo." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "borrar directorio recursivamente( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "borrar( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Error: la operación de borrado de directorio falló al intentar leer el " "directorio." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Error: la operación rmdir( %1 ) falló." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Error: falló la operación de borrado." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "fusión manual ( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Nota: Después de una fusión manual el usuario puede continuar " "presionando F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Error: falló la copia ( %1 -> %2 ). Fallo al eliminar destino existente." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Error: falló copyLink. Los enlaces remotos no están implementados todavía." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Error: falló copyLink." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copy( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Error durante renombrar( %1 -> %2 ): No se puede borrar un destino existente." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "renombrar( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Error: Fallo al renombrar." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Error durante makeDir de %1. No se puede borrar un archivo existente." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Error al crear el directorio." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipo" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Tamaño" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atrib" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Última modificación" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destino del enlace" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Archivo" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "no disponible" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Guardar estado del directorio de fusión como..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Comenzar/Continuar fusión de directorio" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Realizar operación para el elemento actual" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Comparar el archivo seleccionado" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Fusionar archivo actual" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Fusionar\n" "archivo" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Plegar todos los subdirectorios" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Desplegar todos los subdirectorios" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Elegir A para todos los elementos" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Elegir B para todos los elementos" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Elegir C para todos los elementos" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Auto-elegir operación para todos los elementos" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Ninguna operación para todos los elementos" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostrar archivos idénticos" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Archivos\n" "idénticos" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostrar archivos diferentes" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostrar archivos solo en A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Archivos\n" "solo en A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostrar archivos solo en B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Archivos\n" "solo en B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostrar archivos solo en C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Archivos\n" "solo en C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Comparar explícitamente los archivos seleccionados" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Fusionar explícitamente los archivos seleccionados" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "No hacer nada" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Borrar A y B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Fusionar a A y B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorado. (Definido por el usuario)." #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Herramienta para comparación y fusión de archivos y directorios" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Corrección de fallo, mantenedor del paquete Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instalador de Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "ayuda i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Parche del portapapeles" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Ayuda KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Clase CvsIgnoreList para Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Clase StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Parche de corrección de color de carpeta" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Correcciones para el inicio lento en Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Extensión Diff para Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "Utilidades Diff GNU" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Prueba intensiva, uso, comentarios y sugerencias." #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Soporte para Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portado a KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ ¡Muchas gracias a aquellos que han informado de errores y han contribuido " "con ideas!" #: main.cpp:196 msgid "Merge the input." msgstr "Fusionar la entrada." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Archivo base explícito. Para compatibilidad con algunas herramientas." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Archivo de salida. Implica -m. E.g.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Archivo de salida, de nuevo. (Para compatibilidad con algunas herramientas)." #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Ninguna interfaz gráfica de usuario si todos los conflictos son auto-" "resolvibles. (necesita archivo -o)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "No resolver conflictos automáticamente (Por compatibilidad...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Reemplazamiento visible de nombre para el archivo de entrada 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Reemplazamiento visible de nombre para el archivo de entrada 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Reemplazamiento visible de nombre para el archivo de entrada 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Reemplazamiento alternativo visible de nombre. Facilitarlo una vez por cada " "entrada." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Sustituir una opción de configuración. Utilícelo para cada configuración. P. " "ej.: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Mostrar una lista de las preferencias y valores actuales." #: main.cpp:208 msgid "Use a different config file." msgstr "Utilizar un archivo de configuración diferente." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "archivo1 a abrir (base, si no se ha especificado vía --base)" #: main.cpp:212 msgid "file2 to open" msgstr "archivo2 a abrir" #: main.cpp:213 msgid "file3 to open" msgstr "archivo3 a abrir" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Número de conflictos sin resolver: %1 (%2 de los cuales son espacios en " "blanco)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "La salida ha sido modificada.\n" "Si continua, sus cambios se perderán." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Todos los archivos de entrada son binariamente iguales." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Todos los archivos de entrada contienen el mismo texto." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Los archivos %1 y %2 son binariamente iguales.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Los archivos %1 y %2 tiene el mismo texto.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Número total de conflictos: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Nº de conflictos resueltos automáticamente: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Nº de conflictos sin resolver: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflictos" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "No todos los conflictos se han resuelto todavía.\n" "Archivo sin guardar.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflictos que faltan" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Hay un conflicto entre el fin de línea y el estilo. Por favor elija la línea " "y el estilo manualmente.\n" "No se guardó el archivo.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Fallo al crear copia de respaldo. Archivo sin guardar." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Error al guardar archivo" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Error al escribir." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Salida" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificado]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codificación para guardar" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Estilo línea final:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflicto" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Códec de" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "No se pudo encontrar archivos para comparar." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Mientras se intentaba hacer una copia de respaldo, se produjo un fallo al " "eliminar una copia de respaldo anterior.\n" "Nombre de archivo: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Mientras se intentaba hacer una copia de respaldo, se produjo un fallo al " "renombrar.\n" "Nombres de archivos: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Obteniendo estado de archivo: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Leyendo archivo: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Escribiendo archivo: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Fuera de memoria" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Creando directorio: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Eliminando directorio: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Eliminando archivo: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Creando enlace simbólico: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Renombrando archivo: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Copiando archivo: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Error durante la operación de copia de archivo. Falló al abrir archivo para " "lectura. Nombre de archivo: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Error durante la operación de copia de archivo. Falló al abrir archivo para " "escritura. Nombre de archivo: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Error durante la operación de copia de archivo. Falló al leer. Nombre de " "archivo: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Error durante la operación de copia de archivo. Falló al escribir. Nombre de " "archivo: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Leyendo directorio: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listando directorio: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancelar" #: difftextwindow.cpp:403 msgid "Line" msgstr "Línea" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Línea no disponible" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codificación:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Línea superior" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fin" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuración actual:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Configuración de la opción de error:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Opción --auto usada, pero sin archivo de salida especificado." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Opción --auto ignorada para comparación de directorio." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Fallo al guardar." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Fallo al abrir estos archivos:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Error de apertura de archivo" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Abre documentos para comparación..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Recargar" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Guarda el resultado de la fusión ¡Todos los conflictos deben estar resueltos!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Guarda el documento actual como..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Imprimir las diferencias" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Sale de la aplicación" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Corta la sección seleccionada y la pega en el portapapeles" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia la sección seleccionada al portapapeles" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Pastes the clipboard contents to current position" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Seleccionar todo en la ventana actual" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Buscar por una cadena" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Buscar de nuevo la cadena" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Activar/desactivar la barra de estado" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configurar KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Ir al Delta actual" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Delta\n" "actual" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Ir al primer Delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Primer\n" "delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Ir al último Delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Último\n" "delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Omite diferencias de espacios en blanco cuando «Mostrar espacios en blanco» " "esta desactivado)." #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(No omite diferencias de espacios en blanco incluso cuando «Mostrar espacios " "en blanco» esta desactivado)." #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Ir al Delta anterior" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Delta\n" "anterior" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Ir al siguiente Delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Siguiente\n" "Delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Ir al conflicto anterior" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflicto\n" "anterior" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Ir al conflicto siguiente" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflicto\n" "siguiente" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Ir al conflicto anterior sin resolver" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Sin resolver\n" "anterior" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Ir al conflicto siguiente sin resolver" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Sin resolver\n" "siguiente" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Seleccionar línea(s) de A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Elegir\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Seleccionar línea(s) de B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Elegir\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Seleccionar línea(s) de C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Elegir\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Automáticamente Ir al conflicto siguiente sin resolver después de una " "selección origen" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Siguiente\n" "automática" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Mostrar caracteres espacio y tabulador por diferencias" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Caracteres\n" "en blanco" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostar espacio en blanco" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Deltas en\n" "blanco" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostar número de líneas" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Números de\n" "línea" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Elegir A en cualquier sitio" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Elegir B en cualquier sitio" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Elegir C en cualquier sitio" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Elegir A para todos los conflictos sin resolver" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Elegir B para todos los conflictos sin resolver" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Elegir C para todos los conflictos sin resolver" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Elegir A para todos los conflictos de espacios en blanco sin resolver" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Elegir B para todos los conflictos de espacios en blanco sin resolver" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Elegir C para todos los conflictos de espacios en blanco sin resolver" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Resolver automáticamente conflictos sencillos" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Establecer Deltas a conflictos" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Ejecutar expresión regular de fusión automática" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Resolver automáticamente conflictos históricamente" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Dividir Diff en la selección" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Unir las diferencias seleccionadas" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostar ventana A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostar ventana B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostar ventana C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Ir a la siguiente ventana" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Vista normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Vista A vs. B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Vista A vs. C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Vista B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Ventanas de diferencias con ajuste de palabra" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Añadir alineación manual de las diferencias" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Borrar todas las alineaciones de diferencias manuales" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Ir a la ventana anterior" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Conmutar orientación de división" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Vista de la conmutación de pantalla Dir y Texto" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Conmutar entre vista Dir y Texto" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "El resultado de la fusión no ha sido guardado." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Guardar y salir" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Salir sin guardar" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Falló al guardar el resultado de la fusión." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Actualmente está haciendo una fusión de directorio. ¿Está seguro de que " "desea abandonar?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Guardando archivo..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Guardando archivo con un nuevo nombre..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Impresión completada." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Impriminendo..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selección" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Impresión completada." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Impresión cancelada." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Saliendo..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Cambiando barra de herramientas..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Conmutar la barra de estado..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Archivo..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Dir..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Opcional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Intercambiar/copiar nombres..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Intercambiar %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copiar %1->Salida" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Intercambiar %1<->Salida" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Salida (opcional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configurar..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Aceptar" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Buscar texto:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Distinción de mayúsculas" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Buscar A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Buscar B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Buscar C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Buscar salida" #: smalldialogs.cpp:392 msgid "&Search" msgstr "Bu&scar" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Verificar expresión regular" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Expresión regular de fusión automática:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Ejemplo de línea de fusión automática:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Para una prueba de fusión automática compie una línea tal y como se utiliza " "en sus archivos." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultado coincidente:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expresión regular de inicio del historial:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" "Ejemplo de la línea de inicio del historial (con comentarios importantes):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copia una línea de inicio de historial tal y como se utiliza en sus " "archivos,\n" "incluyendo los comentarios importantes." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expresión regular de inicio de la entrada del historial:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Orden de la clave de ordenación del historial:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Ejemplo de la línea de inicio de la entrada del historial (sin comentarios " "importantes):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copia una línea de inicio de la entrada del historial tal y como se utiliza " "en sus archivos,\n" "pero omite los comentarios importantes." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resultado de la clave de ordenación:" #: smalldialogs.cpp:508 msgid "OK" msgstr "Aceptar" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Coincidencia correcta." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Coincidencia fallida." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Apertura y cierre de paréntesis que no coinciden en la expresión regular." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Cambier esto si ningún carácter ASCII se muestra correctamente." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configurar" #: optiondialog.cpp:531 msgid "Font" msgstr "Tipo de letra" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Tipo de letra para el editor y salida diff" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Fuenta cursiva para deltas" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Selecciona la version cursiva de la letra para las diferencias.\n" "Si el tipo de letra no admite caracteres cursivos, entonces esto no hace " "nada." #: optiondialog.cpp:568 msgid "Color" msgstr "Color" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Preferencias de color" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Vistas del editor y las diferencias:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Color de primer plano:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Color de fondo:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Color de fondo de diff:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Color A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Color B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Color C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Color de conflicto:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Intervalo actual de color de fondo:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Intervalo actual de color de fondo de diff:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Color para los intervalos de diferencias alineadas manualmente:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Vista de comparación de directorio:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Color del archivo más nuevo:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Cambiar este color solo será efectivo cuando inicie de nuevo la comparación " "de directorios." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Color del archivo más antiguo:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Color de los archivos intermedios:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Color de los archivos que faltan:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportamiento del editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "El tabulador inserta espacios" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "On: Pulsando el tabulador genera el número apropiado de espacios.\n" "Off: Se insertará un carácter de tabulador." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tamaño del tabulador:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Auto sangrado" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "On: Se usará el sangrado de la línea anterior para una nueva línea.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Auto-copiar selección" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "On: Se copiará inmediátamente cualquier selección al portapapeles.\n" "Off: Debe copiar explícitamente p.e. vía Ctrl-C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Ventana" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Selección automática" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Establece los finales de linea para cuando un archivo editado se guarde.\n" "DOS/Windows: CR+LF; Unix: LF; con CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Preferencias de Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Trata como espacios en blanco." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorar números" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignorar caracteres numéricos durante la fase combinación de línea. (Similar " "a ignorar espacios en blanco).\n" "Puede ayudar a comparar archivos con datos numéricos." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorar comentarios de C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Trata los comentarios de C/C++ como espacios en blanco." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorar mayúsculas" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Tratar las diferencias de mayúsculas como cambios de espacios en blanco " "('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Orden del preprocesador:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Usar pre-procesamiento definido. (Ver los documentos para mas detalles)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Orden de preprocesador de coincidencia de línea:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Este pre-procesador solo se usa durante la combinación de línea.\n" "(Ver documentos para mas detalles)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Intentar mas a fondo (mas lento)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Activa la --opción mínima para el diff externo.\n" "El análisis de archivos grandos será mas lento." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Alinear B y C para 3 archivos de entrada" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Probar a alinear B y C cuando se compara o se fusiona tres archivos de " "entrada.\n" "No se recomienda cuando se fusiona porque la fusión puede ser más " "complicada.\n" "(De manera predeterminada está deshabilitada)." #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Preferencias de fusión" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Retardo auto avanzado (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Cuando en modo auto-avanzado el resultado de la selección actual se muestran " "para el tiempo especificado, antes de saltar al siguiente conflicto. " "Intervalo: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostrar diálogos con información" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostrar un diálogo con información sobre el número de conflictos." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Fusionar espacios en blanco de dos archivos de forma predeterminada:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Elección manual" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Permitir el algoritmo de fusión para seleccionar automáticamente una entrada " "para solo los cambios de espacios en blanco." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Fusionar espacios en blanco de tres archivos de forma predeterminada:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Expresión regular de fusión automática" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Expresión regular para las líneas en las que KDiff3 debería seleccionar un " "tipo de letra de forma automática.\n" "Cuando una línea con un conflicto coincide con la expresión regular se " "elegirá\n" "- si está disponible - C, sino B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Ejecutar la expresión regular de fusión automática al iniciar la fusión" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Ejecuta la fusión para las expresiones regulares de fusión automática\n" "de forma inmediata cuando se inicia la fusión.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fusionado del historial de control de versiones" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Expresión regular para el inicio de la entrada del historial del control de " "versión.\n" "Esta línea suele contener la palabra clave «$Log$».\n" "El valor predeterminado es: «.*\\$Log.*\\$.*»" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Una entrada del historial de control de versión está formada por varias " "líneas.\n" "Especifique la expresión regular utilizada para detectar la primera línea " "(sin el comentario inicial).\n" "Utilice paréntesis para agrupar las claves de ordenación que desee " "utilizar.\n" "Si lo deja vacío, KDiff3 supondrá que las líneas vacías separan las entradas " "del historial.\n" "Consulte la documentación para obtener más detalles." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordenación de fusión del historial" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordenar el historial del control de versiones con una clave." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" "Orden de la clave de ordenación del inicio de la entrada del historial:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Cada paréntesis utilizado en la expresión regular para la entrada de inicio " "del historial\n" "agrupa una clave que podrá utilizarse para la ordenación.\n" "Especifique la lista de claves (están numeradas por orden de aparición\n" "comenzando en 1) utilizando «,» como separador (p.ej. «4,5,6,1,2,3,7»).\n" "Si se deja vacío, no se realizará ordenación.\n" "Consulte la documentación para obtener más detalles." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Fusionar el historial de control de versiones al iniciar la fusión" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Ejecuta la fusión automática del historial del control de versiones al " "iniciar el fusionado." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Número máximo de entradas en el historial:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Cortar después del número especificado. Utilice -1 para un número ilimitado " "de entradas." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Verificar sus expresiones regulares" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Orden de fusión irrelevante:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Si se especifica, este script se ejecutará después de la fusión automática\n" "cuando no se hayan detectado otros cambios pertinentes.\n" "Se llama con los parámetros: nombrearchivo1 nombrearchivo2 nombrearchivo3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Guardar automáticamente y salir al fusionar sin conflictos" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Cuando KDiff3 se inicia para fusionar archivos desde la línea de órdenes y " "todos los\n" "conflictos pueden resolverse sin intervención del usuario se guardarán " "automáticamente y se saldrá.\n" "(Similar a la opción «--auto» de la línea de órdenes)." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Carpeta" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Introducirse en los directorios" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Analizar los subdirectorios o no." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Patron(es) de archivo(s):" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patron(es) de archivos a analizar.\n" "Comodines: '*' y '?'\n" "Se pueden especificar muchos patrones usando el separador: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Patron(es) anti-archivo(s):" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patron(es) de archivos a excluir del análisis.\n" "Comodines: '*' y '?'\n" "Se pueden especificar muchos patrones usando el separador: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Patron(es) anti-directorio(s):" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patron(es) de directorios a excluir del análisis.\n" "Comodines: '*' y '?'\n" "Se pueden especificar muchos patrones usando el separador: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Usar .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Extiende el antipatrón para todo lo que sería ignorado por CVS.\n" "Esto puede ser especificado por directorios vía archivos locales «." "cvsignore»." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Buscar archivos y directorios ocultos" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Busca archivos de directorios con el atributo de oculto." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Busca archivos y directorios que comiencen por '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Seguir enlaces de archivos" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "On: Comparar el archivo que al que apunta el enlace.\n" "Off: Comparar los enlaces." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Seguir enlaces de directorios" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "On: Comparar el directorio al que apunta el enlace.\n" "Off: Comparar los enlaces." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Comparación de nombres de archivo sensible a mayúsculas y minúsculas" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "La comparación de directorios comparará archivos o directorios cuando sus " "nombre coincidan.\n" "Active esta opción si deben compararse los nombres teniendo en cuenta " "mayúsculas y minúsculas (para Windows el valor predeterminado es " "desactivado, en otro caso, estará activado)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Modo de comparación de archivos" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparación binaria" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparación binaria de cada archivo (predeterminado)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Análisis completo" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Hacer un análisis completo y mostrar información de las estadísticas en " "columnas extras.\n" "(Mas lento que una comparación binara, mucho mas lento para archivos " "binarios)." #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Validar el tamaño y la fecha de modificación (inseguro)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Suponer que los archivos son iguales si la fecha de modificación y la " "longitud de los archivosson iguales.\n" "Los archivos con el mismo contenido y diferentes fechas de modificación se " "considerarán diferentes.\n" "Útil para directorios grandes o redes lentas." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Validar el tamaño y la fecha, pero utilizar comparación binaria si la fecha " "no coincide (inseguro)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Suponer que los archivos son iguales si la fecha de modificación y la " "longitud de los archivos son iguales.\n" "Si la fecha es diferente pero los tamaños son iguales, se utiliza la " "comparación binaria.\n" "Útil para carpetas grandes o redes lentas." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Validar el tamaño (inseguro)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Suponer que los archivos son iguales sus longitudes son iguales.\n" "Útil para directorios grandes y redes lentas cuando la fecha se modifica " "durante la descarga." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronizar directorios" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Ofrece almacenar los archivos en ambos directorios para que\n" "ambios directorios sean después el mismo.\n" "Solo funciona cuando se compara dos directorios sin especificar un destino." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Las diferencias de espacios en blanco se consideran igual" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Si el archivo se diferencia sólo por espacios en blanco, considerarlo " "igual.\n" "Esto sólamente está activo cuando se elije análisis completo." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copiar el mas nuevo en vez de fusionar (inseguro)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "No mirar dentro, sólo obtener el archivo mas nuevo.\n" "(¡Utilice esto sólo si sabe qué está haciendo!)\n" "Sólo es efectivo cuando se compara dos directorios." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Archivos de copias de respaldo (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Cuando un archivo se graba sobre otro mas antiguo, el archivo antiguo\n" "se renombrará con extensión '.orig' en vez de ser borrado." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Preferencias regionales" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Idioma (requiere reiniciar)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Elija el idioma para las cadenas de la interfaz o «Auto».\n" "Para que ocurra el cambio de lenguaje, salga y reinicie KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Usar la misma codificación para todo:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Activar esto permite cambiar todas las codificaciónes cambiando solo la " "primera.\n" "Desactivar esto si se necesitan preferencias individuales diferentes." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: Codificación local es " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codificación de archivo para A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Si está activada la codificación Unicode (UTF-16 ó UTF-8) se detectará.\n" "Sino se detecta la codificación del archivo se utilizará la codificación " "seleccionada como alternativa.\n" "(La detección Unicode depende de los primeros bytes de un archivo)." #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Detección automática de Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codificación de archivo para B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codificación de archivo para C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codificación de archivo para la salida de la fusión y guardar:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Selección automática" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Si está activada se utilizará la codificación de los archivos de entrada.\n" "En los casos dudosos un diálogo pedirá al usuario que elija la codificación " "para el guardado." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codificación de archivo para los archivos del preprocesador:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Lenguaje de derecha a izquierda" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Algunos lenguajes se leen de derecha a izquierda.\n" "Esta configuración cambiará el visor y el editor adaptándolo." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integración" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Preferencias de integración" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opciones de la línea de órdenes que se ignorarán:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Lista de las opciones de la línea de órdenes que se ignorarán cuando KDiff3 " "se utiliza con otras herramientas.\n" "Se pueden especificar varios valores separados por «;»\n" "Eliminará el error «Error desconocido»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Salir también con la tecla «Esc»" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Método rápido para salir.\n" "Para aquellos que usan la tecla «Esc»." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrar con ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra con Racional ClearCase de IBM.\n" "Modifica el archivo «map» en el subdirectorio «lib/mgrs» de ClearCase\n" "(Solo está activado cuando la carpetaa «bin» de ClearCase se encuentra en la " "ruta)." #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Eliminar integración ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "Restaura el archivo «map» anterior a la integración ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Tipo de letra incompatible" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continuar bajo nuestro riesgo" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Seleccionar otro tipo de letra" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Esto reestablece todas las opciones. No solo las de tema actual." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Orden del preprocesador: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" "La(s) siguiente(s) opcion(es) que ha seleccionado pueden cambiar datos:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Normalmente esto no es deseado durante una fusión.\n" "¿Desea desactivar estas preferencias o continuar con estas preferencias " "desactivadas?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opción insegura para la fusión" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Utilizar estas opciones durante la fusión" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Desactivar opciones inseguras" #: pdiff.cpp:300 msgid "Loading A" msgstr "Cargando A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Cargando B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Dif: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Lineadiff: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Cargando C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Dif: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Dif: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Lineadiff: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Lineadiff: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Todos los archivos de entrada contienen el mismo texto, pero no son " "binariamente iguales." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Los archivos %1 y %2 tienen el mismo texto, pero no son binariamente " "iguales. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Algunos archivos de entrada no parecen ser archivos de texto puro.\n" "Tenga en cuenta que la fusión de KDiff3 no se creó para datos binarios.\n" "Continúe bajo su propia cuenta." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Abandonar" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Abriendo archivos..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Error al abrir el archivo" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Cortando selección..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Copiando la selección al portapapeles..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Insertando el contenido del portapapeles..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Guardar y continuar" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continuar sin guardar" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Búsqueda completada." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Búsqueda completada" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" "No hay nada seleccionado en ninguna de las ventanas de entradas de " "diferencias." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Error al añadir un intervalo de diferencia manual" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "No pudo encontrar la parte de KDiff.\n" "Esto normalmente ocurre debido a un problema de instalación. Lea el archivo " "README en el paquete fuente para obtener más detalles." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Israel García García,Santiago Fernández Sancho" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "israelgarcia86@gmail.com,santi@kde-es.org" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configurar KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra de herramientas principal" #~ msgid "Directory Merge" #~ msgstr "Fusión de directorio" kdiff3-0.9.97/po/ml/0000755000175100001440000000000011626145654013360 5ustar joachimuserskdiff3-0.9.97/po/ml/kdiff3plugin.po0000644000175100001440000001211511626145606016302 0ustar joachimusers# Malayalam Translation of kdiff3plugin.pot # Copyright (C) 2009 This_file_is_part_of_KDE # This file is distributed under the same license as the kdiff3plugin package. # SANKARANARAYANAN | ശങ്കരനാരായണന്‍ , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date:2009-01-19 HO:MI+ZONE\n" "Last-Translator: SANKARANARAYANAN | ശങ്കരനാരായണന്‍ \n" "Language-Team: MALAYALAM | മലയാളം \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "കെഡിഫ്3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "%1 മായി താരതമ്യം ചെയ്യു‌‌ക" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "%1 മായി ലയിപ്പിക്കുക" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "%1 ഭാവിയിലേക്കായി സൂക്ഷിക്കുക" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "അടിസ്ഥാനവുമായി 3-വഴിക്കും ലയിപ്പിക്കുക" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "താരതമ്യം ചെയ്യുക ..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "പട്ടിക കാലിയാക്കുക" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "താരതമ്യം ചെയ്യുക" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3 വഴിക്കുള്ള താരതമ്യം" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "കെഡിഫ്3 വിഭവങ്ങളുടെ സംയോജകത്തെ പറ്റി" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "കെഡിഫ്3 വിഭവളുടെ സംയോജകം: പകര്‍പ്പവകാശം (C) 2008 ജോഷിം എലിബ്\n" "കെഡിഫ്3 ആസ്ഥാന താള്: http://kdiff3.sourceforge.net\n" #: kdiff3plugin.cpp:271 #, fuzzy #| msgid "" #| "Using the contextmenu extension:\n" #| "For simple comparison of two selected files choose \"Compare\".\n" #| "If the other file is somewhere else \"Save\" the first file for later. It " #| "will appear in the \"Compare With ...\" submenu. Then use \"Compare With" #| "\" on second file.\n" #| "For a 3-way merge first \"Save\" the base file, then the branch to merge " #| "and choose \"3-way merge with base\" on the other branch which will be " #| "used as destination.\n" #| "Same also applies to directory comparison and merge." msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "സാന്ദര്‍ഭിക വിഭവങ്ങളുടെ അനുബന്ധം ഉപയോഗിക്കല്‍:\n" "തെരഞ്ഞെടുത്ത രണ്ട് ഫയലുകളുടെ ലളിതമായ താരതമ്യ‌ത്തിന് \"Compare\" പ്രയോഗിക്കാം.\n" "മറ്റെ ഫയല്‍ വേറെയെവിടെയെങ്കിലുമാണെങ്കില്‍ ആദ്യത്തെ ഫയല്‍ ഭാവിയിലേക്കായി \"Save\" ചെയ്യുക.ഇത് " "\"Compare With ...\" ഉപവിഭവങ്ങളില്‍ പ്രത്യ‌ക്ഷപ്പെടും. എന്നിട്ട് രണ്ടാമത്തെ ഫയലിലെ " "\"Compare With\"ഉപയോഗിക്കുക.\n" "ത്രിമാര്‍ഗ്ഗ ലയനത്തിന് അടിസ്ഥാന ഫയല്‍ \"Save\" ചെയ്യുക, എന്നിട്ട് ലക്ഷ്യ‌മായി " "ഉപയോഗിയ്ക്കേണ്ടമറ്റേ ശാഖയില്‍, \"3-way merge with base\" തെരഞ്ഞെടുക്കുക.\n" "തട്ടുകളുടെ താരതമ്യത്തിലും ലയനത്തിലും ഇതു തന്നെയാണു് ചെയ്യേണ്ടതു്." #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "കെഡിഫ്3 വിഭവങ്ങളുടെ സംയോജകത്തെ പറ്റി" kdiff3-0.9.97/po/ml/CMakeLists.txt0000644000175100001440000000016311626145606016115 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ml ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ml/kdiff3.po0000644000175100001440000025737611626145606015107 0ustar joachimusers# Malayalam Translation of kdiff3 # Copyright (C) 2009 This_file_is_part_of_KDE # This file is distributed under the same license as the KDIFF3 package. # SANKARANARAYANAN | ശങ്കരനാരായണന്‍ , 2009. # Praveen Arimbrathodiyil , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-01-19 HO:MI+ZONE\n" "Last-Translator: SANKARANARAYANAN | ശങ്കരനാരായണന്‍ \n" "Language-Team: MALAYALAM | മലയാളം \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "റദ്ദുചെയ്യുക" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "സഹജവിലകള്‍" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&ശേഖരം" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&ചിട്ട" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&തട്ടു്" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&നീക്കം" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "&വ്യത്യാസകാഴ്ച" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&ലയനം" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&ജാലകം" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&സജ്ജീകരണങ്ങള്‍" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&സഹായം" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&സംബന്ധിച്ചു്" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "&രചയിതാവു്" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&കടപ്പാടു്" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "തുറക്കുക" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "സൂക്ഷിയ്ക്കുക" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "...ആയി സൂക്ഷിയ്ക്കുക" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "അച്ചടിയ്ക്കുക..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "മുറിയ്ക്കുക" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "പകര്‍ത്തുക" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "ഒട്ടിയ്ക്കുക" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "എല്ലാം തെരഞ്ഞെടുക്കുക" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "ഉപകരണപ്പട്ട കാണിയ്ക്കുക" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&അവസ്ഥാപ്പട്ട കാണിയ്ക്കുക" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 &ക്രമീകരിയ്ക്കുക..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "സംബന്ധിച്ചു്" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "കണ്ടുപിടിയ്ക്കുക" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "അടുത്തതു് കണ്ടുപിടിയ്ക്കുക" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "അക്ഷരസഞ്ചയം തെരഞ്ഞെടുക്കുക" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "പൊരുത്തമില്ലാത്ത അക്ഷരസഞ്ചയം." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "എന്റെ സ്വന്തം ഉത്തരവാദിത്തത്തില്‍ തുടരുക" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "മറ്റൊരു അക്ഷരസഞ്ചയം തെരഞ്ഞെടുക്കുക" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "കൂടുതല്‍ സഹായക്കുറിപ്പുകള്‍ക്കു് സഹായ-മെനുവോ doc എന്ന തട്ടോ കാണുക." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "അവഗണിയ്ക്കുക" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "പുറത്തു് കടക്കുക" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "ഓര്‍മ്മച്ചെപ്പിലെ വിവരങ്ങള്‍ താല്‍ക്കാലിക ഫയലില്‍ എഴുതി ചേര്ക്കുന്നു." #: diff.cpp:255 msgid "From Clipboard" msgstr "ഓര്മ്മച്ചറ്റയില്‍നിന്ന്" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "മുന്‍‌കൂര്‍ നടപടി പരാജയപ്പെട്ടിരിക്കാം. ഈ ആജ്ഞ പരിശോധിക്കൂ:\n" "\n" " %1\n" "\n" "മുന്‍‌കൂര്‍ നടപടിക്കുള്ല ആജ്ഞ ഇപ്പോള്‍ പ്രവര്‍ത്തനരഹിതമാക്കും." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "വരികളിലെ-സമാനതകാണുന്ന- മുന്‍‌കൂര്‍നടപടി പരാജയപ്പെട്ടിരിക്കാം.ഈ ആജ്ഞ പരിശോധിക്കൂ:\n" "\n" " %1\n" "\n" "വരികളിലെ-സമാനതകാണുന്ന- മുന്‍‌കൂര്‍നടപടി ആജ്ഞ ഇപ്പോള്‍ പ്രവര്‍ത്തനരഹിതമാക്കും." #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "സ്ഥിതിവിവരനഷ്ട പിശക്:\n" " പുന:സൃഷ്ടിക്കാന്‍ കഴിയുന്നതാണെങ്കില്‍ രചയിതാവിനെ സമീപിക്കുക.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "ഗുരുതരമായ ആന്തര പിശക്" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "" #: directorymergewindow.cpp:358 msgid "Status" msgstr "" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "മുന്നറിയിപ്പ്" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "തയ്യാര്‍" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "ലയിപ്പിക്കുക" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "" #: directorymergewindow.cpp:2989 msgid "A" msgstr "" #: directorymergewindow.cpp:2990 msgid "B" msgstr "" #: directorymergewindow.cpp:2991 msgid "C" msgstr "" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "ആകെ വൈരുദ്ധ്യങ്ങളുടെ എണ്ണം: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "സ്വയം പരിഹരിച്ച വൈരുദ്ധ്യങ്ങളുടെ എണ്ണം: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "പരിഹയ്ക്കാത്ത വൈരുദ്ധ്യങ്ങളുടെ എണ്ണം: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "വൈരുദ്ധ്യങ്ങള്‍" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<സ്രോതസ്സില്‍ വരിയില്ല>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<ലയനത്തില്‍ വൈരുദ്ധ്യം (ഒഴിഞ്ഞ സ്ഥലം മാത്രം)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<ലയനത്തില്‍ വൈരുദ്ധ്യം>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "ബാക്കിയുള്ള വൈരുദ്ധ്യങ്ങള്‍" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "വരി അവസാനിക്കുന്ന രീതി:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "വൈരുദ്ധ്യം" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "ഭാവിയിലേക്കായി കരുതാന്‍ ശ്രമിക്കുമ്പോള്‍ പഴയ കരുതല്‍ മായ്ക്കുന്നത് പരാജയപ്പെട്ടു.\n" "ഫയല്‍നാമം: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "ഭാവിയിലേക്കായി കരുതാന്‍ ശ്രമിക്കുമ്പോള്‍ പുഅര്നാമകരണം പരാജയപ്പെട്ടു.\n" " ഫയല്‍നാമം: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "ഫയല്‍ നിലവാരം എടുക്കുന്നു: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "ഫയല്‍ വായിക്കുന്നു: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "ഫയലില്‍ എഴുതി ചേര്ക്കുന്നു: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "ഓര്മ്മക്ക് പുറത്താണ്" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "തട്ട് പണിയുന്നു: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "തട്ട് നീക്കം ചെയ്യുന്നു: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "ഫയല്‍ നീക്കം ചെയ്യുന്നു: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "പ്രതീകാത്മക കണ്ണി സൃഷ്ടിക്കുന്നു: %1->%2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "ഫയല്‍ പുനര്നാമകരണം ചെയ്യുന്നു: %1->%2 " #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "ഫയല്‍ പകര്ത്തുന്നു: %1->%2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്: ഫയല്‍ വായനക്കായി തുറക്കുന്നത് പരാജയപ്പെട്ടു. ഫയല്‍ നാമം: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്: ഫയലില്‍ എഴുതാനായി തുറക്കുന്നത് പരാജയപ്പെട്ടു. ഫയല്‍ നാമം: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്: വായന പരാജയപ്പെട്ടു ഫയല്‍നാമം: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "ഫയല്‍ പകര്‍പ്പെടുക്കുമ്പോള്‍ പിശക്: എഴുത്ത് പരാജയപ്പെട്ടു ഫയല്‍നാമം: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "തട്ട് വായിക്കുന്നു:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "തട്ട് പട്ടികയാക്കുന്നു:%1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&റദ്ദു ചെയ്യുക" #: difftextwindow.cpp:403 msgid "Line" msgstr "" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "മുകളിലെ വരി" #: difftextwindow.cpp:1769 msgid "End" msgstr "" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "നിലവിലുള്ള ക്രമീകരണം:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "ക്രമീകരണ ഐച്ഛികത്തിലെ പിശക്:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "--auto ഐച്ഛികം ഉപയോഗിച്ചിച്ചുണ്ടെങ്കിലും, ഉല്പന്ന ഫയല്‍ നിര്‍ദ്ദേശിച്ചിട്ടില്ല." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "--auto ഐച്ഛികം തട്ടുകളുടെ താരതമ്യ‌‌ത്തിനു് അവഗണിച്ചു." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "സൂക്ഷിക്കുന്നതു് പരാജയപ്പെട്ടു." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "ഈ ഫയലുകള്‍ തുറക്കുന്നത് പരാജയപ്പെട്ടു:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "ഫയല്‍ തുറക്കുന്നതില്‍ പിശക്" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "താരതമ്യ‌‌ത്തിനായി പ്രമാണങ്ങള്‍ തുറക്കുന്നു..." #: kdiff3.cpp:479 msgid "Reload" msgstr "വീണ്ടും കയറ്റുക" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "ലയനഫലം സൂക്ഷിയ്ക്കുന്നു. എല്ലാ വൈരുദ്ധ്യ‌ങ്ങളും പരിഹരിക്കപ്പെടണം!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "നിലവിലുള്ള പ്രമാണങ്ങള്‍ ഇങ്ങനെ സൂക്ഷിയ്ക്കുന്നു..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ അച്ചടിയ്ക്കുക" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "പ്രയോഗം വിട്ടുപോകുന്നു" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "തെരഞ്ഞെടുത്ത ഭാഗം മുറിച്ചെടുത്ത് ഓര്‍മ്മച്ചെപ്പില്‍ വെയ്ക്കുന്നു" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "തെരഞ്ഞെടുത്ത ഭാഗം പകര്‍ത്തെടുത്ത് ഓര്‍മ്മച്ചെപ്പില്‍ വെയ്ക്കുന്നു" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "ഓര്‍മ്മച്ചെപ്പിലെ ഉള്ളടക്കം യഥാസ്ഥാനത്ത് പതിക്കുന്നു" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "നിലവിലുള്ള ജാലകത്തിലെ എല്ലാം തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "ഒരു അക്ഷരനിര പരതുന്നു" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "വീണ്ടും ആ അക്ഷരനിര പരതുന്നു" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "നിലവാരപ്പട്ട പ്രാവര്‍ത്തികമാക്കുന്നു/പ്രവര്‍ത്തനരഹിതമാക്കുന്നു" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "കെഡിഫ്3 ക്രമീകരിക്കാം..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "നിലവിലുള്ള ഡെല്‍ട്ടയിലേക്ക് പോകുക" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "നിലവിലുള്ള\n" "ഡെല്‍ട്ട" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "ആദ്യ ഡെല്‍ട്ടയിലേക്ക് പോകുക" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "ആദ്യ‌‌ത്തെ\n" "ഡെല്‍ട്ട" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "അവസാന ഡെല്‍ട്ടയിലേക്ക് പോകുക" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "അവസാന\n" "ഡെല്‍ട്ട" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(\"ഒഴിഞ്ഞ ഇടങ്ങള്‍ കാണിയ്ക്കുക\" പ്രവര്‍ത്തമരഹിതമാക്കിയാല്‍ ഒഴിഞ്ഞ ഇടങ്ങളിലെ വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ " "ഒഴിവാക്കുന്നു.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "( \"ഒഴിഞ്ഞ ഇടങ്ങള്‍ കാണിയ്ക്കുക\" പ്രവര്‍ത്തമരഹിതമാക്കിയാലും ഒഴിഞ്ഞ ഇടങ്ങളുടെ വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ " "ഒഴിവാക്കുന്നില്ല.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "മുന്‍ ഡെല്‍ട്ടയിലേക്ക് പോകുക" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "മുന്‍\n" "ഡെല്‍ട്ട" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "അടുത്ത ഡെല്‍ട്ടയിലേക്ക് പോകുക" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "അടുത്ത\n" "ഡെല്‍ട്ട" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "മുന്‍ വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "മുന്‍\n" "വൈരുദ്ധ്യം" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "അടുത്ത വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "അടുത്ത\n" "വൈരുദ്ധ്യം" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "പരിഹരിക്കപ്പെടാത്ത മുന്‍ വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "മുന്‍\n" "പരിഹരിക്കപ്പെടാത്ത" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "പരിഹരിക്കപ്പെടാത്ത അടുത്ത വൈരുദ്ധ്യത്തിലേക്ക് പോകുക" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "അടുത്ത\n" "പരിഹരിക്കപ്പെടാത്ത" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "A യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "A\n" "തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "B യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "B\n" "തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "C യില്‍നിന്നു വരി (കള്‍) തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "C\n" "തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "സ്രോതസ്സ് തെരഞ്ഞെടുത്താല്‍ സ്വയം അടുത്ത പരിഹരിക്കപ്പെടാത്ത വൈരുദ്ധ്യ‌ത്തിലേക്ക് പോകുക" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "സ്വയം\n" "അടുത്ത" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ക്കായി ഇടവും പട്ടികയുടെ ചിഹ്നങ്ങളും കാണിക്കുക" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "ഒഴിഞ്ഞ\n" "അക്ഷരങ്ങള്‍" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "ശുഭ്രസ്ഥാനങ്ങള്‍ കാണിക്കുക" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "എഴുതുക\n" "ഡെല്‍റ്റാസ്" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "വരികളുടെ നമ്പര്‍ കാണിക്കുക" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "വരി\n" "നമ്പര്‍" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "എല്ലായിടത്തും A തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "എല്ലായിടത്തും B തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "എല്ലായിടത്തും C തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും A തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും B തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ വൈരുദ്ധ്യ‌ങ്ങള്‍ക്കും C തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും A തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും B തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "പരിഹരിക്കപ്പെടാത്ത എല്ലാ ശുഭ്രസ്ഥാനങ്ങള്‍ക്കും C തെരഞ്ഞെടുക്കുക" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "നിസ്സാര വൈരുദ്ധ്യ‌ങ്ങള്‍ സ്വയം പരിഹരിക്കുക" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "വൈരുദ്ധ്യ‌ങ്ങള്‍ക്ക് ഡെല്‍റ്റകളെ തയ്യാറാക്കുക" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "റെഗുലര്‍ എക്സ്പ്രഷന്റെ യാന്ത്രികലയനം പ്രവര്‍ത്തിപ്പിക്കുക" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "നാള്‍വഴി വൈരുദ്ധ്യ‌ങ്ങള്‍ സ്വയം പരിഹരിക്കുക" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "തെരഞ്ഞെടുക്കുന്ന സമയത്ത് diff പിളര്ത്തുക" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "തെരഞ്ഞെടുത്ത diff യോജിപ്പിക്കുക" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "ജാലകം A കാണിക്കുക" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "ജാലകം B കാണിക്കുക" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "ജാലകം Cകാണിക്കുക" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "അടുത്ത ജാലകത്തില്‍ കേന്ദ്രീകരിക്കുക" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "സാധാരണ ചെറുവിവരണം" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A ക്കും Bക്കും പൊതുവായ ചെറുവിവരണം" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A ക്കും Cക്കും പൊതുവായ ചെറുവിവരണം" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr " Bക്കും Cക്കും പൊതുവായ ചെറുവിവരണം" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "ഡിഫ് ജാലകങ്ങളിലെ വാക്കുകള്‍ ഒതുക്കുക" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "ഡിഫില്‍ മാനവികമായി നിര ഒപ്പിക്കല്‍ ചേര്‍ക്കുക" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "ഡിഫിലെ എല്ലാ‍ മാനവികമായ നിര ഒപ്പിക്കലും നീക്കം ചെയ്യുക" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "പിന്നിട്ട ജാലകത്തില്‍ കേന്ദ്രീകരിക്കുക" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "പിളര്ന്ന ഘടന മാറ്റുക" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "അറയും &പാഠങ്ങളും പിളര്ന്ന യവനികാദൃശ്യം" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "അറയുടേയും പാഠങ്ങളുടേയും കാഴ്ചകള്‍ തമ്മില്‍ മാറ്റുക" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "ലയനഫലം സംരക്ഷിച്ചിട്ടില്ല." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "സംരക്ഷിച്ച് &&വിട്ടുപോകുക" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "സംരക്ഷിക്കാതെ വിട്ടുപോകുക" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "ലയനഫലം സൂക്ഷിയ്ക്കുന്നതില്‍ പരാജയം" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "ഇപ്പോള്‍ നിങ്ങള്‍ ഒരു തട്ട് ലയിപ്പിച്ചുകൊണ്ടിരിക്കുകയാണ്. അലസിപ്പിക്കണമെന്ന് ഉറപ്പാണോ?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "ഫയല്‍ സൂക്ഷിയ്ക്കുന്നു..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "ഫയല്‍ ഒരു പുതിയ ഫയല്‍നാമത്തില്‍ സൂക്ഷിയ്ക്കുന്നു..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "അച്ചടി മുഴുവനായി" #: kdiff3.cpp:815 msgid "Printing..." msgstr "അച്ചടിക്കുന്നു" #: kdiff3.cpp:956 msgid "Selection" msgstr "തെരഞ്ഞെടുക്കല്‍" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "അച്ചടി മുഴുവനായി" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "അച്ചടി അലസി." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "വിട്ടു പോകുന്നു..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "ഉപകരണപ്പട്ട മാറ്റുന്നു..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "നിലവാരപ്പട്ട മാറ്റുക" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "ഏ (അടിസ്ഥാനം)" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "ഫയല്‍..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "തട്ട്..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "സി (ഐച്ഛികം):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "വെച്ചുമാറല്‍/പേരുകള്‍ ‍പകര്‍ത്തല്‍..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "വെച്ചുമാറല്‍ %1->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "പകര്‍പ്പ് %1-> ഉത്പന്നം" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "വെച്ചുമാറല്‍ %1->ഉത്പന്നം" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "ഉത്പന്നം (ഐച്ഛികം):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "ക്രമീകരിക്കുക..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&ശരി" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "പാഠം പരതുക:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "അവസ്ഥ സൂക്ഷ്മവേദ്യ‌‌മായ" #: smalldialogs.cpp:372 msgid "Search A" msgstr "ഏ പരതുക" #: smalldialogs.cpp:377 msgid "Search B" msgstr "ബി പരതുക" #: smalldialogs.cpp:382 msgid "Search C" msgstr "സി പരതുക" #: smalldialogs.cpp:387 msgid "Search output" msgstr "ഉത്പന്നം പരതുക" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&പരതുക" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "നിത്യഭാവ പരിശോധകന്‍" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "നിത്യഭാവം സ്വയം ലയിപ്പിക്കുക:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "വരി സ്വയം ലയിപ്പിക്കുക ഉദാഹരണം:" #: smalldialogs.cpp:424 #, fuzzy msgid "To test auto merge, copy a line as used in your files." msgstr "സ്വയം ലയിപ്പിക്കുവാന്‍ നിങ്ങളുടെ ഫയലിലെ ഒരു വരി പരീക്ഷണ പകര്‍ത്തല്‍ നടത്തുക." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "ചേര്ച്ചയുടെ ഫലം:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "നാള്‍വഴി നിത്യ‌‌ഭാവം തുടങ്ങുക:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "നാള്‍വഴി ഉദാഹരണം തുടങ്ങുന്ന വരി (വ്യാഖ്യാ‌‌നം മുന്നിലായി):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "നിങ്ങളുടെ ഫയലില്‍ ഉള്ള പോലെ നാള്‍വഴി തുടങ്ങുന്ന വരിമുന്നിലെ വ്യാഖ്യാ‌‌നത്തോടെ പകര്‍ത്തുക." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "നാള്‍വഴി ചേര്‍ക്കുന്നത് നിത്യ‌‌ഭാവം തുടങ്ങും:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "നാള്‍വഴി തരം തിരിക്കുന്ന കീയുടെ ക്രമം:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "ഉദാഹരണത്തിന് നാള്‍വഴി ചേര്‍ക്കുന്നത് തുടങ്ങുന്ന വരി (മുന്നിലെ വ്യാ‌‌ഖ്യാ‌‌നം കൂടാതെ):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "നിങ്ങളുടെ ഫയലിലുപയോഗിക്കുന്ന വിധത്തില്‍ നാള്‍വഴി ചേര്ക്കുന്നത് തുടങ്ങുന്ന വരി പകര്‍ത്തുക,\n" "എന്നാല്‍ മുന്നിലെ വ്യാ‌‌ഖ്യാ‌‌നം ഒഴിവാക്കണം." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "പ്രധാനപ്പെട്ട ഫലങ്ങള്‍ തരം തിരിക്കുക:" #: smalldialogs.cpp:508 msgid "OK" msgstr "ശരി" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "ചേര്‍ച്ച വിജയം." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "ചേര്‍ച്ച പരാജയപ്പെട്ടു." #: smalldialogs.cpp:574 #, fuzzy msgid "Opening and closing parentheses do not match in regular expression." msgstr "നിത്യഭാവത്തില്‍ തുടങ്ങുന്നതും അവസാനിക്കുന്നതുമായ ബ്രാക്കറ്റുകള്‍ യോജിക്കുന്നില്ല." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "യൂണിക്കോഡ്, 8ബിറ്റ്" #: optiondialog.cpp:368 msgid "Unicode" msgstr "യൂണിക്കോഡ്" #: optiondialog.cpp:369 msgid "Latin1" msgstr "ലാറ്റിന്‍1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "ASCII അല്ലാത്ത ചിഹ്നങ്ങള്‍ ശരിയായി പ്രദര്ശിപ്പിക്കപ്പെടുന്നില്ലെങ്കില്‍ അത് മാറ്റുക" #: optiondialog.cpp:465 msgid "Configure" msgstr "ക്രമീകരിക്കുക" #: optiondialog.cpp:531 msgid "Font" msgstr "അക്ഷരരൂപം" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "ഗ്രന്ധ പരിശോധകനും ഡിഫ് പുറത്ത് വിടുന്നതിന്റെ അക്ഷരരൂപവും" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "ഡെല്‍ട്ടകള്ക്ക് ചെരിഞ്ഞ അക്ഷരരൂപം" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "വ്യ‌‌ത്യാ‌‌സങ്ങള്‍ക്ക് അക്ഷരരൂപങ്ങളുടെ ചെരിഞ്ഞ പതിപ്പുകള്‍ തരഞ്ഞെടുക്കുന്നു.ഈ അക്ഷരരൂപങ്ങള്‍ ചെരിഞ്ഞ " "ചിഹ്നങ്ങളെ പിന്തുണക്കുന്നില്ലെങ്കില്‍, പിന്നെ അത് ഒന്നും ചെയ്യുന്നില്ല." #: optiondialog.cpp:568 msgid "Color" msgstr "വര്‍ണ്ണം" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "വര്‍ണ്ണങ്ങള്‍ ഉറപ്പിക്കല്‍ " #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "ഗ്രന്ധപരിശോധകനും ഡിഫ് വീക്ഷണവും" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "പുരോതല വര്ണ്ണം:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "പശ്ചാത്തല വര്‍ണ്ണം:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "ഡിഫ് പശ്ചാത്തല വര്‍ണ്ണം:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "വര്ണ്ണം ഏ:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "വര്ണ്ണം ബി" #: optiondialog.cpp:636 msgid "Color C:" msgstr "വര്ണ്ണം സി" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "വര്ണ്ണ വൈരുദ്ധ്യം:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "നടപ്പിലുള്ള റേഞ്ചിന്റെ പശ്ചാത്തല വര്ണ്ണം:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "നടപ്പിലുള്ള റേഞ്ചിന്റെ ഡിഫ് പശ്ചാത്തല വര്ണ്ണം:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "മാനവികമായി വരിയാക്കിയ വ്യ‌‌ത്യാ‌സ പരിധികളുടെ വര്ണ്ണം:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "അറകളുടെ താരതമ്യ‌‌വീക്ഷണം" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "ഏറ്റവും പുതിയ ഫയലിന്റെ വര്ണ്ണം" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "ഈ വര്ണ്ണം മാറുന്നത് മാത്രമേ അടുത്ത അറകളുടെ താരതമ്യം തുടങ്ങുമ്പോള്‍ഫലപ്രദമാകൂ." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "ഏറ്റവും പഴയ ഫയലിന്റെ നിറം:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "മദ്ധ്യ‌‌കാല ഫയലിന്റെ നിറം:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "കാണാതെപോയ ഫയലിന്റെ നിറം" #: optiondialog.cpp:717 msgid "Editor" msgstr "ഗ്രന്ഥ പരിശോധകന്‍" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "ഗ്രന്ഥ പരിശോധകന്റെ പെരുമാറ്റം" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "തൊങ്ങല്‍ ഇടയ്ക്ക് സ്ഥലം ഇടുന്നു" #: optiondialog.cpp:735 #, fuzzy msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "ഓണ്‍: ടാബ് കീ അമര്ത്തിയാല്‍ ആവശ്യ‌‌ത്തിനുള്ള അച്ചകലം സൃഷ്ടിക്കും.\n" "ഓഫ്: ഒരു ടാബ് ചിഹ്നം പതിക്കും." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "ടാബ് അളവ്:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "യാന്ത്രികമായി സ്ഥലം ഒഴിച്ചുവിടല്‍ " #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "ഓണ്‍: മുന്‍ വരിയില്‍ സ്ഥലം ഒഴിച്ചു വിട്ടത് പുതിയ വരി തുടങ്ങാന്‍ ഉപയോഗിച്ചു.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "യാന്ത്രിക പകര്പ്പ് തെരഞ്ഞെടുക്കുക" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "ഓണ്‍: തെരഞ്ഞെടുത്തതെന്തും ഉടനടി ഓര്‍മ്മച്ചെപ്പില്‍ എഴുതപ്പെടും.\n" "ഓഫ്: നിങ്ങള്‍ നിസ്സംശയം പകര്‍പ്പെടുക്കണം. ഉദാഹരണമായി Ctrl+C വഴി." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&ജാലകം" #: optiondialog.cpp:769 #, fuzzy #| msgid "" #| "Auto\n" #| "Next" msgid "Autodetect" msgstr "" "സ്വയം\n" "അടുത്ത" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "ചിട്ടപ്പെടുത്തിക്കഴിഞ്ഞ ഒരു ഫയല്‍ സം‌രക്ഷിക്കുമ്പോള്‍ വരിയുടെ അവസാനം ഉറപ്പിക്കുന്നു.ഡോസ്/വിന്‍ഡോസ്: " "CR=0D, LF=0A നോട് ചേര്‍ത്ത് CR+LF; UNIX: LF" #: optiondialog.cpp:784 msgid "Diff" msgstr "ഡിഫ്" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "ഡിഫ് സജ്ജീകരണങ്ങള്‍" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "വെളുത്ത അച്ചകലമായി കണക്കാക്കുക" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "അക്കങ്ങളെ വിഗണിക്കുക" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "വരികളുടെ ചേര്‍ച്ച നോക്കുന്ന ഘട്ടത്തില്‍ അക്കങ്ങളായ ചിഹ്നങ്ങള്‍ വിഗണിക്കുക. (വെളുത്തഅച്ചകലങ്ങള്‍ " "വിഗണിച്ചപോലെ.)\n" "ഫയലുകള്‍ സാംഖ്യ‌‌‌‌വിവരങ്ങളുമായി താരതമ്യം ചെയ്യാന്‍ സഹായിച്ചേയ്ക്കും." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "സി/സി++ വിശദീകരണം വിഗണിക്കുക" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "സി/സി++ വിശദീകരണം വെള്ള അച്ചകലമായി കണക്കാക്കുക." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "അക്ഷരങ്ങളുടെ അവസ്ഥ വിഗണിക്കുക" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "അക്ഷരങ്ങളുടെ അവസ്ഥാന്തരങ്ങള്‍ ‍വെള്ള അച്ചകലമായി കണക്കാക്കുക ('a'<=>'A'" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "പൂര്‍വ്വ പ്രക്രിയയ്ക്കുള്ള ആജ്ഞ:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "ഉപയോക്താവ് നിര്‍വ്വചിയ്ക്കുന്ന പൂര്‍വ്വ -പ്രക്രിയ. ( വിശദീകരണങ്ങള്ക്ക് പ്രമാണപത്രം നോക്കുക.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "വരികളുടെ-ചേര്‍ച്ച നോക്കുന്ന പൂര്‍വ്വ പ്രക്രിയയ്ക്കുള്ള ആജ്ഞ:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "വരികളുടെ ചേര്‍ച്ച നോക്കുമ്പോള്‍ മാത്രമേ ഈ പൂര്‍വ്വപ്രക്രിയ ഉപയോഗിക്കൂ.\n" "(വിശദീകരണങ്ങള്ക്ക് പ്രമാണപത്രം നോക്കുക.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "കഠിനമായി യത്നിക്കുക (സാവകാശം)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "പുറം ഡിഫിനായി --ഏറ്റവും കുറഞ്ഞ ഐച്ഛികങ്ങള്‍ സജീവമാക്കുന്നു.\n" "വളരെ വലിയ ഫയലുകളുടെ വിശകലനം വളരെ സാവധാനത്തിലായിരിക്കും." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "3 അകത്തുവിടാനുള്ള ഫയലുകള്‍ക്കായി ബിയും സിയും നിര ഒപ്പിക്കുക." #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "അകത്തുവിടാനുള്ള 3ഫയലുകള്‍ താരതമ്യമ് ചെയ്യുമ്പോഴോ ലയനം നടത്തുമ്പോഴോബിയും സിയും നിരഒപ്പിക്കാന്‍ " "ശ്രമിക്കണം.\n" "കൂടുതല്‍ കുഴപ്പം പിടിച്ചതായതുകൊണ്ട് ലയനത്തിന്റെ കാര്യ‌‌ത്തില്‍ അത് ശുപാര്‍ശ ചെയ്തിട്ടില്ല.\n" "(ഓഫ് ആണ് സഹജം.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "ഒരുക്കങ്ങള്‍ ലയിപ്പിക്കുക" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "യാന്ത്രികമായ മുന്‍കൂര്‍ വിളംബം (മിസെ):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "സ്വയം പുരോഗമിക്കുന്ന മട്ടിലാകുമ്പോള്‍ അടുത്ത സംഘട്ടത്തിലേക്ക് എടുത്തു ചാടുന്നതിന് മുമ്പ് ഇപ്പോള്‍ " "തെരഞ്ഞെടുത്തതിന്റെ ഫലം നിര്‍ദ്ദേശിക്കപ്പെട്ടസമയത്തേയ്ക്ക് കാണിക്കും \n" "ദൈര്‍ഘ്യം: 0-2000മിസെ" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "വിവരങ്ങളുടെ സംവാദ ജാലകം കാണിക്കുക" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "സംഘട്ടനങ്ങളുടെ എണ്ണത്തെ സംബന്ധിക്കുന്ന വിവരം ഒരു സംവാദജാലകത്തില്‍ കാണിക്കുക." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "ശുഭ്രസ്ഥാനം 2-ഫയല്‍ ലയനം സഹജം:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "മാനവിക അവസരം" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "ശുഭ്ര-സ്ഥാനത്തിന്-മാത്രം വേണ്ടി സ്വയം നിക്ഷേപം തെരഞ്ഞെടുക്കാന്‍ ലയനത്തിനായുള്ള ആജ്ഞാസംഹിതക്ക് " "മാറ്റങ്ങള്‍ അനുവദിക്കുക" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "ശുഭ്രസ്ഥാനം 3-ഫയല്‍ ലയനം സഹജം:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "നിത്യഭാവം സ്വയമേവ ലയിപ്പിക്കുക" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "കെഡിഫ്3 സ്വതന്ത്രമായി ഒരു സ്രോതസ്സ് തെരഞ്ഞെടുക്കുന്നിടത്ത് വരികള്‍ക്കുള്ള നിത്യഭാവം.\n" "സംഘട്ടനമുള്ള വരി ചേര്‍ന്നുവരുമ്പോള്‍ അതിന്റെ നിത്യ‌‌ഭാവം\n" "-സി ഉണ്ടെങ്കില്‍ അത്, അല്ലെങ്കില്‍ ബി തെരഞ്ഞെടുക്കപ്പെടും." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "ലയനം തുടങ്ങുമ്പോള്‍ നിത്യ‌‌ഭാവത്തിന്റെ യാന്ത്രികലയനം പ്രവര്‍ത്തിപ്പിക്കുക" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "ഒരു ലയനം തുടങ്ങുമ്പോള്‍ ഉടനെത്തന്നെ നിത്യഭാവത്തിന്റെ സ്വയം ലയനത്തിന്\n" " വേണ്ടി ലയനം പ്രവര്‍ത്തിപ്പിക്കുക.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി ലയിപ്പിക്കല്‍" #: optiondialog.cpp:966 #, fuzzy msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി തുടങ്ങുന്നതിന്റെ നിത്യഭാവം എഴുതിച്ചേര്‍ക്കല്‍.\n" "സാധാരണയായി ഈ വരി \"$Log$\"-keyword.\n" " ഉള്‍ക്കൊണ്ടിരിക്കും.\n" "തനത് മൂല്യം:\".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "ഒരു ഭാഷാന്തര നിയന്ത്രണത്തിന്റെ നാള്‍വഴി ചേര്‍ക്കുന്നതില്‍ പല വരികളുണ്ടാകും.\n" "ആദ്യ‌‌ത്തെ വരി കണ്ടുപിടിക്കാനുള്ള നിത്യ‌‌ഭാവം നിര്‍ദ്ദേശിക്കുക (മുന്നിലെ വിശദീകരണം കൂടാതെ).\n" "ഇനം തിരിക്കാനുപയോഗിക്കുന്ന കീകളെ ഒന്നിച്ചാക്കാന്‍ ബ്രാക്കറ്റുകള്‍ ഉപയോഗിക്കുക.\n" "ഒഴിച്ചു വിട്ടാല്‍ ഒഴിഞ്ഞ വരികള്‍ നാള്‍വഴിയിലെ വിവരങ്ങള്‍ വേര്‍തിരിക്കാനാണെന്ന് കെഡിഫ്3 " "സങ്കല്‍പ്പിയ്ക്കും.\n" "വിശദീകരണങ്ങള്‍ക്ക് പ്രമാണപത്രം കാണുക." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "തരം തിരിക്കുന്നതിനെ നാള്‍വഴി ലയിപ്പിക്കുന്നു" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "ഭാഷാന്തര നിയന്ത്രണ നാള്‍വഴി ഒരു കീ ഉപയോഗിച്ച് തരം തിരിക്കുക." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "നാള്‍വഴി ചേര്‍ത്തത് കീകളുടെ ക്രമം തരം തിരിക്കാന്‍ തുടങ്ങുന്നു." #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "തട്ടു്" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "തട്ടിനുള്ളിലെ തട്ടുകള്‍ കൂടി വിശകലനം ചെയ്യണോ വേണ്ടയോ എന്നു്." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "ശങ്കരനാരായണന്‍, പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "snalledam@dataone.in, pravi.a@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&കെഡിഫ്3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "കെഡിഫ്3 ക്രമീകരിയ്ക്കുക" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "കെഡിഫ്3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "പ്രധാന ഉപകരണപ്പട്ട" kdiff3-0.9.97/po/fr/0000755000175100001440000000000011626145654013357 5ustar joachimuserskdiff3-0.9.97/po/fr/kdiff3plugin.po0000644000175100001440000000637411626145610016306 0ustar joachimusers# translation of kdiff3plugin.po to Français # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Stanislas Zeller , 2008, 2009, 2010. # Joëlle Cornavin , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-15 12:10+0200\n" "Last-Translator: Joëlle Cornavin \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.2\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Comparer avec %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Fusionner avec %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Enregistrer « %1 » pour plus tard" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Fusion de trois versions avec une base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Comparer avec..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Effacer la liste" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Comparer" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparaison de trois versions" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "À propos du module externe du menu KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Module externe du menu KDiff3 sous copyright (C) 2008 Joachim Eibl\n" "Page d'accueil de KDiff3 : http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Utilisation de l'extension du menu contextuel :\n" "Pour une comparaison simple de deux fichiers sélectionnés, choisissez " "« Comparer ».\n" "Si l'autre fichier se trouve dans un autre emplacement, « enregistrez » le " "premier fichier pour plus tard, et il apparaîtra dans le sous-menu " "« Comparer avec...». Utilisez ensuite « Comparer avec » sur le deuxième " "fichier.\n" "Pour la fusion de trois versions, « enregistrez » d'abord le fichier de " "base, puis la branche à fusionner et ensuite « Fusion de trois versions avec " "la base » sur l'autre branche qui sera utilisé comme destination. \n" "Le même processus s'applique à la comparaison et à la fusion de dossiers." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "À propos du module externe du menu KDiff3" kdiff3-0.9.97/po/fr/CMakeLists.txt0000644000175100001440000000016311626145610016107 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(fr ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/fr/kdiff3fileitemactionplugin.po0000644000175100001440000000666211626145610021223 0ustar joachimusers# translation of kdiff3fileitemactionplugin.po to Français # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Joëlle Cornavin , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-15 12:09+0200\n" "Last-Translator: Joëlle Cornavin \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Comparer avec %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Fusionner avec %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Enregistrer « %1 » pour plus tard" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Fusion de trois versions de fichiers avec la base" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Comparer avec..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Effacer la liste" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Comparer" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Comparaison de trois versions de fichiers" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "À propos du module externe du menu KDiff3..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Module externe d'action sur des éléments de fichiers pour KDiff3. Copyright " "(C) 2011 Joachim Eibl\n" "Page d'accueil de KDiff3 : http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Utilisation de l'extension du menu contextuel :\n" "Pou une comparaison simple de deux fichiers sélectionnés, choisissez " "« Comparer ».\n" "Si l'autre fichier se trouve dans un autre endroit quelconque, " "« enregistrez » le premier fichier pour plus tard. Il apparaîtra dans le " "sous-menu « Comparer avec... ». Puis utilisez « Comparer avec » sur le " "second fichier.\n" "Pour une fusion de 3 fichiers, « enregistrez » d'abord le fichier base, puis " "la branche à fusionner et choisissez « Fusion de trois versions de fichiers " "avec la base » sur l'autre branche, qui sera utilisée comme destination.\n" "Le même principe s'applique à la comparaison et à la fusion de dossiers." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" "À propos du module externe d'action sur des éléments de fichiers pour KDiff3" kdiff3-0.9.97/po/fr/kdiff3.po0000644000175100001440000025526111626145610015070 0ustar joachimusers# translation of kdiff3.po to Français # traduction de kdiff3.po vers le Français # Copyright (C) 2004, 2005, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # # Simon Depiets <2df@tuxfamily.org>, 2005. # Joëlle Cornavin , 2008, 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-15 12:08+0200\n" "Last-Translator: Joëlle Cornavin \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Lokalize 1.2\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continuer" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Annuler" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Quitter" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Aide" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Par défaut" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Fichier" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Édition" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Dossier" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "D&éplacement" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&ifférences" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Fusion" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Fenêtre" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Configuration" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Aide" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "À &propos" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&uteur" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Remerciements à" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Opération de fusion de l'élément actuel" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Opération de synchronisation de l'élément actuel" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Ouvrir" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Enregistrer" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Enregistrer sous..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimer..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Couper" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copier" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Coller" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Tout sélectionner" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Afficher la barre d'outils" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Afficher l'a barre d'ét&at" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configurer %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "À propos de" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Chercher" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Poursuivre la recherche" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Choisir une police" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Vous avez choisi une police à chasse variable.\n" "\n" "Étant donné que ce programme ne gère pas polices à chasse variable " "correctement,\n" "vous pourriez rencontrer des problèmes lors de l'édition.\n" "\n" "Voulez-vous continuer ou choisir une autre police." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Police incompatible." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continuer à vos risques et périls" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Choisir une autre police" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Pour plus d'informations, consultez le menu d'aide ou le fichier de " "documentation du sous-dossier." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Utilisation de KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorer" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Quitter" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" "Impossible d'écrire les données du presse-papiers dans un fichier temporaire." #: diff.cpp:255 msgid "From Clipboard" msgstr "Depuis le presse-papiers" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Un espace est attendu après le guillemet fermant." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Pas de guillemets appariés." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Guillemet inattendu dans l'argument." #: diff.cpp:503 msgid "No program specified." msgstr "Pas de programme spécifié." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Il se peut que le pré-traitement ait échoué. Vérifiez cette commande :\n" "\n" " %1\n" "\n" "La commande de pré-traitement sera désactivée dorénavant." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Le pré-traitement de mise en correspondance de lignes a probablement échoué. " "Vérifiez cette commande :\n" "\n" " %1\n" "\n" "La commande de pré-traitement de mise en correspondance de lignes sera " "désactivée dorénavant." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Problème de perte de données :\n" "Si cela se reproduit, veuillez contacter l'auteur.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Erreur interne critique" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mélange de liens et de fichiers normaux." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Lien : " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Taille. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Date et taille : " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Impossible de créer la copie temporaire de %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Impossible d'ouvrir %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Comparaison du fichier..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Erreur de lecture depuis %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nom" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Opération" #: directorymergewindow.cpp:358 msgid "Status" msgstr "État" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Non résolu" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Résolu" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Non blanc" #: directorymergewindow.cpp:359 msgid "White" msgstr "Blanc" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Vous effectuez actuellement une fusion de dossier. Voulez-vous vraiment " "abandonner la fusion et analyser à nouveau le dossier ?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Avertissement" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Analyser à nouveau" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Poursuivre la fusion" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Impossible d'ouvrir les dossiers :" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Le dossier A « %1 » n'existe pas ou n'est pas un dossier.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Le dossier B « %1 » n'existe pas ou n'est pas un dossier.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Le dossier C « %1 » n'existe pas ou n'est pas un dossier.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Erreur lors de l'ouverture du dossier" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Le dossier de destination ne doit pas être le même que A ou B quand trois " "fichiers sont fusionnés.\n" "Vérifiez encore avant de continuer." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Avertissement pour les paramètres" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Analyse des dossiers..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Lecture du dossier A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Lecture du dossier B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Lecture du dossier C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Certains sous-dossiers ne sont pas lisibles dans" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Vérifiez les permissions des sous-dossiers." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Prêt." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "État de la comparaison des dossiers" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Nombre de sous-dossiers :" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Nombre de fichiers identiques :" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Nombre de fichiers différents :" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Nombre de fusions manuelles :" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Ce paramètre affecte toutes les opérations de fusion." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Changement de toutes les opérations de fusion" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "En cours " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "À faire." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copier A vers B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copier B vers A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Supprimer A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Supprimer B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Supprimer A et B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Fusionner vers A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Fusionner vers B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Fusionner vers A et B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Supprimer (s'il existe)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Fusion" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Fusion (manuelle)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Erreur : conflit de types de fichiers" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Erreur : changé et supprimé" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Erreur : les dates sont identiques mais les fichiers ne le sont pas." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Cette opération n'est actuellement pas possible." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Opération impossible" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Cela ne devrait jamais arriver : \n" "\n" "mergeResultSaved : m_pMFI=0\n" "\n" "Si vous savez comment le reproduire, veuillez contacter l'auteur du " "programme." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Erreur du programme" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Une erreur est survenue lors de la copie.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Erreur" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Erreur de fusion" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Erreur." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Fait." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Non enregistré." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Opération de fusion inconnue. (Ceci ne devrait jamais arriver !)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Opération de fusion inconnue." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "La fusion est sur le point de commencer\n" "\n" "Choisissez « Effectuer la fusion » si vous avez lu les instructions et savez " "ce que vous faites.\n" "Choisir « Simuler la fusion » indiquera ce qui arrivera.\n" "\n" "Sachez que ce programme est encore au stade bêta et qu'il n'y a AUCUNE " "GARANTIE d'aucune sorte ! Faites des sauvegardes de vos données vitales !" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Démarrage de la fusion" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Effectuer la fusion" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simuler la fusion" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "L'élément mis en surbrillance est d'un type différent dans les différents " "dossiers. Choisissez ce qu'il faut faire." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Les dates de modification du fichier sont identiques, mais les fichiers ne " "le sont pas. Choisissez ce qu'il faut faire." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "L'élément mis en surbrillance a été modifié dans un dossier et supprimé dans " "l'autre. Choisissez ce qu'il faut faire." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Cette opération n'est actuellement pas possible car une fusion de dossiers " "est en cours." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Il s'est produit une erreur à la dernière étape.\n" "Voulez-vous continuer avec l'élément ayant causé l'erreur ou voulez-vous le " "sauter ?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continuer la fusion après une erreur" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continuer avec le dernier élément" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Sauter l'élément" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Sauté." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "En cours..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Opération de fusion terminée." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fusion terminée" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulation de fusion achevée : vérifiez si vous êtes d'accord avec les " "opérations proposées." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "Une erreur s'est produite. Cliquez sur Ok pour avoir les informations " "détaillées.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" "Erreur : durant la suppression de %1 : impossible de créer la sauvegarde." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "supprimer le dossier récursivement( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "supprimer( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Erreur : opération de suppression de dossier impossible durant la tentative " "de lecture du dossier." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Erreur : opération de suppression de dossier( %1 ) impossible." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Erreur : opération de suppression impossible." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "fusion manuelle(%1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Remarque : après une fusion manuelle, l'utilisateur devra continuer en " "appuyant sur F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Erreur : copie( %1 -> %2 ) impossible. Impossible de supprimer la " "destination existante." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copier le lien( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Erreur : copie des liens impossible : les liens distants ne sont pas encore " "pris en charge." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Erreur : copie du lien impossible." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copie( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Erreur durant le renommage( %1 -> %2 ) : impossible de supprimer la " "destination existante." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "renommer( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Erreur : renommage impossible." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Erreur durant la création du dossier de %1. Impossible de supprimer le " "fichier existant." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "création du dossier( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Erreur durant la création du dossier." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dossier" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Type" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Taille" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Dernière modification" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destination du lien" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Fichier" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "non disponible" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest) : " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base) : " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest) : " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest) : " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest : " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Enregistrer l'état de fusion des dossiers sous..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Démarrer / Poursuivre la fusion des dossiers" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Lancer l'opération pour l'élément actuel" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Comparer le fichier sélectionné" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Fusionner le fichier actuel" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Fusion\n" "Fichier" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Replier tous les sous-dossiers" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Déplier tous les sous-dossiers" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Choisir A pour tous les éléments" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Choisir B pour tous les éléments" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Choisir C pour tous les éléments" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Choisir automatiquement l'opération pour tous les éléments" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Pas d'opération pour tous les éléments" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Afficher les fichiers identiques" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identiques\n" "Fichiers" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Afficher les fichiers différents" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Afficher les fichiers uniquement dans A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Fichiers\n" "uniquement dans A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Afficher les fichiers uniquement dans B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Fichiers\n" "uniquement dans B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Afficher les fichiers uniquement dans C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Fichiers\n" "uniquement dans C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Comparer les fichiers explicitement sélectionnés" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Fusionner les fichiers explicitement sélectionnés" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ne rien faire" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Supprimer A et B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Fusionner vers A et B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignoré. (Défini par l'utilisateur)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Outil de comparaison et de fusion de fichiers et de dossiers" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Corrections de bogues, mainteneur de paquetages Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Programme d'installation Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Aide de i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Correctif pour le presse-papiers" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Aide de KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Classe CvsIgnoreList de Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Classe StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Correctif de coloration d'égalité des dossiers" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Correction du démarrage lent sous Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Extension Diff pour Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Tests intensifs, utilisation et retour d'informations" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Prise en charge pour Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portage vers KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Portage vers OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "Et de nombreux remerciements à ceux qui ont signalé des bogues et contribué " "à des idées !" #: main.cpp:196 msgid "Merge the input." msgstr "Fusionner les entrées." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Fichier de base explicite. Pour la compatibilité avec certains outils." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Fichier de sortie. Implique -m. Par ex. : -o nouveaufichier.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Fichier de sortie, encore. (Pour la compatibilité avec certains outils)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Pas d'interface graphique si tous les conflits se résolvent automatiquement. " "(Nécessite un fichier -o)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" "Ne pas résoudre les conflits automatiquement. (Pour la compatibilité...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Remplacement de nom visible pour le fichier d'entrée 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Remplacement de nom visible pour le fichier d'entrée 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Remplacement de nom visible pour le fichier d'entrée 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Remplacement de nom visible secondaire. À fournir une seule fois pour chaque " "entrée." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Annuler un paramètre de configuration. À utiliser une seule fois pour chaque " "paramètre. Par ex. : --cs « AutoAdvance=1 »" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" "Afficher la liste des paramètres de configuration et les valeurs actuelles." #: main.cpp:208 msgid "Use a different config file." msgstr "Utiliser un fichier de configuration différent." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "fichier 1 à ouvrir (base, si non spécifié, via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "fichier 2 à ouvrir" #: main.cpp:213 msgid "file3 to open" msgstr "fichier 3 à ouvrir" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Nombre de conflits non résolus restants : %1 (dont %2 concernent des espaces)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "La sortie a été modifiée.\n" "Si vous continuez, vos changement seront perdus." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Tous les fichiers d'entrée sont binairement identiques." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Tous les fichiers d'entrée contiennent le même texte." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Les fichiers %1 et %2 sont binairement identiques.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Les fichiers %1 et%2 ont un texte identique.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Nombre total de conflits : " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Nombre de conflits résolus automatiquement : " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Nombre de conflits non résolus : " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflits" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Tous les conflits ne sont pas encore résolus.\n" "Fichier non enregistré.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflits restants" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Il y a un conflit de style de fin de ligne. Veuillez choisir le style de fin " "de ligne manuellement.\n" "Le fichier n'est pas enregistré.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Création de la sauvegarde impossible. Fichier non enregistré." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Erreur lors de l'enregistrement du fichier" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Erreur durant l'écriture." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Sortie" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modifié]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Encodage pour l'enregistrement" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Style de fin de ligne :" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflit" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codec depuis" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Impossible de trouver les fichiers pour la comparaison." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Pendant la tentative de sauvegarde, la suppression d'une sauvegarde " "précédente a échoué.\n" "Nom du fichier : " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Pendant la tentative de sauvegarde, le renommage a échoué.\n" "Noms des fichiers : " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Obtention de l'état du fichier : %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Lecture du fichier : %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Écriture du fichier : %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Mémoire pleine" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Création du dossier : %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Suppression du dossier : %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Suppression du fichier : %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Création d'un lien symbolique : %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Renommage du fichier : %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Copie du fichier : %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Erreur durant l'opération de copie du fichier : impossible d'ouvrir le " "fichier en lecture. Nom du fichier : %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Erreur durant l'opération de copie du fichier : impossible d'ouvrir le " "fichier en écriture. Nom du fichier : %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Erreur durant l'opération de copie du fichier : lecture impossible. Nom du " "fichier : %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Erreur durant l'opération de copie du fichier : écriture impossible. Nom du " "fichier : %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Lecture du dossier : " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listage du dossier : %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Annuler" #: difftextwindow.cpp:403 msgid "Line" msgstr "Ligne" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Ligne non disponible" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Encodage :" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Première ligne" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fin" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuration actuelle :" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Erreur d'option de configuration :" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Option --auto utilisée, mais aucun fichier résultat spécifié." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Option --auto ignorée pour la comparaison de dossiers." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Impossible d'enregistrer." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Ouverture de ces fichiers impossible :" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Erreur d'ouverture d'un fichier" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Ouvre les documents pour faire une comparaison..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Recharger" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Enregistre le résultat de la fusion. Tous les conflits doivent être résolus !" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Enregistre le document actuel sous..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Afficher les différences" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Quitte l'application" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Coupe la sélection et la place dans le presse-papiers" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copie la sélection dans le presse-papiers" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Colle le contenu du presse-papiers à la position actuelle" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Tout sélectionner dans la fenêtre actuelle" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Chercher une chaîne" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Chercher à nouveau la chaîne" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Active/désactive la barre d'état" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configurer KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Aller au delta actuel" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Actuel\n" "Delta" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Aller au premier delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Premier\n" "Delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Aller au dernier delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Dernier\n" "Delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Saute les différences d'espaces quand « Afficher les espaces » est " "désactivé)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Ne saute pas les différences d'espaces même quand « Afficher les espaces » " "est désactivé)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Aller au delta précédent" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Précédent\n" "Delta" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Aller au delta suivant" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Suiv\n" "Delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Aller au conflit précédent" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Préc\n" "Conflit" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Aller au conflit suivant" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Suiv\n" "Conflit" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Aller au conflit non résolu précédent" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Préc\n" "Non résolu" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Aller au conflit non résolu suivant" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Suiv\n" "Non résolu" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Sélectionner la(les) ligne(s) à partir de A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Choisir\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Sélectionner la(les) ligne(s) à partir de B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Choisir\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Sélectionner la(les) ligne(s) à partir de C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Choisir\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Aller automatiquement au conflit non résolu suivant après sélection de la " "source" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Auto\n" "Suivant" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" "Afficher les caractères d'espacement et de tabulation pour voir les " "différences" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Blanc\n" "Caractères" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Afficher les espaces" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Blanc\n" "Deltas" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Afficher les numéros de ligne" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Ligne\n" "Numéros" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Choisir A partout" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Choisir B partout" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Choisir C partout" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Choisir A pour tous les conflits non résolus" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Choisir B pour tous les conflits non résolus" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Choisir C pour tous les conflits non résolus" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Choisir A pour tous les conflits d'espaces non résolus" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Choisir B pour tous les conflits d'espaces non résolus" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Choisir C pour tous les conflits d'espaces non résolus" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Résoudre automatiquement les conflits simples" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Attribuer des deltas aux conflits" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Exécuter la fusion automatique de l'expression rationnelle" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Résoudre automatiquement les conflits d'historique" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Scinder les différences à la sélection" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Réunir les différences sélectionnées" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Afficher la fenêtre A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Afficher la fenêtre B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Afficher la fenêtre C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Mettre le focus sur la fenêtre suivante" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Vue d'ensemble normale" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Vue d'ensemble de A par rapport à B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Vue d'ensemble de A par rapport à C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Vue d'ensemble de B par rapport à C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Retour à la ligne automatique des fenêtres d'affichage de différences" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Ajouter l'alignement manuel des différences" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Effacer tous les alignements manuels des différences" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Mettre le focus sur la fenêtre précédente" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Changer l'orientation du séparateur" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Vue de l'écran divisé en dossier et texte" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Basculer entre l'affichage du dossier et l'affichage du texte" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Le résultat de la fusion n'a pas été enregistré." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Enregistrer et quitter" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Quitter sans enregistrer" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Enregistrement du résultat de la fusion impossible." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Vous effectuez actuellement une fusion de dossiers. Voulez-vous vraiment " "l'interrompre ?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Enregistrement du fichier..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Enregistrement du fichier sous un nouveau nom..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Impression non implémentée." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Impression..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Sélection" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "L'impression est terminée." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Impression interrompue." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Fermeture..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "(Dés)Activation de la barre d'outils..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "(Dés)Activation de la barre d'état..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (base) :" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fichier..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Dossier..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (optionnel) :" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Permuter / Copier les noms..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Permuter %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copier %1->Sortie" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Permuter %1<->Sortie" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Sortie (optionnel) :" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configurer..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Ok" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Texte à chercher :" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Tenir compte de la casse" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Chercher dans A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Chercher dans B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Chercher dans C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Chercher dans la sortie" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Chercher" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Contrôleur d'expressions rationnelles" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Expression rationnelle de fusion automatique :" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Exemple de ligne de fusion automatique :" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Pour effectuer un test de fusion automatique, copiez une ligne comme utilisé " "dans vos fichiers." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Résultat de la correspondance :" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expression rationnelle de début d'historique :" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Exemple de ligne de début d'historique (avec commentaire de départ) :" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copiez une ligne de début d'historique comme utilisé dans vos fichiers,\n" "y compris le commentaire de départ." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expression rationnelle de début d'un élément d'historique :" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Ordre des clés de tri de l'historique :" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Exemple de ligne de début d'élément d'historique (avec commentaire de " "départ) :" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copiez une ligne de début d'élément d'historique comme utilisé dans vos " "fichiers,\n" "mais en omettant le commentaire de départ." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Résultat de la clé de tri :" #: smalldialogs.cpp:508 msgid "OK" msgstr "Ok" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Correspondance correcte." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Correspondance incorrecte." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Les parenthèses d'ouverture et de fermeture ne correspondent pas dans " "l'expression rationnelle." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Changez ce paramètre si les caractères non-ASCII ne sont pas affichés " "correctement." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configurer" #: optiondialog.cpp:531 msgid "Font" msgstr "Police" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Police de l'éditeur et de la sortie de l'analyse des différences" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Police en italique pour les deltas" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Sélectionne la version italique de la police pour les différences.\n" "Si la police ne prend pas en charge les caractères en italique, cette " "commande n'a aucun effet." #: optiondialog.cpp:568 msgid "Color" msgstr "Couleur" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Paramètres des couleurs" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Vues de l'éditeur et de la fenêtre d'analyse de différences :" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Couleur du premier plan :" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Couleur de fond :" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Couleur de fond pour l'affichage des différences :" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Couleur A :" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Couleur B :" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Couleur C :" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Couleur des conflits :" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Couleur de fond de la plage actuelle :" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Couleur de fond pour les différences dans la plage actuelle :" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Couleur pour les plages de différences alignées manuellement :" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Affichage de comparaison des dossiers :" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Couleur pour les fichiers les plus récents :" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Le changement de cette couleur ne sera effectif qu'au prochain démarrage de " "la comparaison des dossiers." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Couleur pour les fichiers les plus anciens :" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Couleur pour les fichiers d'âge moyen :" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Couleur pour les fichiers manquants :" #: optiondialog.cpp:717 msgid "Editor" msgstr "Éditeur" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportement de l'éditeur" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Une tabulation insère des espaces" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Activé : appuyer sur la touche de tabulation génère le nombre approprié " "d'espaces.\n" "Désactivé : un caractère de tabulation va être inséré." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Taille d'une tabulation :" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Indentation automatique" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" "Activé : l'indentation de la ligne précédente est utilisée pour une nouvelle " "ligne.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Copier automatiquement la sélection" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Activé : toute sélection est immédiatement copiée dans le presse-papiers.\n" "Désactivé : vous devrez effectuer la copie explicitement (ex. via Ctrl-C)." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos / Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Détection automatique" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Configure les fins de ligne quand un fichier modifié est enregistré.\n" "DOS/Windows : CR+LF ; Unix : LF ; avec CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Analyse des différences" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Paramètres de l'analyse des différences" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Considérer comme des espaces." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorer les nombres" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignorer les caractères numériques durant une phase de mise en correspondance " "de lignes. (Similaire à « Ignorer les espaces »).\n" "Peut aider à comparer des fichiers comportant des données numériques." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorer les commentaires C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Considérer les commentaires C/C++ comme des espaces." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorer la casse" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Considérer les différences de casse comme des changements d'espaces. " "(« a »<=>« A »)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Commande du pré-processeur :" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Pré-traitement défini par l'utilisateur. (Voir les documentations pour les " "détails)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Commande du pré-processeur pour la mise en correspondance de lignes :" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Ce pré-processeur n'est utilisé que durant la mise en correspondance de " "lignes.\n" "(Consultez la documentation pour les détails)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Essayer encore (plus lent)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Active l'option -minimal pour une analyse de différences externe.\n" "L'analyse de gros fichiers sera beaucoup plus lente." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Aligner B et C pour 3 fichiers d'entrée" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Essayez d'aligner B et C lors de la comparaison ou de la fusion de trois " "fichiers d'entrée.\n" "Option non recommandée pour une effectuer une fusion, car cette dernière " "pourrait s'en trouver plus complexe.\n" "(Par défaut, elle est désactivée)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Paramètres de la fusion" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Délai d'avance automatique (en ms) :" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "En mode Avance automatique, le résultat de la sélection actuelle est " "affiché \n" "pour la période spécifiée, avant d'aller au conflit suivant. Intervalle : " "0-2 000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Afficher les boîtes de dialogue d'information" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" "Affiche une boîte de dialogue contenant des informations sur le nombre de " "conflits." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Option par défaut pour les espaces lors de la fusion de 2 fichiers :" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Choix manuel" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Autoriser l'algorithme de fusion à sélectionner automatiquement une entrée " "pour les changements d'espaces seuls." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Option par défaut pour les espaces lors de la fusion de 3 fichiers :" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Expression rationnelle de fusion automatique" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Expression rationnelle pour les lignes depuis lesquelles KDiff3 devra " "choisir automatiquement une source.\n" "Lorsqu'une ligne présentant un conflit correspond à l'expression " "rationnelle, alors\n" "la ligne C - si elle est disponible, sera choisie, sinon ce sera la ligne B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Exécuter la fusion automatique des expressions rationnelles au démarrage de " "la fusion" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Exécute la fusion pour les expressions rationnelles de fusion automatique\n" "immédiatement lorsqu'une fusion démarre.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fusion de l'historique du contrôle de versions" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Expression rationnelle pour le début de la ligne d'historique de contrôle de " "versions.\n" "Habituellement, cette ligne contient le mot clé « $Log$ ».\n" "Valeur par défaut : « .*\\$Log.*\\$.* »" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Un élément d'historique de contrôle de versions se compose de plusieurs " "lignes.\n" "Spécifiez l'expression rationnelle utilisée pour détecter la première ligne " "(sans le commentaire de début).\n" "Regroupez à l'aide de parenthèses les clés que vous voulez utiliser pour le " "tri.\n" "SI ce champ reste vide, alors KDiff3 part du principe que les lignes vides " "séparent les éléments de l'historique.\n" "Consultez la documentation pour les détails." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Tri de fusion de l'historique" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Trie l'historique de contrôle de versions par clé." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Ordre des clés de tri du début de l'élément de l'historique :" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Chaque paire de parenthèses utilisée dans l'expression rationnelle pour " "l'élément de début de l'historique\n" "regroupe une clé susceptible d'être employée pour le tri.\n" "Spécifiez la liste des clés (qui sont numérotées par ordre d'occurrence, \n" "en commençant par 1) en utilisant « , » comme séparateur (par ex. " "« 4,5,6,1,2,3,7 »).\n" "Si ce champ reste vide, alors aucun tri ne sera effectué.\n" "Consultez la documentation pour les détails." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" "Fusionner l'historique de contrôle de versions lors du démarrage de la fusion" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Exécuter la fusion automatique de l'historique de contrôle de versions au " "début de la fusion." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Nombre maximal d'éléments d'historique :" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Couper après le nombre spécifié. Utiliser -1 pour un nombre illimité " "d'éléments." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Testez vos expressions rationnelles" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Commande de fusion non pertinente :" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Si indiquée, ce script est lancé après une fusion automatique\n" "quand aucun autre changement pertinent n'a été détecté.\n" "Appelée avec les paramètres : nomfichier1 nomfichier2 nomfichier3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Enregistrer automatiquement et quitter en cas de fusion sans conflits" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Lorsque KDiff3 a été lancé depuis la ligne de commande pour effectuer une " "fusion de fichiers et\n" "que tous les conflits peuvent être résolus sans interaction de " "l'utilisateur, alors cette commande enregistre automatiquement et ferme " "l'application.\n" "(Similaire à l'option en ligne de commande « --auto »)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Dossier" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Dossiers récursifs" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Si vous voulez ou non analyser les sous-dossiers." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Motif(s) de fichiers :" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Motif(s) de fichiers à analyser. \n" "Jokers : « * » et «  ? » \n" "Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Motif(s) de fichiers refusé(s) :" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Motif(s) de fichiers à exclure de l'analyse.\n" "Jokers : « * » et « ? »\n" "Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Motif(s) de dossiers exclu(s) :" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Motif(s) des dossiers à exclure de l'analyse. \n" "Jokers : « * » et « ? »\n" "Plusieurs motifs peuvent être spécifiés à l'aide du séparateur : « ; »" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Utiliser .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Étend l'exclusion de motif(s) à tout ce qui serait ignoré par CVS.\n" "Via les fichiers « .cvsignore » locaux, ce peut être spécifique à un dossier." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Chercher les fichiers et les dossiers cachés" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Cherche les fichiers et les dossiers ayant l'attribut « caché »." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Cherche les fichiers et les dossiers commençant par « . »." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Suivre les liens vers des fichiers" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Activé : compare le fichier sur lequel pointe le lien.\n" "Désactivé : compare les liens." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Suivre les liens vers un dossier" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Activé : compare le dossier sur lequel pointe le lien.\n" "Désactivé : compare les liens." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Tenir compte de la casse lors de la comparaison des noms de fichiers" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "La comparaison de dossiers compare les fichiers ou les dossiers lorsque " "leurs noms correspondent.\n" "Réglez cette option si la casse des noms doit correspondre. (Désactivée par " "défaut pour Windows, sinon Activée)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Mode de comparaison de fichiers" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparaison binaire" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparaison binaire de chaque fichier. (Par défaut)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Analyse complète" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Effectue une analyse complète et affiche les informations statistiques dans " "des colonnes supplémentaires.\n" "(Plus lente qu'une comparaison binaire, beaucoup plus pour les fichiers " "binaires)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Se fier à la taille et à la date de modification (peu sûr)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Suppose que les fichiers sont identiques si la date de modification et la " "longueur du fichier sont égales.\n" "Les fichiers ayant un contenu identique mais des dates de modification " "distinctes apparaîtront comme étant différents.\n" "Utile pour les dossiers volumineux ou les réseaux lents." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Se fier à la tailler et à la date, mais utiliser la comparaison binaire si " "la date ne correspond pas (peu sûr)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Suppose que les fichiers sont identiques si la date de modification et la " "longueur du fichier sont égales.\n" "Si la date n'est pas identique mais que les tailles le sont, utilise la " "comparaison binaire.\n" "Utile pour les dossiers volumineux ou les réseaux lents." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Se fier à la taille (peu sûr)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Suppose que tous les fichiers sont identiques si leurs longueurs sont " "égales.\n" "Utile pour les dossiers volumineux ou les réseaux lents, quand la taille est " "modifiée durant le téléchargement." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synchroniser les dossiers" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Propose d'enregistrer les fichiers dans les deux dossiers pour que les deux " "dossiers soient identiques ensuite.\n" "Fonctionne seulement quand la comparaison de deux dossiers ne spécifie pas " "de destination." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Différences d'espaces considérées comme égales" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Si les fichiers ne diffèrent que par des espaces, ils sont considérés comme " "identiques.\n" "Cette fonction n'est active que si vous choisissez l'analyse complète." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copier le plus récent au lieu de fusionner (peu sûr)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "N'ouvre pas le fichier, se contente de prendre le plus récent.\n" "(À n'utilisez que si vous savez ce que vous faites !)\n" "Option effective seulement lors de la comparaison de dossiers." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Sauvegarder les fichiers (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Quand il s'agira d'enregistrer un fichier sur un fichier plus ancien, alors " "l'ancien\n" "sera renommé avec une extension « .orig » au lieu d'être supprimé." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Paramètres régionaux" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Langue (redémarrage nécessaire)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Choisissez la langue des chaînes de l'interface graphique ou « Auto ».\n" "Pour qu'un changement de langue entre en vigueur, quittez et redémarrez " "KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Utiliser le même encodage pour tout :" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Cocher cette option permet de changer tous les encodages en ne modifiant que " "le premier.\n" "Décochez-la si des paramètres individuels différents sont nécessaires." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Remarque : l'encodage local est" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Encodage du fichier pour A :" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Si cette option est cochée, alors l'encodage Unicode (UTF-16 ou UTF-8) sera " "détecté.\n" "Si le fichier n'est pas en Unicode, alors l'encodage sélectionné sera " "utilisé comme solution de repli.\n" "(La détection de l'Unicode repose sur les premiers octets d'un fichier)." #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Détecter automatiquement Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Encodage du fichier pour B :" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Encodage du fichier pour C :" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Encodage du fichier pour la sortie de la fusion et l'enregistrement :" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Sélectionner automatiquement" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Si cette option est cochée, alors l'encodage provenant des fichiers d'entrée " "est utilisé.\n" "Dans les cas ambigus, une boîte de dialogue demandera à l'utilisateur de " "choisir l'encodage pour l'enregistrement." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Encodage du fichier pour les fichiers pré-processeurs :" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Langue de droite à gauche" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Certaines langue se lisent de droite à gauche.\n" "Ce paramètre changera l'afficheur et l'éditeur en conséquence." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Intégration" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Paramètres d'intégration" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Options en ligne de commande à ignorer :" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Liste des options en ligne de commande qui devront être ignorées quand " "KDiff3 est utilisé par d'autres outils.\n" "Plusieurs valeurs peuvent être spécifiées si on les sépare par des « ; »,\n" "ce qui supprimera l'erreur « Option inconnue »." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Quitter également à l'aide de la touche Echap" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Méthode rapide pour sortir de l'application.\n" "Pour les personnes qui sont habituées à utiliser la touche Echap." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Intégrer avec ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Intégrer avec Rational ClearCase d'IBM.\n" "Change le fichier « map » en sous-dossier « lib/mgrs » de ClearCase\n" "(Activé uniquement quand le dossier « bin » de ClearCase est dans " "l'emplacement)." #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Supprimer l'intégration de ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Restaurer à partir de l'ancien fichier « map » avant d'effectuer " "l'intégration de Clearcase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Police incompatible" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continuer à vos risques et périls" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Sélectionner une autre police" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Cette commande réinitialise toutes les options. Pas seulement celles de la " "rubrique actuelle." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Commande de pré-processeur : " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" "Les options suivantes que vous avez choisies risquent de changer les " "données :\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Il est fort probable que ce ne soit pas souhaité durant une fusion.\n" "Voulez-vous désactiver ces réglages ou continuer avec ces paramètres actifs ?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Option peu sûre pour une fusion" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Utiliser ces options durant la fusion" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Désactiver les options peu sûres" #: pdiff.cpp:300 msgid "Loading A" msgstr "Chargement de A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Chargement de B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Différences : A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Différences de lignes : A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Chargement de C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Différences : B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Différences : A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Différences de lignes : B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Différences de lignes : A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Tous les fichiers d'entrée contiennent le même texte, mais ne sont pas " "binairement identiques." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Les fichiers %1 et %2 ont le même texte, mais ne sont pas binairement " "identiques. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Certains fichiers d'entrée ne semblent pas être des fichiers texte pur.\n" "Notez que la fusion KDiff3 n'a pas été prévue pour les données binaires.\n" "Continuez à vos risques et périls." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Il est impossible de convertir certains caractères d'entrée en Unicode " "valable.\n" "Il se peut que vous utilisiez un codec incorrect. (ex. UTF-8 pour les " "fichiers non-UTF-8).\n" "N'enregistrez pas le résultat si vous avez un doute. Poursuivez à vos " "propres risques.\n" "Les fichiers affectés sont dans %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Abandonner" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Ouverture des fichiers..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Erreur d'ouverture du fichier" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Coupe de la sélection..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Copie de la sélection dans le presse-papiers..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Insertion du contenu du presse-papiers..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Enregistrer et continuer" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continuer sans enregistrer" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Recherche terminée." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Recherche terminée" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" "Rien n'est sélectionné dans l'une ou l'autre des fenêtres d'entrée des " "différences." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Erreur lors de l'ajout d'une plage de différences manuel" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Impossible d'initialiser le composant KDiff.\n" "Cet incident arrive d'ordinaire à cause d'un problème d'installation. " "Veuillez consulter le fichier README dans le paquetage source pour plus de " "détails." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Joëlle Cornavin" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "jcorn@free.fr" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configurer KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barre principale" kdiff3-0.9.97/po/tr/0000755000175100001440000000000011626145654013375 5ustar joachimuserskdiff3-0.9.97/po/tr/kdiff3plugin.po0000644000175100001440000000630711626145606016325 0ustar joachimusers# translation of kdiff3plugin.po to Turkish # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Serdar Soytetir , 2008, 2009. # Muhammet Kara , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-04-09 13:56+0300\n" "Last-Translator: Muhammet Kara \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "%1 ile karşılaştır" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "%1 ile birleştir" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "'%1' dosyasını sonrası için kaydet" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Aslı ile 3-yollu birleştirme" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Şununla karşılaştır ..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Listeyi temizle" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Karşılaştır" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3 yollu karşılaştırma" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "KDiff3 menü eklentisi hakkında ..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 Menü Eklentisi: Telif Hakkı (C) 2008 Joachim Eibl\n" "KDiff3 ana sayfası: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Bağlam menüsü uzantısının kullanımı:\n" "Seçilen iki dosyanın basit karşılaştırması için \"Karşılaştır\"ı seçin.\n" "Eğer diğer dosya başka bir yerdeyse, ilk dosyayı daha sonrası için \"Kaydedin" "\", böylece \"Karşılaştır ...\" alt menüsünde görünecektir. Sonra, " "\"Karşılaştır\"ı ikinci dosyada kullanın.\n" "3 yönlü bir birleştirme için önce, temel dosyayı, sonra birleştirilecek dalı " "\"Kaydedin\", ve sonra da hedef olarak kullanılacak diğer dalda \"temel " "dosyayla 3 yönlü birleştirme\" yapın.\n" "Aynı yöntem dizin karşılaştırma ve bireştirme için de geçerlidir." #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "KDiff3 menü eklentisi hakkında ..." kdiff3-0.9.97/po/tr/CMakeLists.txt0000644000175100001440000000016311626145606016132 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(tr ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/tr/kdiff3.po0000644000175100001440000021666011626145606015113 0ustar joachimusers# translation of kdiff3.po to # translation of kdiff3.po to turkish # translation of kdiff3.po to Türkçe # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. # # Görkem Çetin , 2003. # Engin ÇAĞATAY , 2004. # Adem Alp Yıldız , 2005. # Alper Şen , 2005. # Alper Sen , 2005. # Serdar Soytetir , 2008, 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-09-24 01:46+0300\n" "Last-Translator: Serdar Soytetir \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Devam Et" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "İptal" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Çık" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Tamam" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Yardım" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Öntanımlılar" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Dosya" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "Dü&zen" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Dizin" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Hareket" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Birleştir" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Pencere" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Ayarlar" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Yardım" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Hakkında" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "&Yazar" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Teşekkürler" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Aç" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Kaydet" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Farklı Kaydet..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Yazdır..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Kes" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopyala" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Yapıştır" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Tümünü Seç" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Araç Çubuğunu Göster" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Durum Çubuğunu Göster" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 Uygulamasını &Yapılandır..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Hakkında" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Bul" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Sonrakini Bul" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Yazı Tipi Seç" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Uyumsuz yazı tipi." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Riski göze alarak devam et" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Başka bir yazı tipi seç" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3-Kullanımı" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Yoksay" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Çık" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Geçici dosyaya pano verisi yazma başarısız." #: diff.cpp:255 msgid "From Clipboard" msgstr "Panodan" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Önişleme başarısız oldu. Şu komutu inceleyin:\n" "\n" " %1\n" "\n" "Önişleme komutu artık devre dışı bırakılacak." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Satır-eşleme-önişleme başarısız oldu. Şu komutu inceleyin:\n" "\n" " %1\n" "\n" "Satır-eşleme-önişleme komutu devre dışı bırakılacak." #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Veri kaybı hatası:\n" "Bu durum tekrarlanabilir bir durumsa lütfen yazarla iletişim kurun.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Ciddi Dahili Hata" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Bağların ve normal dosyaların karışımı." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Bağ: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Boyut. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Tarih & Boyut: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "%1 dosyasının geçici kopyasının oluşturulmasında hata oluştu." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1 açılamadı." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Dosya karşılaştırılıyor..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1 konumundan okunamıyor" #: directorymergewindow.cpp:358 msgid "Name" msgstr "İsim" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "İşlem" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Durum" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Çözülmemiş" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Çözülmüş" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Beyaz değil" #: directorymergewindow.cpp:359 msgid "White" msgstr "Beyaz" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Şu anda bir dizin birleştirmesi yapıyorsunuz. Birleştirmeden çıkmak ve " "dizini yeniden taramak istediğinizden emin misiniz?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Uyarı" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Yeniden Tara" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Birleştirmeye Devam Et" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Dizinler açılamadı:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "A Dizini \"%1\" mevcut değil ya da bu bir dizin değil.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "B Dizini \"%1\" mevcut değil ya da bu bir dizin değil.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "C Dizini \"%1\" mevcut değil ya da bu bir dizin değil.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Dizin Açma Hatası" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "3 dizin birleştirilirken hedef dizin A ya da B ile aynı olmamalıdır.\n" "Devam etmeden önce kontrol ediniz." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parametre Uyarısı" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Dizinler taranıyor..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "A Dizini Okunuyor" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "B Dizini Okunuyor" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "C Dizini Okunuyor" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Bazı altdizinler okunabilir değildi" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Altdizinlerin izinlerini kontrol ediniz." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Hazır." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Dizin Karşılaştırma Durumu" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Altdizinlerin sayısı:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Eşit dosyaların sayısı:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Farklı dosyaların sayısı:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "El ile birleştirmelerin sayısı:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Bu, tüm birleştirme işlemlerini etkiler." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Tüm Birleştirme İşlemleri Değiştiriliyor" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "İşleniyor" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Yapılacak." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A'yı B'ye kopyala" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B'yi A'ya kopyala" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A'yı Sil" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B'yi Sil" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A ve B'yi Sil" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "A ile Birleştir" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "B ile Birleştir" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "A ve B ile Birleştir" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "(varsa) Sil" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Birleştir" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Birleştir (el ile)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Hata: Çakışan Dosya Türleri" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Hata: Tarihler aynı fakat dosyalar aynı değil." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Bu işlem şu anda yapılabilir değil." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "İşlem Yapılabilir Değil" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Bu, hiç oluşmamalı: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Bu durumun nasıl tekrarlanacağını biliyorsanız, lütfen uygulamanın yazarıyla " "iletişime geçin." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Uygulama Hatası" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Koplayanırken hata oluştu.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Hata" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Birleştirme Hatası" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Hata." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Tamamlandı." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Kaydedilmedi." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Bilinmeyen birleştirme işlemi. (Bu, hiçbir zaman oluşmamalı!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Bilinmeyen birleştirme işlemi." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Birleştirme başlamak üzere.\n" "\n" "Açıklamaları okuduysanız ve ne yaptığınızı biliyorsanız \"Yap\"ı seçin.\n" "\"Dene\"yi seçmek size ne olabileceğini gösterir.\n" "\n" "Bu uygulama hala beta durumundadır ve ne olursa olsun hiçbir GARANTİSİ " "YOKTUR! Önemli verilerinizin yedeğini alın!!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Birleştirme Başlıyor" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Yap" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Dene" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Renklendirilmiş nesne, değişik dizinlerde değişik dosya türüne sahip. Ne " "yapılacağını seçiniz." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Dosyaların değiştirilme tarihleri aynı fakat dosyalar aynı değil. Ne " "yapılacağını seçiniz." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Bu işlem şu anda yapılamaz çünkü dizin birleştirmesi hala devam ediyor." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Son adımda bir hata oluştu.\n" "Hata oluşturan nesne ile devam etmek mi yoksa bu nesneyi atlamak mı " "istiyorsunuz?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Bir hatadan sonra birleştirmeye devam et" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Son Nesne ile Devam Et" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Nesneyi Atla" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Atlandı" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Uygulanıyor..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Birleştirme işlemi tamamlandı." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Birleştirme Tamamlandı" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Bir hata oluştu. Detaylı bilgi görmek için Tamam düğmesine basın.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Hata: %1 silinirken oluştu: Yedek alınamadı." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "dizini özyinelemeli olarak sil( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "sil( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Hata: dizin okunmaya çalışırken dizini silme işlemi başarısız oldu." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Hata: rmdir( %1 ) işlemi başarısız oldu." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Hata: silme işlemi başarısız oldu." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "el ile birleştir( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Not: El ile birleştirmeden sonra kullanıcı F7 ile devam etmelidir." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Hata: kopyala( %1 -> %2) başarısız oldu. Mevcut hedefin silinmesi başarısız " "oldu." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "BağıKopyala( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Hata: BağıKopyala başarısız oldu: Uzak bağlar henüz desteklenmiyor." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Hata: BağıKopyala başarısız oldu." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopyala( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Yeniden isimlendirilirken ( %1 -> %2 ) hata oluştu: Mevcut hedef silinemiyor." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "yeniden isimlendir( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Hata: Yeniden isimlendirme başarısız oldu." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "%1 klasörü oluşturulurken hata: Mevcut dosya silinemiyor." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "dizin oluştur( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Dizin oluşturulması sırasında hata oluştu." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Hedef" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dizin" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tür" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Boyut" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Özellikler" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Son Değiştirme" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Bağ-Hedefi" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Dosya" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "mümkün değil" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Hedef):" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Temel): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Hedef): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Hedef): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Hedef: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Dizin Birleştirme Durumunu Farklı Kaydet..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Dizin Birleştirmesini Başlat/Devam Et" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Mevcut Nesne için İşlem Başlat" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Seçili Dosyayı Karşılaştır" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Mevcut Dosyayı Birleştir" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Birleştir\n" "Dosya" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Tüm Alt Dizinleri Kapat" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Tüm Alt Dizinleri Aç" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Tüm Nesneler için A'yı Seç" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Tüm Nesneler için B'yi Seç" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Tüm Nesneler için C'yi Seç" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Tüm Nesneler için Atomatik-Seçim İşlemi" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Tüm Nesneler için Hiçbir Seçim" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Özdeş Dosyaları Göster" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Özdeş\n" "Dosyalar" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Farklı Dosyaları Göster" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Seçilen Dosyaları Karşılaştır" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Seçilen Dosyaları Birleştir" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Bir Şey Yapma" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "A && B'yi Sil" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "A && B ile Birleştir" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows yükleyici" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-yardımı" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Pano-yaması" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Yardımı" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Dizin Denklik-Renklendirmesi yaması" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac desteği" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE4 geçişi" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "Girdiyi birleştir." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Çakışmaları otomatik çözme. (Uyumluluk için...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "Farklı bir yapılandırma dosyası kullan." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "açılacak ikinci dosya" #: main.cpp:213 msgid "file3 to open" msgstr "açılacak üçüncü dosya" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Bekleyen çözülmeyen çakışmaların sayısı: %1 (%2 beyaz alan)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Çıktı üzerinde değişiklik yapıldı.\n" "Devam ederseniz değişiklikleri kaybedeceksiniz." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Tüm girdi dosyaları aynı metni içeriyor." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "%1 ve %2 dosyaları ikili olarak denk.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "%1 ve %2 dosyaları aynı metne sahip. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Toplam çakışma sayısı: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Otomatik çözülen çakışmaların sayısı: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Çözülmeyen çakışmaların sayısı: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Çakışmalar" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Daha tüm çakışmalar çözülmedi.\n" "Dosya kaydedilmedi.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Çakışmalar Var" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Dosya Kaydetme Hatası" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Yazılırken hata oluştu." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Çıktı" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Değişiklik Yapıldı]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Kaydetme kodlaması" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Satır ve biçim:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Çakışma" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Karşılaştırılacak dosya bulunamadı." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Yedekleme yapılırken, eski bir yedeğin silinmesi başarısız oldu.\n" "Dosya adı: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Yedekleme yapılırken, yeniden isimlendirme başarısız oldu.\n" "Dosya adları: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Dosya durumu okunuyor: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Dosya okunuyor: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Dosya yazılıyor: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Hafıza yetersizliği" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Dizin oluşturuluyor: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Dizin siliniyor: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Dosya siliniyor: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Sembolik bağ oluşturuluyor: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Dosya yeniden isimlendiriliyor: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Dosya kopyalanıyor: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Dosya kopyalanırken hata oluştu: Dosya okunmak için açılamadı. Dosya adı: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Dosya kopyalanırken hata oluştu: Dosya yazılmak için açılamadı. Dosya adı: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Dosya kopyalanırken hata oluştu: Okunamadı. Dosya adı: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Dosya kopyalanırken hata oluştu: Yazılamadı. Dosya adı: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Okuma dizini: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listeleme dizini: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&İptal" #: difftextwindow.cpp:403 msgid "Line" msgstr "Satır" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Satır kullanılabilir değil" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kodlama:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "En üst satır" #: difftextwindow.cpp:1769 msgid "End" msgstr "Son" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Geçerli Yapılandırma:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Yapılandırma Seçeneği Hatası:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "--auto seçeneği kullanıldı, fakat çıktı dosyası belirtilmedi." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "--auto seçeneği dizin karşılaştırmasını reddetti." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Kaydetme başarısız oldu." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Şu dosyaların açılması başarısız oldu:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Dosya Açma Hatası" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Karşılaştırmak için belge açar..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Yeniden Yükle" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Birleştirme sonuçlarını kaydeder. Tüm çakışmalar çözülmelidir!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Mevcut belgeyi farklı kaydeder..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Farkları yazdır" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Uygulamadan çıkar" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Seçili bölümü keser ve panoya koyar" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Seçili bölümü panoya kopyalar" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Pano içeriklerini mevcut alana yapıştırır" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Geçerli penceredeki herşeyi seç" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Bir satırı ara" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Satırı tekrar ara" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Durum çubuğunu açar/kapatır" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 Uygulamasını Yapılandır..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Mevcut Delta'ya Git" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "İlk Delta'ya Git" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Son Delta'ya Git" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(\"Boşluk Karakterini Göster\" seçeneği kapalı iken boşluk farklarını göz " "ardı eder.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(\"Boşluk Karakterini Göster\" seçeneği kapalı iken boşluk farklarını göz " "ardı etmez.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Önceki Delta'ya Git" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Sonraki Delta'ya Git" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Bir Önceki Çakışmaya Git" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Önceki\n" "Çakışma" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Bir Sonraki Çakışmaya Git" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Sonraki\n" "Çakışma" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Bir Önceki Çözülmeyen Çakışmaya Git" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Önceki\n" "Çözümlenmemiş" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Bir Sonraki Çözülmeyen Çakışmaya Git" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Sonraki\n" "Çözümlenmemiş" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "A'dan Satır(lar) Seç" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Seç\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "B'den Satır(lar) Seç" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Seç\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "C'den Satır(lar) Seç" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Seç\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Kaynak Seçiminden Sonra Otomatik Olarak Bir Sonraki Çözülmeyen Çakışmaya Git" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Otomatik\n" "Sonraki" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Farklar için Boşluk && Sekme Karakterlerini Göster" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Beyaz\n" "Karakter" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Boşluğu Göster" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Satır Numaralarını Göster" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Satır\n" "Numaraları" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "A'yı Heryerde Seç" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "B'yi Heryerde Seç" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "C'yi Heryerde Seç" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Tüm Çözümlenmemiş Çakışmalar için A'yı Seç" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Tüm Çözümlenmemiş Çakışmalar için B'yi Seç" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Tüm Çözümlenmemiş Çakışmalar için C'yi Seç" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Tüm Çözümlenmemiş Beyaz Alan Çakışmaları için A'yı Seç" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Tüm Çözümlenmemiş Beyaz Alan Çakışmaları için B'yi Seç" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Tüm Çözümlenmemiş Beyaz Alan Çakışmaları için C'yi Seç" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Basit Çakışmaları Otomatik Olarak Çöz" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Geçmiş Çakışmalarını Otomatik Olarak Çözümle" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "A Penceresini Göster" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "B Penceresini Göster" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "C Penceresini Göster" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Bir Sonraki Pencereye Odaklan" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normal Öngörünüm" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A - B Karşılaştırılması Öngörünümü" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A - C Karşılaştırılması Öngörünümü" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B - C Karşılaştırılması Öngörünümü" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Bir Önceki Pencereye Odaklan" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Birleştirme sonucu kaydedilmedi." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Kaydet ve Çık" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Kaydetmeden Çık" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Birleştirme sonucunun kaydedilmesi başarısız oldu." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Şu anda bir dizin birleştirmesi gerçekleştiriyorsunuz. Çıkmak istediğinizden " "emin misiniz?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Dosya kaydediliyor..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Dosya yeni bir isimle kaydediliyor..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Yazdırma işlemi tamamlandı." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Yazdırma..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Seçim" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Yazdırma işlemi tamamlandı." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Yazdırma işlemi sonlandırıldı." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Çıkılıyor..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Araç çubuğu açılıyor/kapatılıyor..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Durum çubğunu göster/sakla..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Temel):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Dosya..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Dizin..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (İsteğe Bağlı):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Takas yap %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "%1 Kopyala->Çıktı" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Takas yap %1<->Çıktı" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Çıktı (İsteğe Bağlı):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Yapılandır..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Tamam" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Aranacak metin:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Büyük ve küçük harfe duyarlı" #: smalldialogs.cpp:372 msgid "Search A" msgstr "A'yı Ara" #: smalldialogs.cpp:377 msgid "Search B" msgstr "B'yi Ara" #: smalldialogs.cpp:382 msgid "Search C" msgstr "C'yi Ara" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Çıktıyı Ara" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Ara" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Düzenli İfade Deneyici" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Örnek otomatik birleştirme satırı:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "Tamam" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Eşleme başarılı oldu." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Eşleme başarısız oldu." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "Yapılandır" #: optiondialog.cpp:531 msgid "Font" msgstr "Yazı Tipi" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Düzenleyici ve Karşılaştırıcı Çıktısı Yazıtipi" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Renk" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Renk Ayarları" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Düzenleyici ve Diff Görünümü:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Önplan rengi:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Arka alan rengi:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Karşılaştırıcı arka alanı rengi:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "A'nın rengi:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "B'nin rengi:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "C'nin rengi:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Çakışma rengi:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Dizin Karşılaştırma Görünümü:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "En yeni dosya rengi:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "En eski dosya rengi:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Kayıp dosyalar için renk:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Düzenleyici" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Düzenleyici Davranışı" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab tuşu boşluk yerleştirir" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tab boyutu:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Otomatik girintileme" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Seçimi otomatik olarak kopyala" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Pencere" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Otomatik Seç" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Diff Ayarları" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Beyaz alan olarak davran." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Numaraları yoksay" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ yorumlarını yoksay" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ yorumlarına boşluk olarak davran." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Büyük/küçük harfleri dikkate alma" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Birleştirme Ayarları" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Bilgi pencerelerini göster" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "El ile Seçim" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "En fazla geçmiş girdisi sayısı:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Düzenli ifadenizi test edin" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Dizin" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Özyinelemeli dizinler" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Altdizinlerin analiz edilip edilmeyeceği." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Dosya Türleri:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore kullan" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Gizli dosya ve dizinleri bul" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Gizli özelliğine sahip tüm dosya ve dizinleri bulur." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "'.' ile başlayan dosya ve dizinleri bulur." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Dosya bağlarını takip et" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Açık: Bağın işaret ettiği dosyayı karşılaştır.\n" "Kapalı: Bağları karşılaştır." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Dizin bağlarını takip et" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Açık: Bağın işaret ettiğin dizini karşılaştır.\n" "Kapalı: Bağları karşılaştır." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Büyük ve küçük harfe duyarlı karşılaştırma" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Dosya Karşılaştırma Kipi" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "İkili dosya karşılaştırması" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Tam analiz" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Değiştirilme tarihine ve boyutuna güven (güvenli değil)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Boyuta güven (güvenilir değil)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Dosya uzunlukları eşitse dosyaların aynı olduğunu varsay.\n" "Tarih, indirme sırasında değiştirildiğinde büyük dizinler ve yavaş ağlar " "için kullanışlıdır." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Dizinleri eşzamanla" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Birleştirmek yerine daha yeni olanı kopyala (güvenli değil)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "İçeriğe bakma, sadece daha yeni olan dosyayı al.\n" "(Bu seçeneği sadece ne yaptığınızı biliyorsanız kullanın!)\n" "Sadece iki dizini karşılaştırırken etkilidir." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Dosyaları yedekle (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Bir dosya eski bir dosyanın üzerine kaydedileceği zaman,\n" "eski dosya silinmek yerine '.orig' uzantısıyla kaydedilir." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Bölgesel Ayarlar" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Dil (yeniden başlatmak gerekir)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Herşey için aynı kodlamayı kullan:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Not: Yerel Kodlama " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "A için Dosya Kodlaması:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Unicode Kodlamasını Otomatik olarak Bul" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "B için Dosya Kodlaması:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "C için Dosya Kodlaması:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Otomatik Seç" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Sağdan Sola Yazılan Dil" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "Bütünleşme" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Bütünleşme Ayarları" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Esc tuşuyla da çık" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Uyumsuz Yazıtipi" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Riski Göze Alarak Devam Et" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Başka Bir Yazıtipi Seç" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Bu, sadece bu bölümdekileri değil, tüm seçenekleri sıfırlar." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Güvenli Olmayan Seçenekleri Pasifleştir" #: pdiff.cpp:300 msgid "Loading A" msgstr "A yükleniyor" #: pdiff.cpp:304 msgid "Loading B" msgstr "B Yükleniyor" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "C Yükleniyor" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "%1 ve %2 dosyaları denk metinlere sahip ama ikili (binary) olarak denk " "değil.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Çık" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Dosyalar açılıyor..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Dosya açma hatası" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Seçim kesiliyor..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Seçim panoya kopyalanıyor..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Pano içeriği yerleştiriliyor..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Kaydet ve Devam Et" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Kaydetmeden Devam Et" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Arama tamamlandı." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Arama Tamamlandı" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Serdar Soytetir" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "tulliana@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 Uygulamasını Yapılandır" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Ana Araç Çubuğu" #~ msgid "Directory Merge" #~ msgstr "Dizin Birleştirmesi" #~ msgid "C&ontinue" #~ msgstr "D&evam Et" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Görkem Çetin Engin ÇAĞATAY Alper Şen" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "gorkem@kde.org engincagatay@yahoo.com aalpersen@gmail.com" #~ msgid "Enables/disables the toolbar" #~ msgstr "Araç çubuğunu açar/kapatır" #~ msgid "Files A and C have equal text. \n" #~ msgstr "A ve C dosyaları aynı metne sahip. \n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "B ve C dosyaları aynı metne sahip. \n" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Karşılaştırma ve Birleştirme" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "Dizin Birleştirmesi" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "Dizin Birleştirmesi" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "Dizinler taranıyor..." #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "Birleştirmek yerine daha yeni olanı kopyala (güvenli değil)" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "El ile seçim" #, fuzzy #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "Bazı araçlarla uyumluluk için." #~ msgid "For compatibility with certain tools." #~ msgstr "Bazı araçlarla uyumluluk için." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "Düzenleyici ve Karşılaştırıcı Çıktısındaki Renkler" kdiff3-0.9.97/po/hne/0000755000175100001440000000000011626145654013522 5ustar joachimuserskdiff3-0.9.97/po/hne/CMakeLists.txt0000644000175100001440000000016411626145604016256 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(hne ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/hne/kdiff3.po0000644000175100001440000024475011626145604015237 0ustar joachimusers# # Ravishankar Shrivastava , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-03-20 10:56+0530\n" "Last-Translator: Ravishankar Shrivastava \n" "Language-Team: Hindi \n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Hindi\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "X-Generator: Lokalize 0.3\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "जारी रखव" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr " खारिज करव" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "बाहिर जाव" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "ठीक" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "मदद" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "डिफाल्ट" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "फाइल (&F)" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "संपादन (&E)" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "डिरेक्टरी (&D)" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "गतिविधि (&M)" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "डिफव्यू (&i)" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "सम्मिलित करव (&M)" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "विंडो (&W)" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "सेटिंग (&S)" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "मदद (&H)" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "परिचय (&A)" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "लेखकः (&u)" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "ए मन ल धन्यवाद (&T)" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "अभी हाल के चीज सम्मिलित करे के काम" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "अभी हाल के चीज सिंक आपरेसन" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "खोलव" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "सहेजव" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "अइसन सहेजव..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "छापव..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "काटव" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "नकल" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "चिपकाव" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "सब्बो चुनव" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "औजार-पट्टी देखाव" #: kreplacements/kreplacements.cpp:679 #, fuzzy msgid "Show &Status Bar" msgstr "स्थिति पट्टी देखाव (&S)" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "कान्फिगर %1 (&C)..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "परिचय" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "खोजव" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "अगला खोजव" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "फोंट चुनव" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "फोंट असंगत हे" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "अपने अपन के जोखिम मं जारी रखव" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "अऊ दूसर फोंट चुनव" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "के-डिफ3 उपयोग" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "अनदेखा करव" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "बाहिर" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "क्लिपबोर्ड डाटा ल अस्थाई फाइल मं लिखना फेल." #: diff.cpp:255 msgid "From Clipboard" msgstr "क्लिपबोर्ड से" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "गंभीर अंदर के गलती" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "संकली के मिलावटें अउ सामान्य फाइल मन ल." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "कड़ी" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "आकार." #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "तारीक अउ आकार:" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "%1 के अस्थाई नकल बनाना फेल." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1 ल खोलना फेल" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "फाइल के तुलना करत हे ..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1 से पढ़े मं गलती" #: directorymergewindow.cpp:358 msgid "Name" msgstr "नाम" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "आपरेसन" #: directorymergewindow.cpp:358 msgid "Status" msgstr "स्थिति" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "हल नइ" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "हल कर ले गिस" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "सफेद-नइ" #: directorymergewindow.cpp:359 msgid "White" msgstr "सफेद" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "चेतावनी" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "री-स्कैन" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "मिलाय जाना जारी रखव" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "डिरेक्टरीज खोलना फेल:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "डिरेक्टरी अ \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "डिरेक्टरी ब \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "डिरेक्टरी स \"%1\" या तो मौजूद नइ हे या फिर वो डिरेक्टरी नइ हे.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "डिरेक्टरी खोले मं गलती" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "पैरामीटर चेतावनी" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "डिरेक्टरीज स्कैन करत हे..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "डिरेक्टरी अ ल पढ़त हे" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "डिरेक्टरी ब ल पढ़त हे" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "डिरेक्टरी स ल पढ़त हे" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "कुछ सबडिरेक्टरीज ये मां पढ़े नइ जा सके वाले हे" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "सबडिरेक्टरीज के अनुमति जांचव." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "तैयार." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "डिरेक्टरी तुलना स्थिति" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "सबडिरेक्टरीज के संख्या:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "समान फाइल मन के संख्या:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "भिन्न फाइल मन के संख्या:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "हस्तचालित सम्मिलित करे के संख्या:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "ये सब्बो सम्मिलित आपरेसन ल प्रभावित करही" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "सब्बो सम्मिलित करे के आपरेसन ल बदलत हे" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "प्रोसेसिंग" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "काम-सूची" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "अ के नकल ब मं करव" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "ब के नकल अ मं करव" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "अ ल मेटाव" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "ब ल मेटाव" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "अ अउ ब ल मेटाव" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "अ मं सम्मिलित करव" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "ब मं सम्मिलित करव" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "अ अउ ब मं सम्मिलित करव" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "मेटाव (यदि मौजूद हे)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "सम्मिलित करव" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "सम्मिलित करव (हस्तचालित)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "गलती: आपसी विरोधी फाइल किसिम" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "गलती: तारीकें तहां एक समान हे, फेर फाइल मन ल नइ." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "ये आपरेसन अभी हाल के मं संभव नइ हे." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "आपरेसन अभी हाल के मं संभव नइ" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "प्रोग्राम गलती" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "नकल करे के समय एक गलती होइस.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "गलती" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "सम्मिलित करे मं गलती" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "गलती." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "पूरा." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "सहेजिस नइ गिस." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "सम्मिलित करे के अग्यात आपरेसन. (अइसन कभू नइ होना चाही!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "सम्मिलित करे के अग्यात आपरेसन. " #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "सम्मिलित करना चालू करत हे" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "एला करव" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "एला सिमुलेट करव" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "गलती के बाद घलोक सम्मिलित करना जारी रखव" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "पिछला चीज के साथ जारी रखव" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "चीज छोड़व" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "छोड़ा." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "प्रगति मं हे..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "सम्मिलित करे के काम पूरा होइस." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "सम्मिलित करना पूरा" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "एक गलती होइस. विस्तृत जानकारी देखे बर ठीक ल दबाव\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "गलती: %1 ल मेटाव के समय: बैकअप बनाए मं फेल." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "डिरेक्टरी ( %1 ) ल रिकर्सिवली मेटाव" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "मेटाव (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "गलती: डिरेक्टरी ल पढ़े के कोसिस मं डिरेक्टरी मेटाव के काम फेल." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "गलती: rmdir( %1 ) काम फेल." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "गलती: डिरेक्टरी मेटाव के काम फेल." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "हस्तचालित सम्मिलित करव( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "टीप: हस्तचालित सम्मिलित करे के बाद कमइया ल F7 ल दबाकर जारी रखना चाही." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "गलती: नकल ( %1 -> %2 ) फेल. अभी हाल के गंतव्य ल मिटाना फेल." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "कापीसंकली ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "गलती: कापीसंकली फेल: रिमोट कड़ियाँ अभी समर्थित नइ हे." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "गलती: कापीसंकली फेल." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "नकल( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "नाम बदलव( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "गलती: नाम-बदलना फेल." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "%1 के मेकडिर के समय गलती. अभी हाल के फाइल मिटा नइ सकहू." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "मेकडिर( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "डिरेक्टरी बनाए के समय गलती." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "गंतव्य" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "डिर." #: directorymergewindow.cpp:2678 msgid "Type" msgstr "किसिम" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "आकार" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "एट्रि." #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "आखरी परिवर्धन" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "संकली-गंतव्य" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "फाइल" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "नइ मिलत" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (गंत.): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (आधार): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (गंत.): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (गंत.): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "गंतव्य:" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "डिरेक्टरी सम्मिलित करना चालू करव/जारी रखव" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "अभी हाल के चीज बर आपरेसन चलाव" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "चुने गे फाइल के तुलना करव" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "अभी हाल के फाइल सम्मिलित करव" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "फाइल\n" "मिलाव" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "सब्बो सबडिरेक्टरीज फोल्ड करव" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "सब्बो सबडिरेक्टरीज अनफोल्ड करव" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "सब्बो चीज मन बर अ के चुनव" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "सब्बो चीज मन बर ब के चुनव" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "सब्बो चीज मन बर स के चुनव" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "सब्बो चीज मन बर काम अपने अपन चुनव" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "सब्बो चीज मन बर कोनो काम नइ" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "भिन्न फाइल देखाव" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "कुछ नइ करव" #: directorymergewindow.cpp:2989 msgid "A" msgstr "अ" #: directorymergewindow.cpp:2990 msgid "B" msgstr "ब" #: directorymergewindow.cpp:2991 msgid "C" msgstr "स" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "अ अउ ब ल मेटाव" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "अ अउ ब मं सम्मिलित करव" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "के-डिफ3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "विंडोस इंस्टालर" #: main.cpp:175 msgid "Stephan Binner" msgstr "स्टीफन बिनर" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "क्लिपबोर्ड पैच" #: main.cpp:177 msgid "David Faure" msgstr "डेविड फाउरे" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "बर्नद गेहमन" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "सर्जेई जोरिन" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "माइकल स्मिट" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "केडीई4 पोर्टिंग" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "अलबर्ट एस्टल्स सिड" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "इनपुट मिलाव." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "आउटपुट फाइल. इम्प्लाइस -m. उदा.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "आउटपुट फाइल, फिर से. (कुछ औजार मन के साथ कम्पेटिबिलिटी बर.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "इनपुट फाइल 1 (आधार) बर विजिबल नाम रीप्लेसमेंट." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "इनपुट फाइल 2 बर विजिबल नाम रीप्लेसमेंट." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "इनपुट फाइल 3 बर विजिबल नाम रीप्लेसमेंट." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "खोले बर फाइल1 (आधार, यदि एखर साथ निरधारित नइ --base)" #: main.cpp:212 msgid "file2 to open" msgstr "खोले बर फाइल2" #: main.cpp:213 msgid "file3 to open" msgstr "खोले बर फाइल3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "आउटपुट सुधारे जा गे हे.\n" "यदि आप मन जारी रखथो तहां आप मन के बदलाव खो जाही." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "सब्बो इनपुट फाइल बाइनरी समान हे." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "सब्बो इनपुट फाइल मन ल एके पाठ रखे हे." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "आपसी विरोधों के कुल संख्या:" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "अपने अपन समाधान करे विरोधाभासों के संख्या: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "समाधान-रहित विरोधाभासों के संख्या: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "आपसी विरोध" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<कोई स्रोत लकीर नइ>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<विरोधाभास (सिरिफ सफेद जगह) सम्मिलित करव>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<विरोधाभास सम्मिलित करव>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "अब तक सब्बो विरोधाभासों के समाधान नइ करे गे हे.\n" "फाइल सहेजे नइ गिस.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "विरोधाभास डेरी " #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "फाइल सहेजे मं गलती" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "लिखे के समय गलती." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "आउटपुट" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[परिवर्धित]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "लकीर खतम होए के सैलीः" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy msgid "Conflict" msgstr "आपसी विरोध" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "तुलना बर फाइल मन ल नइ खोज सकिस" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "के-डिफ3पार्ट" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "फाइल स्थिति प्राप्त करत हे : %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "फ़ाइल पढ़त हे: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "फाइल: %1 लिखत हे" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "मेमोरी कम पड़ गिस" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "डिरेक्टरी बनात हे: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "डिरेक्टरी मिटात हे: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "फाइल मिटात हे: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "सिंबालिक संकली बनावत हे: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "फाइलनाम बदलत हे: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "फाइल नकल करत हे : %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "फाइल के नकल करे के काम के समय गलती: फाइल ल पढ़े बर खोले मं फेल. फाइल-नाम: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "फाइल के नकल करे के काम के समय गलती: फाइल ल लिखे बर खोले मं फेल. फाइल-नाम: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "फाइल के नकल करे के काम के समय गलती: पढ़े मं फेल. फाइल-नाम: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "फाइल के नकल करे के काम के समय गलती: लिखे मं फेल. फाइल-नाम: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "डिरेक्टरी ल पढ़त हे:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "डिरेक्टरी सूची मं करत हे : %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 msgid "Line" msgstr "पंक्ति" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "लाइन नइ मिलत हे" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "सबसे ऊपर के लाइन" #: difftextwindow.cpp:1769 msgid "End" msgstr "आखरी" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "अभी हाल के कान्फिगरेसन:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "विकल्प --auto के उपयोग करिस, तिर कोनो आउटपुट फाइल निरधारित नइ." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "विकल्प --auto ल डिरेक्टरी तुलना करे मं छोड़ दे गिस." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "सहेजे मं फेल." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "ए फाइल मन ल खोलना फेल:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "फाइल खोले मं गलती" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "कागद मन ल तुलना बर खोलथे ..." #: kdiff3.cpp:479 msgid "Reload" msgstr "री-लोड" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "अभी हाल के कागद अइसन सहेजथे ..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "अनुपरयोग से बाहिर होथे " #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "चुने हुए अंस ल क्लिपबोर्ड मं नकल करथे " #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "क्लिपबोर्ड अवयव मन ल सही जगह मं चिपकाथे " #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "स्ट्रिंग बर खोजव" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "स्ट्रिंग बर फिर से खोजव" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "स्थिति-पट्टी सक्छम/अक्छम करव" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "के-डिफ3 ल कान्फिगर करव..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "अभी हाल के डेल्टा मं जाव" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "अभी हाल के\n" " डेल्टा" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "पहिली डेल्टा मं जाव" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "पहिली \n" "डेल्टा" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "आखरी डेल्टा मं जाव" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "आखरी\n" "डेल्टा" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "पिछला डेल्टा मं जाव" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "पिछला \n" "डेल्टा" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "अगला डेल्टा मं जाव" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "अगला \n" "डेल्टा" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "पिछले आपसी विरोधों मं जाव" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "पिछला\n" "आपसी विरोध" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "अगले आपसी विरोधों मं जाव" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "अगले \n" "आपसी विरोध" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "पिछले समाधान-रहित आपसी विरोधों मं जाव" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "पिछला\n" "हल नइ" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "अगले समाधान-रहित आपसी विरोधों मं जाव" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "अगला\n" "हल नइ" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "अ से लाइन चुनव" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "ब से लाइन चुनव" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "स से लाइन चुनव" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "अपने अपन \n" "अगला" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "भिन्नताओं बर टेबुलेटर अक्छर अउ जगह देखाव " #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "सफेद जगह देखाव" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "लकीर नंबर देखाव" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "लकीर \n" "नंबर" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "सब्बो जगह अ चुनव" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "सब्बो जगह ब चुनव" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "सब्बो जगह स चुनव" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "सब्बो समाधान-रहित आपसी विरोधों बर अ चुनव" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "सब्बो समाधान-रहित आपसी विरोधों बर ब चुनव" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "सब्बो समाधान-रहित आपसी विरोधों बर स चुनव" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर अ चुनव" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर ब चुनव" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "सब्बो समाधान-रहित सफेद-जगह आपसी विरोधों बर स चुनव" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "सादा आपसी विरोधों के अपने अपन समाधान करव" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "डेल्टा ल आपसी विरोधों मं सेट करव" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "इतिहास आपसी विरोधों के अपने अपन समाधान करव" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "चुने गे डिफ मिलाव" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "विंडो अ देखाव" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "विंडो ब देखाव" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "विंडो स देखाव" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "अगले विंडो मं फोकस" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "सामान्य ओवरव्यू" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "अ वि. ब ओवरव्यू" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "अ वि. स ओवरव्यू" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "ब वि. स ओवरव्यू" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "वर्ड व्रेप डिफ विंडोज" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "पिछले विंडो मं फोकस" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "अलग करे के दिसा टागल करव" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "डिरेक्टरी अउ पाठ स्प्लिट स्क्रीन दृस्य" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "डिरेक्टरी अउ पाठ दृस्य के बीच टागल करव" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "सम्मिलित करे के परिनाम अभी सहेजे नइ गिस." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "सहेजव अउ बाहिर हों" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "सहेजे बिना बाहिर हों" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "सम्मिलित करे जाय के परिनाम सहेजना फेल." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "फाइल सहेजत हे..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "फाइल नवा फाइलनाम के साथ सहेजत हे..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "सम्मिलित करे के काम पूरा होइस." #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "छापव..." #: kdiff3.cpp:956 #, fuzzy msgid "Selection" msgstr "फोंट चुनव" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "सम्मिलित करे के काम पूरा होइस." #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "सम्मिलित करे के काम पूरा होइस." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "बाहिर होवत हे..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "टूलबार टागल करत हे..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "स्थिति पट्टी टागल करव..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "अ (बेस):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "फाइल..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "डिर.:" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "स (वैकल्पिक):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "आउटपुट (वैकल्पिक):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "कान्फिगर...." #: smalldialogs.cpp:174 msgid "&OK" msgstr "ठीक (&O)" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "पाठ खोजव:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "केस सेंसिटिव" #: smalldialogs.cpp:372 msgid "Search A" msgstr "खोजव अ" #: smalldialogs.cpp:377 msgid "Search B" msgstr "खोजव ब" #: smalldialogs.cpp:382 msgid "Search C" msgstr "खोजव स" #: smalldialogs.cpp:387 msgid "Search output" msgstr "खोजे के बाद् आउटपुट" #: smalldialogs.cpp:392 msgid "&Search" msgstr "खोजव (&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "रेगुलर एक्सप्रेसन जंचइया" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "छंटइया सूची परिनाम:" #: smalldialogs.cpp:508 msgid "OK" msgstr "ठीक" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "मैच फेल." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "युनिकोड, 8 बिट" #: optiondialog.cpp:368 msgid "Unicode" msgstr "युनिकोड" #: optiondialog.cpp:369 msgid "Latin1" msgstr "लेटिन-१" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "कान्फिगर...." #: optiondialog.cpp:531 msgid "Font" msgstr "फोंट" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "संपादक अउ डिफ आउटपुट फोंट" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "डेल्टाज बर इटैलिक फोंट" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "रंग" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "रंग सेटिंग" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "आगू तरफ के रंगः" #: optiondialog.cpp:603 msgid "Background color:" msgstr "पिछोत अंगना के रंगः" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "डिफ पिछोत अंगना रंगः" #: optiondialog.cpp:620 msgid "Color A:" msgstr "रंग अ:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "रंग ब:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "रंग स:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "विरोधाभास बर रंग:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "अभी हाल के सीमा पिछोत अंगना रंग:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "अभी हाल के सीमा डिफ पिछोत अंगना रंग:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "डिरेक्टरी तुलना दृस्य:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "संपादक" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "संपादक व्यवहार" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "टैब जगह भरव करथे " #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "टैब आकारः" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "अपने अपन हासिया छोड़ना" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "अपने अपन नकल चयन" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "विंडो (&W)" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "अपने आप चुनव" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "डिफ" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "डिफ सेटिंग" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "सफेद जगह के रूप मं समझव." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "संख्या मन ल अनदेखा करव" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ कमेंट्स ल अनदेखा करव" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ कमेंट्स ल सफेद जगह के रूप मं समझव" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "केस अनदेखा करव" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "केस डिफरेंसेस ल सफेद जगह बदले के रूप मं समझव. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "प्री-प्रोसेसर कमांड:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "कमइया परिभासित प्री-प्रोसेसिंग. (विवरन बर कागद देखव.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "लाइन-मैचिंग प्री-प्रोसेसर कमांड:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "गंभीर कोसिस करव (धीमा)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "मिलाय के सेटिंग" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "अपने अपन एडवान्स देरी (मि.से.):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "जानकारी गोठ देखाव" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "सफेद जगह 2-फाइल सम्मिलित डिफाल्ट:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "हस्तचालित चुनाव" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "सफेद जगह 3-फाइल सम्मिलित डिफाल्ट:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "इतिहास प्रविस्टि के सबसे बड़े संख्या:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy msgid "Directory" msgstr "डिरेक्टरी (&D)" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "डिरेक्टरीज रिकर्सिव करव" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "का सबडिरेक्टरीज ल विस्लेसन करना हे या नइ. " #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "फाइल पैटर्न:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "फाइल-एन्टी-पैटर्न:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "डिर-एन्टी-पैटर्न:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore के उपयोग करव" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "लुकाए फाइल मन ल अउ डिरेक्टरीज खोजव" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "हिडन एट्रिब्यूट वाले फाइल अउ डिरेक्टरीज ल खोजव." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "'.'. से चालू हो रहे फाइल अउ डिरेक्टरीज ल खोजव" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "फाइल संकली के अनुसरन करव" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "डिरेक्टरी संकली के अनुसरन करव" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "फाइल तुलना मोड" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "बाइनरी तुलना" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "हर एक फाइल के बाइनरी तुलना. (डिफाल्ट)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "पूरा विस्लेसन" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "सुधारे के तारीक मं भरोसा करव (असुरक्छित)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 #, fuzzy msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "सुधारे के तारीक मं भरोसा करव (असुरक्छित)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "आकार मं भरोसा करव (असुरक्छित)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "डिरेक्टरीज सिंक्रोनाइज करव" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "सम्मिलित करे के बदला मा नवा के नकल करव (असुरक्छित)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "बैकअप फाइल मन ल (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "छेत्रीय सेटिंग" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "भाखा (फिर से चालू करना जरूरी हे)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "टीप: लोकल एनकोडिंग हे" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "अपने आप चुनव" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "इंटीग्रेसन" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "इंटीग्रेसन सेटिंग" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "फोंट असंगत हे" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "अपने अपन के जोखिम मं जारी रखव" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "अऊ दूसर फोंट चुनव" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "ये सब्बो विकल्प मन ल रीसेट करथे . सिरिफ उनको ही नइ जऊन अभी हाल के विसय मं हे. " #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "प्री-प्रोसेसर-कमांड:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "निम्न विकल्प जऊन आप मन चुने हेओ मन डाटा ल बदल सकथो :\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "सम्मिलित करे बर विकल्प असुरक्छित हे" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "ए विकल्प मन के उपयोग सम्मिलित करे के समय करव" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "असुरक्छित विकल्प अक्छम करव" #: pdiff.cpp:300 msgid "Loading A" msgstr "अ लोड करत हे" #: pdiff.cpp:304 msgid "Loading B" msgstr "ब लोड करत हे" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "डिफ: अ <-> ब" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "लाइनडिफ: अ <-> ब" #: pdiff.cpp:338 msgid "Loading C" msgstr "स लोड करत हे" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "डिफ: ब <-> स" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "डिफ: अ <-> स" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "लाइनडिफ: ब <-> स" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "लाइनडिफ: अ <-> स" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "छोड़व" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "फाइल मन ल खोलत हे..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "फाइल खोले मं गलती" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "चयन ल काटत हे..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "चुने हुए के नकल क्लिपबोर्ड मं बनात हे..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "क्लिपबोर्ड के चीज मन ल घुसात हे..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "सहेजव अउ जारी रखव" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "सहेजे बिना जारी रखव" #: pdiff.cpp:2018 msgid "Search complete." msgstr "ढूंढना पूरा" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "ढूंढना पूरा" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "रविसंकर सिरीवास्तव, जी. करूनाकर" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "raviratlami@aol.in" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "के-डिफ3 (&K)" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "के-डिफ3 ल कान्फिगर करव" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "के-डिफ3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "मुख्य औजार पट्टी" #~ msgid "Directory Merge" #~ msgstr "डिरेक्टरी सम्मिलित करव" #~ msgid "C&ontinue" #~ msgstr "जारी रखव (&o)" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "रविसंकर सिरीवास्तव" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "raviratlami@yahoo.com" #~ msgid "Enables/disables the toolbar" #~ msgstr "औजार-पट्टी सक्छम/अक्छम करव" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "फाइल मन ल अ अउ ब बाइनरी समान हे.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "फाइल मन ल अ अउ स बाइनरी समान हे.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "फाइल मन ल अ अउ स मं पाठ समान हे.\n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "फाइल मन ल ब अउ स बाइनरी समान हे.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "फाइल मन ल ब अउ स मं पाठ समान हे.\n" #~ msgid "Preserve carriage return" #~ msgstr "कैरिज रिटर्न बनाए रखव" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "डिफ अउ सम्मिलित" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "डिरेक्टरी सम्मिलित करव" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "डिरेक्टरी सम्मिलित करव" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "डिरेक्टरीज सिंक्रोनाइज करव" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "सम्मिलित करे के बदला मा नवा के नकल करव (असुरक्छित)" #~ msgid "List only deltas" #~ msgstr "सिरिफ डेल्टाज के सूची देव" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "बिना बदलाव मन के फाइल अउ डिरेक्टरीज सूची मं प्रकट नइ होही." #, fuzzy #~ msgid "no selection" #~ msgstr "अपने अपन नकल चयन" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "हस्तचालित चुनाव" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "कोई प्रभाव नइ. कुछ औजार मन के साथ कम्पेटिबिलिटी बर." #~ msgid "For compatibility with certain tools." #~ msgstr "कुछ औजार मन के साथ कम्पेटिबिलिटी बर." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "संपादक अउ डिफ आउटपुट मं रंग" #~ msgid "Text Diff and Merge Tool" #~ msgstr "पाठ डिफ अउ सम्मिलित करे के औजार" #~ msgid "" #~ "\n" #~ "\n" #~ "File not saved." #~ msgstr "" #~ "\n" #~ "\n" #~ "फाइल सहेजे नइ गिस." #~ msgid "Out of memory while preparing to save." #~ msgstr "सहेजे बर तैयारी करे के समय मेमोरी कम पड़ गिस." kdiff3-0.9.97/po/hi/0000755000175100001440000000000011626145654013350 5ustar joachimuserskdiff3-0.9.97/po/hi/CMakeLists.txt0000644000175100001440000000016311626145606016105 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(hi ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/hi/kdiff3.po0000644000175100001440000025550411626145606015066 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2005-01-22 16:10+0530\n" "Last-Translator: Ravishankar Shrivastava \n" "Language-Team: indlinux-hindi \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Hindi\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "जारी रखें (&o)" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy msgid "&File" msgstr "फ़ाइल..." #: kreplacements/kreplacements.cpp:297 #, fuzzy msgid "&Edit" msgstr "संपादक" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "डिरेक्ट्री (&D)" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "गतिविधि (&M)" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "डिफव्यू (&i)" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "सम्मिलित करें (&M)" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "विंडो (&W)" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "डिफ तथा सम्मिलित करने का विन्यास" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy msgid "&About" msgstr "छोड़ें" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "मौजूदा वस्तु सम्मिलित करने की क्रिया" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "मौजूदा वस्तु सिंक ऑपरेशन" #: kreplacements/kreplacements.cpp:597 #, fuzzy msgid "Open" msgstr "ऑपरेशन" #: kreplacements/kreplacements.cpp:606 #, fuzzy msgid "Save" msgstr "हल कर लिया गया" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "बाहर हो रहे हैं..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy msgid "Select All" msgstr "अ को मिटाएँ" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format msgid "&Configure %1..." msgstr "कॉन्फ़िगर...." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy msgid "About" msgstr "छोड़ें" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy msgid "Select Font" msgstr "अन्य फ़ॉन्ट चुनें" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 #, fuzzy msgid "Incompatible font." msgstr "फ़ॉन्ट असंगत है" #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Continue at my own risk" msgstr "अपने स्वयं के जोखिम पर जारी रखें" #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Select another font" msgstr "अन्य फ़ॉन्ट चुनें" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "KDiff3-Usage" msgstr "के-डिफ3" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Ignore" msgstr "केस अनदेखा करें" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Exit" msgstr "संपादक" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "क्लिपबोर्ड डाटा को अस्थाई फ़ाइल में लिखना असफल." #: diff.cpp:255 msgid "From Clipboard" msgstr "क्लिपबोर्ड से" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "गंभीर आंतरिक त्रुटि" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "कड़ियों की मिलावटें तथा सामान्य फ़ाइलें." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "कड़ी" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "आकार." #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "तारीख व आकार:" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "%1 की अस्थाई नक़ल बनाना असफल." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1 को खोलना असफल" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "फ़ाइल की तुलना की जा रही है..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1 से पढ़ने में त्रुटि" #: directorymergewindow.cpp:358 msgid "Name" msgstr "नाम" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "ऑपरेशन" #: directorymergewindow.cpp:358 msgid "Status" msgstr "स्थिति" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "हल नहीं" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "हल कर लिया गया" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "सफेद-नहीं" #: directorymergewindow.cpp:359 msgid "White" msgstr "सफेद" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "री-स्कैन" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "मिलाया जाना जारी रखें" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "डिरेक्ट्रीज़ खोलना असफल:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "डिरेक्ट्री अ \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "डिरेक्ट्री ब \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "डिरेक्ट्री स \"%1\" या तो मौजूद नहीं है या फिर वह डिरेक्ट्री नहीं है.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "डिरेक्ट्री खोलने में त्रुटि" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "पैरामीटर चेतावनी" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "डिरेक्ट्रीज़ स्कैन किया जा रहा है..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "डिरेक्ट्री अ को पढ़ा जा रहा है" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "डिरेक्ट्री ब को पढ़ा जा रहा है" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "डिरेक्ट्री स को पढ़ा जा रहा है" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "कुछ सबडिरेक्ट्रीज़ इसमें पढ़े नहीं जा सकने वाले हैं" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "सबडिरेक्ट्रीज़ की अनुमतियाँ जाँचें." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "तैयार." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "डिरेक्ट्री तुलना स्थिति" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "सबडिरेक्ट्रीज़ की संख्या:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "समान फ़ाइलों की संख्या:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "भिन्न फ़ाइलों की संख्या:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "हस्तचालित सम्मिलित करने की संख्या:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "यह सभी सम्मिलित ऑपरेशन को प्रभावित करेगा" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "सभी सम्मिलित करने के ऑपरेशन को बदला जा रहा है" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "प्रोसेसिंग" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "कार्य-सूची" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "अ की नक़ल ब में करें" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "ब की नक़ल अ में करें" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "अ को मिटाएँ" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "ब को मिटाएँ" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "अ तथा ब को मिटाएँ" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "अ में सम्मिलित करें" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "ब में सम्मिलित करें" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "अ तथा ब में सम्मिलित करें" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "मिटाएँ (यदि मौजूद है)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "सम्मिलित करें" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "सम्मिलित करें (हस्तचालित)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "त्रुटि: परस्पर विरोधी फ़ाइल क़िस्में" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "त्रुटि: तारीखें तो एक समान हैं, परंतु फ़ाइलें नहीं." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "यह ऑपरेशन वर्तमान में संभव नहीं है." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "ऑपरेशन वर्तमान में संभव नहीं" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "प्रोग्राम त्रुटि" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "नक़ल करने के दौरान एक त्रुटि हुई.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy msgid "Error" msgstr "त्रुटि." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "सम्मिलित करने में त्रुटि" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "त्रुटि." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "सम्पन्न." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "सहेजा नहीं गया." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "सम्मिलित करने का अज्ञात ऑपरेशन. (ऐसा कभी नहीं होना चाहिए!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "सम्मिलित करने का अज्ञात ऑपरेशन. " #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "सम्मिलित करना प्रारंभ किया जा रहा है" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "इसे करें" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "इसे सिमुलेट करें" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "त्रुटि के बाद भी सम्मिलित करना जारी रखें" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "पिछली वस्तु के साथ जारी रखें" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "वस्तु छोड़ें" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "छोड़ा." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "प्रगति पर है..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "सम्मिलित करने की क्रिया पूरी हुई." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "सम्मिलित करना सम्पन्न" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "एक त्रुटि हुई. विस्तृत जानकारी देखने के लिए ठीक को दबाएँ\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "त्रुटि: %1 को मिटाने के दौरान: बैकअप बनाने में असफल." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "डिरेक्ट्री ( %1 ) को रिकर्सिवली मिटाएँ" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "मिटाएं (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "त्रुटि: डिरेक्ट्री को पढ़ने की कोशिश में डिरेक्ट्री मिटाने का कार्य असफल." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "त्रुटि: rmdir( %1 ) क्रिया असफल." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "त्रुटि: डिरेक्ट्री मिटाने का कार्य असफल." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "हस्तचालित सम्मिलित करें( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" "टीप: हस्तचालित सम्मिलित करने के बाद उपयोक्ता को F7 को दबाकर जारी रखना चाहिए." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "त्रुटि: नक़ल ( %1 -> %2 ) असफल. मौजूदा गंतव्य को मिटाना असफल." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "कापीलिंक ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "त्रुटि: कापीलिंक असफल: रिमोट कड़ियाँ अभी समर्थित नहीं हैं." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "त्रुटि: कापीलिंक असफल." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "नक़ल( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "नाम बदलें( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "त्रुटि: नाम-बदलना असफल." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "%1 के मेकडिर के दौरान त्रुटि. मौजूदा फ़ाइल मिटा नहीं सकते." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "मेकडिर( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "डिरेक्ट्री बनाने के दौरान त्रुटि." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "गंतव्य" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "डिर." #: directorymergewindow.cpp:2678 msgid "Type" msgstr "क़िस्म" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "आकार" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "एट्रि." #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "अंतिम परिवर्धन" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "लिंक-गंतव्य" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy msgid "File" msgstr "फ़ाइल..." #: directorymergewindow.cpp:2726 msgid "not available" msgstr "उपलब्ध नहीं" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (गंत.): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (आधार): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (गंत.): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (गंत.): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "गंतव्य:" #: directorymergewindow.cpp:2836 #, fuzzy msgid "Save Directory Merge State As..." msgstr "डिरेक्ट्री सम्मिलित करें" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "डिरेक्ट्री सम्मिलित करना प्रारंभ करें/जारी रखें" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "मौज़ूदा वस्तु के लिए ऑपरेशन चलाएँ" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "चयनित फ़ाइल की तुलना करें" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "मौज़ूदा फ़ाइल सम्मिलित करें" #: directorymergewindow.cpp:2962 #, fuzzy msgid "" "Merge\n" "File" msgstr "सम्मिलित करें" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "सभी सबडिरेक्ट्रीज फ़ोल्ड करें" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "सभी सबडिरेक्ट्रीज अनफ़ोल्ड करें" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "सभी वस्तुओं के लिए अ का चयन करें" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "सभी वस्तुओं के लिए ब का चयन करें" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "सभी वस्तुओं के लिए स का चयन करें" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "सभी वस्तुओं के लिए क्रिया स्वचालित चयन करें" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "सभी वस्तुओं के लिए कोई क्रिया नहीं" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 #, fuzzy msgid "Show Different Files" msgstr "भिन्न फ़ाइलों की संख्या:" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 #, fuzzy msgid "Compare Explicitly Selected Files" msgstr "चयनित फ़ाइल की तुलना करें" #: directorymergewindow.cpp:2986 #, fuzzy msgid "Merge Explicitly Selected Files" msgstr "चयनित फ़ाइल की तुलना करें" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "कुछ नहीं करें" #: directorymergewindow.cpp:2989 msgid "A" msgstr "अ" #: directorymergewindow.cpp:2990 msgid "B" msgstr "ब" #: directorymergewindow.cpp:2991 msgid "C" msgstr "स" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "अ तथा ब को मिटाएँ" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "अ तथा ब में सम्मिलित करें" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy msgid "kdiff3" msgstr "के-डिफ3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy msgid "Clipboard-patch" msgstr "क्लिपबोर्ड से" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy msgid "Directory Equality-Coloring patch" msgstr "डिरेक्ट्री तुलना स्थिति" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy msgid "Sergey Zorin" msgstr "सम्मिलित करने में त्रुटि" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy msgid "KDE4 porting" msgstr "कुछ नहीं करें" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "इनपुट सम्मिलित करें." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "आउटपुट फ़ाइल. इम्प्लाइस -m. उदा.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "आउटपुट फ़ाइल, फिर से. (कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "इनपुट फ़ाइल 1 (आधार) के लिए विजिबल नाम रीप्लेसमेंट." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "इनपुट फ़ाइल 2 के लिए विजिबल नाम रीप्लेसमेंट." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "इनपुट फ़ाइल 3 के लिए विजिबल नाम रीप्लेसमेंट." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "भिन्न फ़ाइलों की संख्या:" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "खोलने के लिए फ़ाइल1 (आधार, यदि इसके द्वारा निर्दिष्ट नहीं --base)" #: main.cpp:212 msgid "file2 to open" msgstr "खोलने के लिए फ़ाइल2" #: main.cpp:213 msgid "file3 to open" msgstr "खोलने के लिए फ़ाइल3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, fuzzy, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "बचे हुए समाधान-रहित विरोधाभासों की संख्या: %1" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "आउटपुट परिवर्धित किया जा चुका है.\n" "यदि आप जारी रखते हैं तो आपके परिवर्तन खो जाएँगे." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "सभी इनपुट फ़ाइलें बाइनरी समान हैं." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "सभी इनपुट फ़ाइलें एक ही पाठ रखे हैं." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, fuzzy, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "फ़ाइलें ब तथा स बाइनरी समान हैं.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "फ़ाइलें अ तथा ब में पाठ समान हैं.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "परस्पर विरोधों की कुल संख्या:" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "स्वचालित समाधान किए विरोधाभासों की संख्या: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "समाधान-रहित विरोधाभासों की संख्या: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "परस्पर विरोध" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<कोई स्रोत पंक्ति नहीं>" #: mergeresultwindow.cpp:1736 #, fuzzy msgid "" msgstr "<विरोधाभास सम्मिलित करें>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<विरोधाभास सम्मिलित करें>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "अब तक सभी विरोधाभासों का समाधान नहीं किया गया है.\n" "फ़ाइल सहेजा नहीं गया.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "विरोधाभास बायाँ " #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "फ़ाइल सहेजने में त्रुटि" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "लिखने के दौरान त्रुटि." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "आउटपुट" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[परिवर्धित]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "पंक्ति ख़त्म होने की शैलीः" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy #| msgid "Conflicts" msgid "Conflict" msgstr "परस्पर विरोध" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "तुलना के लिए फ़ाइलों को नहीं ढूंढ सका" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "के-डिफ3पार्ट" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "फ़ाइल स्थिति प्राप्त की जा रही है: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "फ़ाइल पढ़ा जा रहा है: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "फ़ाइल: %1 लिखा जा रहा है" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "मेमोरी कम पड़ गई" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "डिरेक्ट्री बनाया जा रहा है: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "डिरेक्ट्री मिटाया जा रहा है: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "फ़ाइल मिटाया जा रहा है: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "सिंबालिक कड़ी बनाई जा रही है: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "फ़ाइलनाम बदला जा रहा है: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "फ़ाइल नक़ल की जा रही है: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: फ़ाइल को पढ़ने के लिए खोलने में असफल. फ़ाइल-" "नाम: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: फ़ाइल को लिखने के लिए खोलने में असफल. फ़ाइल-" "नाम: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: पढ़ने में असफल. फ़ाइल-नाम: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "फ़ाइल की नक़ल करने की क्रिया के दौरान त्रुटि: लिखने में असफल. फ़ाइल-नाम: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "डिरेक्ट्री को पढ़ा जा रहा है:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "डिरेक्ट्री सूचीबद्ध की जा रही है: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy msgid "Line" msgstr "कड़ी" #: difftextwindow.cpp:405 #, fuzzy msgid "Line not available" msgstr "उपलब्ध नहीं" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 #, fuzzy msgid "Top line" msgstr "शीर्ष पंक्ति %1" #: difftextwindow.cpp:1769 msgid "End" msgstr "अंत" #: kdiff3.cpp:169 #, fuzzy msgid "Current Configuration:" msgstr "मौजूदा वस्तु सिंक ऑपरेशन" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "फ़ाइल खोलने में त्रुटि" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "विकल्प --auto का उपयोग किया गया, परंतु कोई आउटपुट फ़ाइल निर्दिष्ट नहीं." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "विकल्प --auto को डिरेक्ट्री तुलना करने में छोड़ा गया." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "सहेजने में असफल." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "इन फ़ाइलों को खोलना असफल:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "फ़ाइल खोलने में त्रुटि" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "दस्तावेज़ों को तुलना के लिए खोलता है..." #: kdiff3.cpp:479 #, fuzzy msgid "Reload" msgstr "तैयार." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "मौजूदा दस्तावेज़ ऐसे सहेजता है..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "अनुप्रयोग से बाहर होता है" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "चुने हुए अंश को क्लिपबोर्ड पर नक़ल करता है" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "क्लिपबोर्ड अवयवों को सही स्थान पर चिपकाता है" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "स्ट्रिंग के लिए ढूंढें" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "स्ट्रिंग के लिए फिर से ढूंढें" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "स्थिति-पट्टी सक्षम/अक्षम करें" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "के-डिफ3 को कॉन्फ़िगर करें..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "मौज़ूदा डेल्टा में जाएँ" #: kdiff3.cpp:532 #, fuzzy msgid "" "Current\n" "Delta" msgstr "मौज़ूदा डेल्टा में जाएँ" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "प्रथम डेल्टा में जाएँ" #: kdiff3.cpp:534 #, fuzzy msgid "" "First\n" "Delta" msgstr "प्रथम डेल्टा में जाएँ" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "अंतिम डेल्टा में जाएँ" #: kdiff3.cpp:536 #, fuzzy msgid "" "Last\n" "Delta" msgstr "अंतिम डेल्टा में जाएँ" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "पिछला डेल्टा में जाएँ" #: kdiff3.cpp:540 #, fuzzy msgid "" "Prev\n" "Delta" msgstr "पिछला डेल्टा में जाएँ" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "अगला डेल्टा में जाएँ" #: kdiff3.cpp:542 #, fuzzy msgid "" "Next\n" "Delta" msgstr "अगला डेल्टा में जाएँ" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "पिछले परस्पर विरोधों में जाएँ" #: kdiff3.cpp:544 #, fuzzy msgid "" "Prev\n" "Conflict" msgstr "परस्पर विरोध" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "अगले परस्पर विरोधों में जाएँ" #: kdiff3.cpp:546 #, fuzzy msgid "" "Next\n" "Conflict" msgstr "अगले परस्पर विरोधों में जाएँ" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "पिछले समाधान-रहित परस्पर विरोधों में जाएँ" #: kdiff3.cpp:548 #, fuzzy msgid "" "Prev\n" "Unsolved" msgstr "हल नहीं" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "अगले समाधान-रहित परस्पर विरोधों में जाएँ" #: kdiff3.cpp:550 #, fuzzy msgid "" "Next\n" "Unsolved" msgstr "हल नहीं" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "अ से लाइन चुनें" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "ब से लाइन चुनें" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "स से लाइन चुनें" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "स्वचालित नक़ल चयन" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "भिन्नताओं के लिए टेबुलेटर अक्षर तथा जगह दिखाएँ " #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "सफेद जगह दिखाएँ" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "पंक्ति क्रमांक दिखाएँ" #: kdiff3.cpp:560 #, fuzzy msgid "" "Line\n" "Numbers" msgstr "पंक्ति क्रमांक दिखाएँ" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "सभी जगह अ चुनें" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "सभी जगह ब चुनें" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "सभी जगह स चुनें" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए अ चुनें" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए ब चुनें" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "सभी समाधान-रहित परस्पर विरोधों के लिए स चुनें" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए अ चुनें" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए ब चुनें" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "सभी समाधान-रहित सफेद-जगह परस्पर विरोधों के लिए स चुनें" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "सादा परस्पर विरोधों का स्वचालित समाधान करें" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "डेल्टा को परस्पर विरोधों में सेट करें" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 #, fuzzy msgid "Automatically Solve History Conflicts" msgstr "सादा परस्पर विरोधों का स्वचालित समाधान करें" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 #, fuzzy msgid "Join Selected Diffs" msgstr "चयनित फ़ाइल की तुलना करें" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "विंडो अ दिखाएँ" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "विंडो ब दिखाएँ" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "विंडो स दिखाएँ" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "अगले विंडो पर फोकस" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "सामान्य ओवरव्यू" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "अ वि. ब ओवरव्यू" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "अ वि. स ओवरव्यू" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "ब वि. स ओवरव्यू" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "वर्ड व्रेप डिफ विंडोज़" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "पिछले विंडो में फोकस" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "अलग करने की दिशा टॉगल करें" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "डिरेक्ट्री तथा पाठ स्प्लिट स्क्रीन दृश्य" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "डिरेक्ट्री तथा पाठ दृश्य के बीच टॉगल करें" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "सम्मिलित करने का परिणाम अभी सहेजा नहीं गया." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "सहेजें तथा बाहर हों" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "सहेजे बगैर बाहर हों" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "सम्मिलित किया जाने का परिणाम सहेजना असफल." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "फ़ाइल सहेजा जा रहा है..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "फ़ाइल नए फ़ाइलनाम के साथ सहेजा जा रहा है..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "सम्मिलित करने की क्रिया पूरी हुई." #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "बाहर हो रहे हैं..." #: kdiff3.cpp:956 #, fuzzy msgid "Selection" msgstr "अन्य फ़ॉन्ट चुनें" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "सम्मिलित करने की क्रिया पूरी हुई." #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "सम्मिलित करने की क्रिया पूरी हुई." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "बाहर हो रहे हैं..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "टूलबार टॉगल किया जा रहा है..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "स्थिति पट्टी टॉगल करें..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "अ (बेस):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "फ़ाइल..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "डिर.:" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "स (वैकल्पिक):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "आउटपुट (वैकल्पिक):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "कॉन्फ़िगर...." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "पाठ ढूंढें:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "केस सेंसिटिव" #: smalldialogs.cpp:372 msgid "Search A" msgstr "ढूंढें अ" #: smalldialogs.cpp:377 msgid "Search B" msgstr "ढूंढें ब" #: smalldialogs.cpp:382 msgid "Search C" msgstr "ढूंढें स" #: smalldialogs.cpp:387 msgid "Search output" msgstr "ढूंढने के पश्चात् आउटपुट" #: smalldialogs.cpp:392 msgid "&Search" msgstr "ढूंढें (&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 #, fuzzy msgid "Match failed." msgstr "सहेजने में असफल." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 #, fuzzy msgid "Configure" msgstr "कॉन्फ़िगर...." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "संपादक तथा डिफ़ आउटपुट फ़ॉन्ट" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "डेल्टाज़ के लिए इटैलिक फ़ॉन्ट" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "रंग" #: optiondialog.cpp:569 #, fuzzy msgid "Colors Settings" msgstr "क्षेत्रीय विन्यास" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "अग्रभूमि का रंगः" #: optiondialog.cpp:603 msgid "Background color:" msgstr "पृष्ठभूमि का रंगः" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "डिफ पृष्ठभूमि रंगः" #: optiondialog.cpp:620 msgid "Color A:" msgstr "रंग अ:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "रंग ब:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "रंग स:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "विरोधाभास के लिए रंग:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "वर्तमान सीमा पृष्ठभूमि रंग:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "वर्तमान सीमा डिफ पृष्ठभूमि रंग:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 #, fuzzy msgid "Directory Comparison View:" msgstr "डिरेक्ट्री तुलना स्थिति" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "संपादक" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "संपादक व्यवहार" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "टैब जगह प्रविष्ट करता है" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "टैब आकारः" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "स्वचालित हाशिया छोड़ना" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "स्वचालित नक़ल चयन" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "विंडो (&W)" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "स्वचालित नक़ल चयन" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "के-डिफ3" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "डिफ तथा सम्मिलित करने का विन्यास" #: optiondialog.cpp:809 #, fuzzy msgid "Treat as white space." msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "संख्याओं को अनदेखा करें" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ कमेंट्स को अनदेखा करें" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ कमेंट्स को सफेद जगह के रूप में समझें" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "केस अनदेखा करें" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "केस डिफरेंसेस को सफेद जगह परिवर्तन के रूप में समझें. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "प्री-प्रोसेसर कमांड:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "उपयोक्ता पारिभाषित प्री-प्रोसेसिंग. (विवरण के लिए दस्तावेज़ देखें.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "लाइन-मैचिंग प्री-प्रोसेसर कमांड:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "गंभीर कोशिश करें (धीमा)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "डिफ तथा सम्मिलित करने का विन्यास" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "स्वचालित एडवान्स देरी (मि.से.):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 #, fuzzy #| msgid "Show Window A" msgid "Show info dialogs" msgstr "विंडो अ दिखाएँ" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "सफेद जगह 2-फ़ाइल सम्मिलित डिफ़ॉल्ट:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "हस्तचालित चुनाव" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "सफेद जगह 3-फ़ाइल सम्मिलित डिफ़ॉल्ट:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "सबडिरेक्ट्रीज़ की संख्या:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "&Directory" msgid "Directory" msgstr "डिरेक्ट्री (&D)" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "डिरेक्ट्रीज़ रिकर्सिव करें" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "क्या सबडिरेक्ट्रीज़ को विश्लेषण करना है या नहीं. " #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "फ़ाइल पैटर्न:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "फ़ाइल-एन्टी-पैटर्न:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "डिर-एन्टी-पैटर्न:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore का उपयोग करें" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "छुपी फ़ाइलों तथा डिरेक्ट्रीज़ ढूंढें" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "हिडन एट्रिब्यूट वाली फ़ाइल तथा डिरेक्ट्रीज़ को ढूंढें." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "'.'. से प्रारंभ हो रहे फ़ाइल तथा डिरेक्ट्रीज़ को ढूंढें" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "फ़ाइल कड़ियों का अनुसरण करें" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "डिरेक्ट्री कड़ियों का अनुसरण करें" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "फ़ाइल तुलना मोड" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "बाइनरी तुलना" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "प्रत्येक फ़ाइल की बाइनरी तुलना. (डिफ़ॉल्ट)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "पूर्ण विश्लेषण" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 #, fuzzy msgid "Trust the size and modification date (unsafe)" msgstr "परिवर्धन तारीख पर भरोसा करें (असुरक्षित)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 #, fuzzy msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "परिवर्धन तारीख पर भरोसा करें (असुरक्षित)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "आकार पर भरोसा करें (असुरक्षित)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "डिरेक्ट्रीज़ सिंक्रोनाइज़ करें" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 #, fuzzy msgid "White space differences considered equal" msgstr "सफेद जगह 3-फ़ाइल सम्मिलित डिफ़ॉल्ट:" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "सम्मिलित करने के बजाए नए की नक़ल करें (असुरक्षित)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "बैकअप फ़ाइलें (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "क्षेत्रीय विन्यास" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "भाषा (फिर से प्रारंभ करना आवश्यक है)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 #, fuzzy msgid "Note: Local Encoding is " msgstr "स्थानीय एनकोडिंग इस्तेमाल करें" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "स्वचालित नक़ल चयन" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "ऑपरेशन" #: optiondialog.cpp:1549 #, fuzzy msgid "Integration Settings" msgstr "क्षेत्रीय विन्यास" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "फ़ॉन्ट असंगत है" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "अपने स्वयं के जोखिम पर जारी रखें" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "अन्य फ़ॉन्ट चुनें" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "यह सभी विकल्पों को रीसेट करता है. सिर्फ उनको ही नहीं जो मौजूदा विषय में हैं. " #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "प्री-प्रोसेसर-कमांड:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "निम्न विकल्प जो आपने चुने हैं वे डाटा को बदल सकते हैं:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "सम्मिलित करने के लिए विकल्प असुरक्षित हैं" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "इन विकल्पों का उपयोग सम्मिलित करने के दौरान करें" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "असुरक्षित विकल्प अक्षम करें" #: pdiff.cpp:300 msgid "Loading A" msgstr "अ लोड किया जा रहा है" #: pdiff.cpp:304 msgid "Loading B" msgstr "ब लोड किया जा रहा है" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "डिफ: अ <-> ब" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "लाइनडिफ: अ <-> ब" #: pdiff.cpp:338 msgid "Loading C" msgstr "स लोड किया जा रहा है" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "डिफ: ब <-> स" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "डिफ: अ <-> स" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "लाइनडिफ: ब <-> स" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "लाइनडिफ: अ <-> स" #: pdiff.cpp:534 #, fuzzy msgid "All input files contain the same text, but are not binary equal." msgstr "सभी इनपुट फ़ाइलें एक ही पाठ रखे हैं." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "फ़ाइलें अ तथा ब बाइनरी समान हैं.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "छोड़ें" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "फ़ाइलें खोली जा रही हैं..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "फ़ाइल खोलने में त्रुटि" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "चयन को काटा जा रहा है..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "चुने हुए की नकल क्लिपबोर्ड पर बनाया जा रहा है..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "क्लिपबोर्ड के वस्तुओं को प्रविष्ट किया जा रहा है..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "सहेजें तथा जारी रखें" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "सहेजे बगैर जारी रखें" #: pdiff.cpp:2018 msgid "Search complete." msgstr "ढूंढना सम्पन्न" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "ढूंढना सम्पन्न" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "डिरेक्ट्री बनाने के दौरान त्रुटि." #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "के-डिफ3 (&K)" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "के-डिफ3 को कॉन्फ़िगर करें" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "के-डिफ3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "Directory Merge" #~ msgstr "डिरेक्ट्री सम्मिलित करें" #~ msgid "C&ontinue" #~ msgstr "जारी रखें (&o)" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "रविशंकर श्रीवास्तव" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "raviratlami@yahoo.com" #~ msgid "Enables/disables the toolbar" #~ msgstr "औज़ार-पट्टी सक्षम/अक्षम करें" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "फ़ाइलें अ तथा ब बाइनरी समान हैं.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "फ़ाइलें अ तथा स बाइनरी समान हैं.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "फ़ाइलें अ तथा स में पाठ समान हैं.\n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "फ़ाइलें ब तथा स बाइनरी समान हैं.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "फ़ाइलें ब तथा स में पाठ समान हैं.\n" #~ msgid "Preserve carriage return" #~ msgstr "कैरिज रिटर्न बनाए रखें" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "डिफ तथा सम्मिलित" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "डिरेक्ट्री सम्मिलित करें" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "डिरेक्ट्री सम्मिलित करें" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "डिरेक्ट्रीज़ सिंक्रोनाइज़ करें" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "सम्मिलित करने के बजाए नए की नक़ल करें (असुरक्षित)" #~ msgid "List only deltas" #~ msgstr "सिर्फ डेल्टाज़ की सूची दें" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "बिना परिवर्तनों के फ़ाइल तथा डिरेक्ट्रीज़ सूची में प्रकट नहीं होंगे." #, fuzzy #~ msgid "no selection" #~ msgstr "स्वचालित नक़ल चयन" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "हस्तचालित चुनाव" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "कोई प्रभाव नहीं. कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए." #~ msgid "For compatibility with certain tools." #~ msgstr "कुछ औज़ारों के साथ कम्पेटिबिलिटी के लिए." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "संपादक तथा डिफ़ आउटपुट में रंग" #~ msgid "Text Diff and Merge Tool" #~ msgstr "पाठ डिफ तथा सम्मिलित करने का औज़ार" #~ msgid "" #~ "\n" #~ "\n" #~ "File not saved." #~ msgstr "" #~ "\n" #~ "\n" #~ "फ़ाइल सहेजा नहीं गया." #~ msgid "Out of memory while preparing to save." #~ msgstr "सहेजने के लिए तैयारी करने के दौरान मेमोरी कम पड़ गई." kdiff3-0.9.97/po/pl/0000755000175100001440000000000011626145654013363 5ustar joachimuserskdiff3-0.9.97/po/pl/kdiff3plugin.po0000644000175100001440000000625311626145606016313 0ustar joachimusers# translation of kdiff3plugin.po to Polish # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Michał Smoczyk , 2009. # Łukasz Wojniłowicz , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-08-12 10:22+0200\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Porównaj z %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Scal z %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Zapisz '%1' na później" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Trójstronne scalenie z plikiem bazowym" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Porównaj z..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Wyczyść listę" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Porównaj" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Porównanie 3 plików/katalogów" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "O wtyczce menu KDiff3 Menu" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Wtyczka menu KDiff3: Prawa autorskie (C) 2008 Joachim Eibl\n" "Strona domowa KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Sposób użycia rozszerzenia menu kontekstowego:\n" "Dla prostego porównania dwóch wybranych plików wybierz \"Porównaj\".\n" "Jeśli drugi plik znajduje się w innym miejscu \"Zachowaj na później\" " "pierwszy plik, a pojawi się on w podmenu \"Porównaj z ...\". Następnie użyj " "\"Porównaj z..\" z drugim plikiem.\n" "Dla trójstronnego scalenia najpierw \"Zachowaj\" plik bazowy, a następnie " "gałąź do scalenia i wybierz \"Trójstronne scalenie z plikiem bazowym\" na " "innej gałęzi, która będzie użyta jako docelowa.\n" "To samo tyczy się porównywania i scalania katalogów." #: kdiff3plugin.cpp:279 #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "O wtyczce menu KDiff3 Menu" kdiff3-0.9.97/po/pl/CMakeLists.txt0000644000175100001440000000016311626145606016120 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(pl ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/pl/kdiff3fileitemactionplugin.po0000644000175100001440000000626611626145606021234 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Łukasz Wojniłowicz , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-08-12 10:52+0200\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Porównaj z %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Scal z %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Zapisz '%1' na później" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Trójstronne scalenie z bazą" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Porównaj z ..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Wyczyść listę" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Porównaj" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Trójstronne porównanie " #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "O wtyczce menu KDiff3 ..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Wtyczka działania elementu pliku KDiff3: Prawa autorskie (C) 2011 Joachim " "Eibl\n" "Strona domowa KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Sposób użycia rozszerzenia menu kontekstowego:\n" "Dla prostego porównania dwóch wybranych plików wybierz \"Porównaj\".\n" "Jeśli drugi plik znajduje się w innym miejscu \"Zachowaj na później\" " "pierwszy plik, a pojawi się on w podmenu \"Porównaj z ...\". Następnie użyj " "\"Porównaj z..\" z drugim plikiem.\n" "Dla trójstronnego scalenia najpierw \"Zachowaj\" plik bazowy, a następnie " "gałąź do scalenia i wybierz \"Trójstronne scalenie z plikiem bazowym\" na " "innej gałęzi, która będzie użyta jako docelowa.\n" "To samo tyczy się porównywania i scalania katalogów." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "O wtyczce działanie elementu pliku KDiff3" kdiff3-0.9.97/po/pl/kdiff3.po0000644000175100001440000024763111626145606015103 0ustar joachimusers# translation of kdiff3.po to Polish # translation of pl.po to # Copyright (C) 2003, 2004, 2005, 2009, 2010, 2011 Free Software Foundation, Inc. # # Tomasz Waleµczak , 2004. # Tomasz Waleńczak , 2004. # Michal Rudolf , 2004. # Marcin Bokszczanin , 2005. # Krzysztof Lichota , 2005. # Robert Gomulka , 2005. # Michał Smoczyk , 2009, 2010, 2011. # Łukasz Wojniłowicz , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-08-12 11:03+0200\n" "Last-Translator: Łukasz Wojniłowicz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Kontynuuj" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Anuluj" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Wyjdź" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Pomoc" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Domyślne" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Plik" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Edycja" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Katalog" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Idź" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "&Różnice" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Połączenie" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Okno" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Ustawienia" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Pomoc" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&O programie" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Podziękowania" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operacja połączenia dla bieżącej pozycji" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operacja synchronizacji dla bieżącej pozycji" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Otwórz" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Zapisz" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Zapisz jako..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Drukuj..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Wytnij" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopiuj" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Wklej" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Zaznacz wszystko" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Pokaż pasek narzędzi" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Pokaż pasek &stanu" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Konfiguracja %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "O programie" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Znajdź" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Znajdź następne" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Wybierz czcionkę" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Wybrano czcionkę o zmiennej szerokości.\n" "\n" "Ponieważ ten program nie obsługuje poprawnie czcionek\n" "o zmiennej szerokości, mogą wystąpić problemy podczas edycji\n" "\n" "Chcesz kontynuować czy też wybrać inną czcionkę." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Niezgodna czcionka." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Kontynuuj na własne ryzyko" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Wybierz inną czcionkę" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Aby uzyskać więcej informacji zobacz pomoc programu lub zajrzyj do " "podkatalogu doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Użycie KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignoruj" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Wyjście" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Błąd zapisu zawartości schowka do pliku tymczasowego." #: diff.cpp:255 msgid "From Clipboard" msgstr "ze schowka" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Oczekiwano spacji po zamknięciu znaku cytowania." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Niezgodne znaki cytowania." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Nieoczekiwany znak cytowania wewnątrz argumentu." #: diff.cpp:503 msgid "No program specified." msgstr "Nie określono programu." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Przetwarzenie wstępne prawdopodobnie nie powiodło się. Proszę sprawdzić " "polecenie:\n" "\n" " %1\n" "\n" "Polecenie przetwarzania wstępnego zostanie wyłączone." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Przetwarzenie wstępne dopasowywania wierszy prawdopodobnie nie powiodło się. " "Proszę sprawdzić polecenie:\n" "\n" " %1\n" "\n" "Polecenie przetwarzania wstępnego dopasowywania wierszy zostanie wyłączone." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Błąd utraty danych:\n" "Jeśli jest powtarzalny, to skontaktuj się z autorem programu.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Poważny błąd wewnętrzny" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Pomieszane dowiązania i normalne pliki." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Dowiązanie: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Rozmiar. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data & Rozmiar: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Tworzenie tymczasowej kopii %1 nieudane." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Otwieranie %1 nie powiodło się." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Porównywanie pliku..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Błąd czytania z %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nazwa" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operacja" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stan" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Nierozwiązane" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Rozwiązane" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Nie biały" #: directorymergewindow.cpp:359 msgid "White" msgstr "Biały" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Obecnie wykonywane jest łączenie katalogów. Jesteś pewny że chcesz przerwać " "tą operację i ponownie przeskanować katalog?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Ostrzeżenie" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Ponowne skanowanie" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Wznów łączenie" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Otwieranie katalogów nie powiodło się:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Katalog A \"%1\" nie istnieje lub nie jest katalogiem.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Katalog B \"%1\" nie istnieje lub nie jest katalogiem.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Katalog C \"%1\" nie istnieje lub nie jest katalogiem.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Błąd otwierania katalogu" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Docelowy katalog nie może być taki sam jak A lub B jeśli łączone są trzy " "katalogi.\n" "Sprawdź ponownie zanim będziesz kontynuować." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Ostrzeżenie co do parametru" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Skanowanie katalogów ..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Czytanie katalogu A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Czytanie katalogu B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Czytanie katalogu C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Niektóre podkatalogi są nie do odczytu w" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Sprawdź prawa dostępu do podkatalogów." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Gotowe." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Stan porównania katalogów" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Liczba podkatalogów:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Liczba identycznych plików:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Liczba różniących się plików:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Liczba ręcznych połączeń:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "To wpłynie na wszystkie operacje łączenia." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Zmiana wszystkich operacji łączenia" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Przetwarzanie " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Do zrobienia." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Kopiuj A do B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Kopiuj B do A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Usuń A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Usuń B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Usuń A i B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Połącz z A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Połącz z B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Połącz z A i B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Usuń (jeśli istnieje)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Połącz" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Połącz (ręcznie)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Błąd: Konflikt typów plików" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Błąd: Zmieniony i usunięty" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Błąd: Daty są identyczne, ale pliki nie." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Ta operacja jest w tej chwili niemożliwa." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operacja jest niemożliwa" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "To nie powinno się nigdy wydarzyć: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Jeśli wiesz jak to powtórzyć, proszę skontaktować się z autorem programu." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Błąd programu" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Podczas kopiowania wystąpił błąd.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Błąd" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Błąd połączenia" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Błąd." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Zrobione." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Niezapisane." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Nieznana operacja połączenia. (To się nigdy nie powinno wydarzyć!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Nieznana operacja łączenia." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Rozpoczęcie operacji połączenia.\n" "\n" "Wybierz \"Zrób to\" jeśli czytałeś instrukcję i wiesz co robisz.\n" "Wybierz \"Symuluj\" otrzymasz informacje co otrzymasz\n" "\n" "Miej na uwadze że program nadal jest wersji beta i BRAK GWARANCJI co do " "wyników działania! Wykonaj kopie zapasowe swoich istotnych danych!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Rozpoczęcie połączenia" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Wykonaj" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Symuluj" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Podświetlona pozycja jest innego typu w innym katalogu. Wybierz co zrobić." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Data modyfikacji plików jest taka sama ale pliki nie. Wybierz co zrobić." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Podświetlona pozycja została zmieniona w jednym katalogu, a usunięta w " "innym. Wybierz co zrobić." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Ta operacja jest nie możliwa do wykonania w tej chwili gdyż obecnie " "wykonywana jest operacja połączenia katalogów." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "W ostatnim kroku wystąpił błąd.\n" "Chcesz kontynuować z pozycja która powoduje błąd czy tez pominąć tą pozycję?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Kontynuuj połączenie po błędzie" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Kontynuuj z ostatnią pozycją" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Pomiń pozycję" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Pominięto." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "W trakcie..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operacja połączenia zakończona." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Połączenie zakończone" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Symulacja połączenia zakończona. Sprawdź czy zgadzasz się na zaproponowane " "operacje." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Wystąpił błąd. Wciśnij OK aby zobaczyć szczegółowe informacje.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Błąd: Podczas usuwania %1: Tworzenie kopii zapasowej nie powiodło się." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "usuwaj katalogi rekursywnie( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "usuń( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Błąd: Nieudane usuwanie katalogu w momencie próby czytania katalogu." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Błąd: rmdir( %1 ) operacja nieudana." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Błąd: Nieudana operacja usuwania." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "ręczne połączenie( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Uwaga: Po ręcznym połączeniu użytkownik powinien kontynuować wciskając " "F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Błąd: Nieudane kopiowanie( %1 -> %2 ) .Nieudane kasowanie katalogu " "docelowego." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Błąd: Nie udane copyLink, zdalne dowiązania nie są jeszcze obsługiwane." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Błąd: Nieudane copyLink." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopiowanie( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Błąd w czasie zmiany nazwy( %1 -> %2 ): Nie można usunąć istniejącego " "miejsca docelowego." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "zmiana nazwy( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Błąd: Nieudana zmiana nazwy." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Błąd podczas makeDir %1. Nie można usunąć istniejącego pliku." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Błąd podczas tworzenia katalogu." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Cel" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Katalog" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Typ" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Rozmiar" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atrybuty" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Ostatnia modyfikacja" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Dowiązanie do pliku" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Plik" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "niedostępne" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (cel): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (podstawa): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (cel): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (cel): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Cel: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Zapisz stan połączenia katalogów jako..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Uruchom/Kontynuuj połączenie katalogów " #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Wykonaj operację na bieżącej pozycji" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Porównaj zaznaczone pliki" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Połącz bieżący plik" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Połącz\n" "plik" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Zwiń wszystkie podkatalogi" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Rozwiń wszystkie podkatalogi" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Wybierz A dla wszystkich pozycji" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Wybierz B dla wszystkich pozycji" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Wybierz C dla wszystkich pozycji" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Automatyczny wybór dla wszystkich pozycji" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Brak operacji dla wszystkich pozycji" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Pokaż identyczne pliki" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identyczne\n" "pliki" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Pokaż różniące się pliki" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Pokaż pliki tylko w A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Pliki\n" "tylko w A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Pokaż pliki tylko w B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Pliki\n" "tylko w B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Pokaż pliki tylko w C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Pliki\n" "tylko w C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Porównaj bezpośrednio zaznaczone pliki" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Połącz bezpośrednio zaznaczone pliki" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nic nie rób" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Usuń A i B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Połącz z A i B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorowane. (Zdefiniowane przez użytkownika.)" #: main.cpp:162 msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Narzędzie do porównywania i łączenia plików i katalogów" #: main.cpp:165 #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Poprawki błędów, opiekun pakietu Debiana" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instalator Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Pomoc i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Łatka dla schowka" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Help" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Class CvsIgnoreList z Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Class StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Łatka kolorowania katalogów" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Poprawka wolnego uruchamiania się dla Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext dla systemu Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensywne testowanie, używanie i informacje zwrotne" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Wsparcie dla Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portowanie do KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "port OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Wielkie dzięki zgłaszającym błędy i wnoszącym nowe pomysły!" #: main.cpp:196 msgid "Merge the input." msgstr "Połącz pliki wejściowe." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" "Bezpośrednio podany plik bazowy - w celu zgodności z niektórymi narzędziami." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Plik wyjściowy. Implikuje opcję -m. Przykład: -o nowyplik.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Plik wyjściowy, ponownie (w celu zapewnienia zgodności z niektórymi " "narzędziami)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Brak GUI jeśli wszystkie konflikty mogą być automatycznie rozwiązane. " "(Wymaga pliku -o)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Nie rozwiązuj konfliktów automatycznie. (Dla zgodności...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Widoczna nazwa dla pliku 1 (podstawowego)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Widoczna nazwa dla pliku 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Widoczna nazwa dla pliku 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternatywna widoczna nazwa zastępcza. Proszę podać jedną dla każdego pliku " "wejściowego." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Nadpisz ustawienie konfiguracji. Użyj raz dla każdego ustawienia, np. --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Pokaż listę ustawień konfiguracyjnych i bieżące wartości." #: main.cpp:208 msgid "Use a different config file." msgstr "Użyj innego pliku konfiguracyjnego." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "Otwórz plik 1 (bazowy, jeśli nie określono poprzez --base)" #: main.cpp:212 msgid "file2 to open" msgstr "Otwórz plik 2 " #: main.cpp:213 msgid "file3 to open" msgstr "Otwórz plik 3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Liczba pozostałych nierozwiązanych konfliktów: %1 (z których %2 dotyczy " "znaków odstępu)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Plik wyjściowy został zmieniony.\n" "Jeśli będziesz kontynuować zmiany zostaną utracone." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Wszystkie pliki wejściowe są binarnie identyczne." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Wszystkie wejściowe pliki zawierając ten sam tekst." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Pliki %1 i %2 są binarnie identyczne.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Pliki %1 i %2 mają ten sam tekst.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Całkowita liczba konfliktów: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Liczba automatycznie rozwiązanych konfliktów: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Liczba nierozwiązanych konfliktów: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikty" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Nie wszystkie konflikty zostały rozwiązane.\n" "Plik nie został zapisany.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Pozostałe konflikty" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Zaistniał konflikt stylu końca wiersza. Wybierz proszę ręcznie styl końca " "wiersza.\n" "Plik nie został zapisany.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Tworzenie pliku zapasowego nie powiodło się. Plik nie został zapisany." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Błąd zapisu pliku" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Błąd w czasie zapisu." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Wyjście" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[zmodyfikowane]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Kodowanie dla zapisu" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Styl końca wiersza:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Kodek z" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Nie można znaleźć plików do porównania." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Błąd podczas wykonywania kopii zapasowej. Nieudane usunięcie starej kopii. \n" "Nazwa pliku: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Błąd podczas wykonywania kopii zapasowej. Nieudana zmiana nazwy. \n" "Nazwy plików: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Pobranie stanu pliku: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Czytanie pliku: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Zapisywanie pliku: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Brak pamięci" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Tworzenie katalogu: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Usuwanie katalogu: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Usuwanie pliku: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Tworzenie dowiązania symbolicznego:%1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Zmiana nazwy pliku: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopiowanie pliku: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Błąd podczas kopiowania pliku: Nieudane otwarcie pliku. Nazwa pliku: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Błąd podczas kopiowania pliku: Nieudane otwarcie pliku do zapisu. Nazwa " "pliku: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Błąd w czasie kopiowania. Nieudany odczyt. Nazwa pliku: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Błąd w czasie kopiowania. Nieudany zapis. Nazwa pliku: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Czytanie katalogu: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Wyświetlenie zawartości katalogu: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Anuluj" #: difftextwindow.cpp:403 msgid "Line" msgstr "Wiersz" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Wiersz niedostępny" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kodowanie:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Nr pierwszej linii na ekranie" #: difftextwindow.cpp:1769 msgid "End" msgstr "Koniec" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Bieżąca konfiguracja:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Błąd parametru konfiguracji:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Użyta została opcja --auto, ale nie określono pliku wyjściowego." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Opcja --auto zignorowana przy porównywaniu katalogów." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Nieudany zapis." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Nieudane otwarcie następujących plików:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Błąd otwarcia pliku" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Otwieranie dokumentów do porównania..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Wczytaj ponownie" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Zapisywanie rezultatu połączenia. Wszystkie konflikty muszą być rozwiązane!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Zapisywanie bieżącego dokumentu jako..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Drukowanie różnic" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Wyjście z programu" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Wycina zaznaczony fragment i umieszcza go w schowku" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopiuje zaznaczony fragment do schowka" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Wkleja zawartość schowka w aktualną pozycję" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Zaznacza wszystko w bieżącym oknie" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Znajdź tekst" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Szukaj ponownie tekstu" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Włącza/wyłącza pasek stanu" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Konfiguracja: KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Idź do bieżącej różnicy" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Bieżąca\n" "różnica" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Idź do pierwszej różnicy" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Pierwsza\n" "różnica" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Idź do ostatniej różnicy" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Ostatnia\n" "różnica" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Pomija różnice w znakach odstępu gdy opcja \"Pokaż znaki odstępu\" jest " "wyłączona.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Nie pomija różnic w znakach odstępu gdy opcja \"Pokaż znaki odstępu\" jest " "wyłączona)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Idź do poprzedniej różnicy" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Poprzednia\n" "różnica" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Idź do następnej różnicy" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Następna\n" "różnica" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Idź do poprzedniego konfliktu" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Poprzedni\n" "konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Idź do następnego konfliktu" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Następny\n" "konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Idź do poprzedniego nierozwiązanego konfliktu" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Poprzedni\n" "nierozwiązany" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Idź do następnego nierozwiązanego konfliktu" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Następny\n" "nierozwiązany" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Wybierz linie z A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Wybierz\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Wybierz linie z B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Wybierz\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Wybierz linie z C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Wybierz\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Automatycznie idź do następnego nierozwiązanego konfliktu po wybraniu źródła" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automat.\n" "następny" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Pokaż spacje i tabulację w miejsce różnic" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Białe\n" "znaki" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Pokaż białe znaki" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Białe\n" "różnice" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Pokaż numery linii" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Numery\n" "linii" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Wybierz wszędzie A" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Wybierz wszędzie B" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Wybierz wszędzie C" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Wybierz A dla wszystkich nierozwiązanych konfliktów" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Wybierz B dla wszystkich nierozwiązanych konfliktów" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Wybierz C dla wszystkich nierozwiązanych konfliktów" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Wybierz A dla wszystkich nierozwiązanych konfliktów znaków odstępu" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Wybierz B dla wszystkich nierozwiązanych konfliktów znaków odstępu" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Wybierz C dla wszystkich nierozwiązanych konfliktów znaków odstępu" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Automatycznie rozwiąż proste konflikty" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Zamień różnice na konflikty" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Uruchom automatyczne łączenie wyrażeń regularnych" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Automatycznie rozwiąż konflikty historii" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Podziel różnice w zaznaczeniu" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Połącz zaznaczone różnice" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Pokaż okno A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Pokaż okno B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Pokaz okno C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Uaktywnij następne okno" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normalne przeglądanie" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Przegląd różnic między A i B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Przegląd różnic między A i C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Przegląd różnic między B i C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Zawijanie wyrazów w oknach różnic" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Dodaj ręczne wyrównanie różnic" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Wyczyść wszystkie ręczne wyrównania różnic" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Uaktywnij poprzednie okno" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Przełącz orientację podziału okien" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Widok dzielony katalogu i tekstu" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Przełącza między widokiem katalogów i tekstu" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Rezultat połączenia nie został zapisany." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Zapisz i wyjdź" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Zakończ bez zapisywania" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Nieudany zapis rezultatu połączenia." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Obecnie wykonujesz połączenie katalogów. Jesteś pewny że chcesz przerwać?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Zapisywanie pliku..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Zapisywanie pliku pod nową nazwą..." #: kdiff3.cpp:781 #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Drukowanie niezaimplementowane." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Drukowanie..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Wybór" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Drukowanie zakończone." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Drukowanie przerwane." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Kończenie..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Przełączanie paska narzędzi..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Przełącz pasek stanu..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (podstawa):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Plik..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Katalog..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (opcjonalnie):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Zamień/Skopiuj nazwy..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Zamień %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Skopiuj %1->Wyjście" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Zamień %1 <-> Wyjście" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Wynik (opcjonalnie):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Konfiguracja..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Szukaj tekstu:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Rozróżniaj wielkość liter" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Przeszukiwanie A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Przeszukiwanie B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Przeszukiwanie C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Wynik szukania" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Szukanie" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Test wyrażeń regularnych" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Wyrażenie regularne dla automatycznego połączenia:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Przykładowy wiersz automatycznego połączenia:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Aby sprawdzić automatyczne łączenie, skopiuj wiersz używany w twoich plikach." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Pasujący wynik:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Wyrażenie regularne dla początku historii:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Przykładowy wiersz początkowy historii (z poprzedzającym komentarzem):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Skopiuj tutaj wiersz początkowy wpisu historii tak jak go używasz w swoich " "plikach,\n" "włącznie z poprzedzającym go komentarzem." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Wyrażenie regularne dla początku wpisu historii:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Porządek sortowania historii:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Przykładowy wiersz początkowy historii (bez poprzedzającego komentarza):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Skopiuj tutaj wiersz początkowy wpisu historii tak jak go używasz w swoich " "plikach,\n" "ale bez poprzedzającego go komentarza." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Wynik sortowania kluczy:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Znaleziono dopasowanie." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Nie znaleziono dopasowania." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Nawiasy otwierające i zamykające nie zgadzają się w wyrażeniu regularnym." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8-bitowy" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Zmień to jeśli znaki nie-ascii są wyświetlane niepoprawnie." #: optiondialog.cpp:465 msgid "Configure" msgstr "Konfiguracja" #: optiondialog.cpp:531 msgid "Font" msgstr "Czcionka" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Czcionka edytora i wyjścia różnic" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kursywa dla różnic" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Wybierz kursywę do pokazania różnic.\n" "Jeśli czcionka nie ma kursywy, wtedy to nic nie zmieni." #: optiondialog.cpp:568 msgid "Color" msgstr "Kolor" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Ustawienia kolorów" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Widoki edytora i różnic:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Kolor pierwszoplanowy:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Kolor tła:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Kolor tła dla różnic:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Kolor A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Kolor B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Kolor C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Kolor dla konfliktów:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Kolor tła zaznaczonego bloku:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Kolor tła różnic w bloku:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Kolor dla ręcznie wyrównanych zakresów różnic:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Widok porównywania katalogów:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Kolor najnowszego pliku:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Zmiana tego koloru będzie nastąpi po rozpoczęciu następnego porównania " "katalogów." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Kolor najstarszego pliku:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Kolor średnich plików:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Kolor brakujących plików:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Edytor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Zachowanie edytora" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Zamień znaki tabulacji na spacje" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Włączone: Wciśnięcie tabulacji wstawi określoną liczbę spacji.\n" "Wyłączone: Zostanie wprowadzony znak tabulacji." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Szerokość tabulacji:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automatyczne wcięcia" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Włączone: Wcięcie poprzedniej linii będzie użyte w nowej linii.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Wybór automatycznego kopiowania" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Włączone: Jakiekolwiek zaznaczenie powoduje natychmiastowy zapis do " "schowka.\n" "Wyłączone: Musisz jawnie skopiować np. poprzez Ctrl-C." #: optiondialog.cpp:768 #| msgid "&Window" msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 #| msgid "Auto Select" msgid "Autodetect" msgstr "Wykryj automatycznie" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Ustawia styl końca wiersza, jaki będzie używany podczas zapisywania pliku\n" "DOS/Windows: CR+LF; Unix: LF; gdzie CR=0x0D; LF=0x0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Różnice" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Ustawienia różnic i połączeń" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Traktuj jako białe znaki." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignoruj cyfry" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignoruj liczby podczas sprawdzania (podobne do Ignoruj białe znaki)\n" "Może być pomocne przy porównywania plików z danymi numerycznymi." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignoruj komentarze C/C++ " #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Traktuj komentarze C/C++ jako białe znaki." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignoruj wielkość liter" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Różnice wielkości liter traktuj jak zmiany znaków odstępu (\"a\"<=>\"A\")" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Polecenie preprocesora:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Zdefiniowany przez użytkownika pre-proces. (Zobacz szczegóły w dokumentacji.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Wiersz poleceń preprocesora:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Ta komenda może być użyta tylko z linii poleceń.\n" "(Aby uzyskać szczegóły zobacz dokumentację.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Próbuj bardziej (wolniejsze)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Udostępnia opcję --minimal dla zewnętrznego porównania.\n" "Analizowanie dużych plików będzie znacznie wolniejsze." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Wyrównaj B i C dla 3 plików wejściowych" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Próbuje wyrównać B i C kiedy porównywane są trzy pliki wejściowe.\n" "Nie jest to polecane dla łączenia plików ponieważ może to być skomplikowana " "operacja.\n" "Domyślnie ta opcja jest wyłączona." #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Ustawienia połączeń" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Czas automatycznego przejścia (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "W trybie automatycznego przechodzenia wynik aktualnego zaznaczenia \n" "jest pokazywany przez podany czas zanim nastąpi przejście do następnego \n" "konfliktu. Zakres: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Pokaż okno informacyjne" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Pokaż okno z informacją o liczbie konfliktów." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Domyślne łączenie białych znaków przy 2 plikach:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Wybór użytkownika" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Pozwól algorytmowi łączenia dokonać automatycznego wyboru wejścia - tylko " "dla znaków odstępu." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Domyślne łączenie białych znaków przy 3 plikach:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Wyrażenie regularne dla automatycznego połączenia" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Wyrażenie regularne dla wierszy, w których KDiff powinien automatycznie " "wybrać jedno ze źródeł.\n" "Kiedy wiersz z konfliktem pasuje do wyrażenia regularnego, wtedy\n" "(jeśli dostępne) zostanie wybrane C, w innym przypadku zostanie wybrane B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Uruchom automatyczne łączenie wyrażeń regularnych przy uruchomieniu łączenia" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Uruchom scalanie do automatycznego scalenia wyrażeń regularnych\n" "zaraz po rozpoczęciu scalania.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Łączenie historii kontroli wersji" #: optiondialog.cpp:966 #| msgid "" #| "Regular expression for the start of the version control history entry.\n" #| "Usually this line contains the \"$Log$\"-keyword.\n" #| "Default value: \".*\\$Log.*\\$.*\"" msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Wyrażenie regularne dla wpisu początkowego historii kontroli wersji.\n" "Zwykle wiersz taki zawiera słowo kluczowe \"$Log$\".\n" "Domyślna wartość: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Wpis kontroli historii wersji składa się z kilku wierszy.\n" "Podaj wyrażenie regularne w celu wykrycia pierwszego wiersza (bez " "poprzedzającego komentarza).\n" "Użyj nawiasów aby pogrupować klucze które chcesz użyć do sortowania.\n" "Jeśli pole zostanie puste, KDiff3 uzna że puste wiersze oddzielają wpisy " "historii.\n" "Zajrzyj do dokumentacji aby uzyskać szczegółowe informacje." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Sortowanie historii" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Sortowanie historii kontroli wersji za pomocą podanego klucza." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Porządek sortowania wpisów historii:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Każdy nawias użyty w wyrażeniu regularnym dla wpisu początkowego historii\n" "grupuje klucz który może zostać użyty do sortowania wpisów.\n" "Podaj listę kluczy (które są numerowane w kolejności wystąpienia\n" "zaczynając od 1) oddzielając je przecinkiem ',' (np. \"4,5,6,1,2,3,7\").\n" "Jeśli pole pozostanie puste, nie zostanie wykonane żadne sortowanie.\n" "Zajrzyj do dokumentacji, aby uzyskać szczegółowe informacje." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Połącz historię kontroli wersji przy rozpoczęciu połączenia" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Uruchom automatyczne łączenie historii kontroli wersji przy rozpoczęciu " "łączenia." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Maksymalna liczba wpisów historii:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Obcina po podanej liczbie wpisów. Użyj -1 dla nieskończonej liczy wpisów." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Sprawdzanie wyrażeń regularnych" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Polecenie dla nieistotnego połączenia:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Polecenie, które zostanie wykonane po automatycznym połączeniu\n" "jeśli nie wykryto żadnych innych istotnych zmian.\n" "Wywoływany z parametrami: nazwapliku1 nazwapliku2 nazwapliku3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Automatycznie zapisz i zakończ po złączeniu bez konfliktów" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Kiedy KDiff3 został uruchomiony dla złączenia plików z wiersza poleceń i " "wszystkie\n" "konflikty są rozwiązywalne bez potrzeby ingerencji użytkownika, wtedy " "automatycznie\n" "zapisuje i kończy działanie programu.\n" "Działanie jest podobne do opcji wiersza poleceń \"--auto\"." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Katalog" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Analizuj katalogi rekursywnie" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Określa czy mają być analizowane podkatalogi." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Wzorzec plików:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Wzorzec(rce) plików do analizy. \n" "Symbole wieloznaczne: \"*\" i \"?\"\n" "Można określić kilka wzorców poprzez użycie separatora: \";\"" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Anty-wzorzec plików:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Wzorzec(rce) plików jakie mają być wyłączone z analizy. \n" "Znaki szablonowe (wildcards): \"*\" i \"?\"\n" "Możesz określić kilka wzorców używając separatora: \";\"" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Anty-wzorzec katalogów:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Wzorzec(rce) katalogów jakie mają być wykluczone z analizy. \n" "Znaki szablonowe (wildcards): \"*\" and \"?\"\n" "Możesz użyć kilku wzorców poprzez użycie separatora: \";\"" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Użyj .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Rozszerz anty-wzorzec na wszystko, co będzie ignorowane przez CVS. \n" "Lokalne pliki \".cvsignore\" mogą być specyficzne dla katalogów." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Znajdź ukryte pliki i katalogi" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Znajduje pliki i katalogi z atrybutem ukryty." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Znajduje pliki i katalogi z nazwą zaczynającą się na \".\" ." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Podążaj za dowiązaniami" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Włączone: Porównuj pliki na które wskazuje dowiązanie.\n" "Wyłączone: Porównuj dowiązania." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Podążaj za dowiązaniami katalogów" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Włączone: Porównuj katalogi na które wskazuje dowiązanie. \n" "Wyłączone: Porównuj dowiązania." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Porównanie nazw plików uwzględnia wielkość liter" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Porównanie katalogów porówna pliki lub katalogi kiedy ich nazwy się " "zgadzają.\n" "Włącz tą opcję jeśli wielkość liter w nazwach musi się zgadzać.\n" "Dla systemu Windows opcja ta jest domyślne wyłączona, w innych przypadkach " "włączona." #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Tryb porównania plików" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Porównanie binarne" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binarne porównanie dla każdego pliku (domyślne)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Pełna analiza" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Wykonaj pełną analizę i pokaż statystyki w dodatkowych kolumnach.\n" "(Wolniejsze niż porównanie binarne i znacznie wolniejsze dla plików " "binarnych.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Ufaj rozmiarowi i dacie modyfikacji (niebezpieczne)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Zakłada że pliki są identyczne, jeśli ich data modyfikacji i rozmiar są " "identyczne.\n" "Pliki z jednakową zawartością ale inną datą modyfikacji zostaną uznane za " "różne.\n" "Jest to użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Ufaj rozmiarowi i dacie, ale użyj porównania binarnego jeśli data się nie " "zgadza (niebezpieczne)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Zakłada że pliki są identyczne, jeśli ich data modyfikacji i rozmiar są " "identyczne.\n" "Jeśli data modyfikacji nie jest identyczna (przy czym rozmiary są), używa " "porównania binarnego.\n" "Jest to użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Ufaj rozmiarowi (niebezpieczne)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Zakłada ze pliki są identyczne jeśli ich rozmiar jest identyczny.\n" "Użyteczne przy dużych katalogach lub wolnych połączeniach sieciowych, gdzie " "data jest modyfikowana w trakcie pobierania." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synchronizacja katalogów" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Oferuje zapisanie plików obu katalogach tak,\n" "że potem oba katalogi będą takie same.\n" "Działa tylko przy porównywaniu dwóch katalogów \n" "bez określonego miejsca docelowego." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Różnice w znakach odstępu ignorowane" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Jeśli pliki różnią się tylko znakami odstępu, to uznaj je za identyczne.\n" "Opcja aktywna tylko w przypadku pełnej analizy." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Kopiuj nowsze zamiast łączyć (niebezpieczne)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Nie sprawdza zawartości tylko bierze nowszy plik. \n" "Użyj tego tylko jeśli wiesz co robisz!\n" "Jest to efektywne tylko przy porównywaniu dwóch katalogów." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Tworzenie kopii zapasowych (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Gdy plik będzie zapisywany w miejsce starego, to stary plik\n" "zmieni nazwę (dodane zostanie rozszerzenie \".orig\"), zamiast zostać " "usuniętym." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Ustawienia regionalne" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Język(wymaga ponownego uruchomienia)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Wybierz język dla graficznego interfejsu użytkownika lub ustaw na" "\"Automatycznie\". \n" "Po zmianie języka należy uruchomić ponownie program KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Używanie tego samego kodowania dla wszystkiego:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Włączenie tej opcji pozwala na zmianę wszystkich kodowań zmieniając tylko " "pierwsze.\n" "Proszę wyłączyć jeśli potrzebne są różne ustawienia indywidualne." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Uwaga: lokalne kodowanie to " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Kodowanie pliku A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Jeśli włączone, będzie wykrywane kodowanie Unicode (UTF-16 lub UTF-8).\n" "Jeśli plik nie jest zakodowany Unikodem, wtedy wybrane kodowanie zostanie " "użyte z powrotem.\n" "(Wykrywanie Unicode polega na pierwszych bitach pliku.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Automatyczne wykrywanie Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Kodowanie pliku B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Kodowanie pliku C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Kodowanie pliku wynikowego i przy zapisywaniu:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Wybór automatyczny" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Jeśli włączone, użyte zostanie kodowanie dla plików wejściowych.\n" "W przypadkach wątpliwych pojawi się okno, gdzie użytkownik będzie mógł " "wybrać kodowanie dla zapisu." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Kodowanie plików preprocesora:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Język z pismem prawy-do-lewego" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Niektóre języki są czytane od prawej strony do lewej.\n" "Ustawienie to zmieni odpowiednio zarówno przeglądarkę jak i edytor." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integracja" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Ustawienia integracji" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opcje wiersza poleceń do zignorowania:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Lista opcji wiersza poleceń, które powinny być ignorowane podczas gdy KDiff " "jest używany przez inne narzędzia.\n" "Można podać kilka opcji oddzielając je za pomocą \";\"\n" "Użycie tej opcji zablokuje błąd \"Nieznana opcja\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Zakończenie także za pomocą klawisza Escape" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Szybka metoda zakończenia.\n" "Użyteczne dla tych którzy są przyzwyczajenia do używania klawisza Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integracja z ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integruj z Rational ClearCase firmy IBM.\n" "Modyfikuje plik \"map\" w podkatalogu ClearCase \"lib/mgrs\"\n" "(Dostępne jest jedynie kiedy katalog ClearCase \"bin\" znajduje się na " "ścieżce.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Usuń integrację z ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "Przywróć stary plik \"map\" sprzed integracji z ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Niekompatybilna czcionka" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Kontynuacja na własne ryzyko" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Wybierz inną czcionkę" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Kasuje wszystkie ustawienia. Działa nie tylko na bieżącej zakładce." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Polecenie preprocesora: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Następująca opcja(e) które wybrano mogą zmienić dane:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Najczęściej nie jest to pożądane podczas połączenia.\n" "Chcesz wyłączyć te ustawienia czy kontynuować z włączonymi tymi ustawieniami?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opcja niebezpieczna podczas łączenia" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Użyj tych opcji podczas łączenia" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Wyłącz niebezpieczne opcje" #: pdiff.cpp:300 msgid "Loading A" msgstr "Wczytywanie A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Wczytywanie B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Różnica: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Różnica: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Wczytywanie C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Różnica: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Różnica: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Różnica: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Różnica: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Wszystkie pliki wejściowe zawierają ten sam tekst, ale nie są binarnie " "identyczne." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Pliki %1 i %2 zawierają ten sam tekst, ale nie są binarnie identyczne.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Niektóre pliki nie wyglądają na pliki czysto tekstowe\n" "Zauważ że KDiff3 nie nadaje się do łączenia danych binarnych.\n" "Kontynuuj na własne ryzyko." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Pewne znaki wejściowe nie mogły zostać przekształcone do prawidłowego unikodu." "\n" "Możesz używać złego kodeku. (np. UTF-8 dla plików nie-UTF-8).\n" "Nie zapisuj wyników, jeśli jesteś niepewny(a). Kontynuuj na własne ryzyko.\n" "Uwikłane pliki wejściowe to %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "O programie" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Otwieranie plików..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Błąd otwarcia pliku" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Wytnij zaznaczenie..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopiuj zaznaczony fragment do schowka..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Wkleja zawartość schowka..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Zapisz i Kontynuuj" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Zakończ bez zapisywania" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Wynik szukania." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Połączenie zakończone" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Nic nie wybrano w żadnym oknie wejściowym różnicy." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Błąd podczas dodawania ręcznego zakresu różnic" #: kdiff3_shell.cpp:76 #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Nie można zainicjować modułu KDiff3.\n" "Dzieje się tak zazwyczaj ze względu na problem instalacji. Proszę przeczytać " "plik " "README w pakiecie źródłowym po szczegóły." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" "Tomasz Waleńczak, Michał Rudolf, Marcin Bokszczanin, Krzysztof Lichota, " "Robert Gomułka, Michał Smoczyk" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" "tom@w.pl, mrudolf@kdewebdev.org, mboksz@bcig.pl, lichota@mimuw.edu.pl, " "rgom@o2.pl, msmoczyk@wp.pl" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "K&Diff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Konfiguracja KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Główny pasek narzędzi" kdiff3-0.9.97/po/ru/0000755000175100001440000000000011626145654013376 5ustar joachimuserskdiff3-0.9.97/po/ru/kdiff3plugin.po0000644000175100001440000000743711626145610016326 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Yuri Efremov , 2011. # Last-Translator: Alexander Potashev , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-08 11:27+0400\n" "Last-Translator: Alexander Potashev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Сравнить с %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Объединить с %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Отложить на потом «%1»" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Трёхстороннее объединение c основным файлом" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Сравнить с..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Очистить список" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Сравнить" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Трёхстороннее сравнение" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "О модуле меню KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Модуль меню KDiff3: © Joachim Eibl, 2008\n" "Домашняя страница KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Использование расширения контекстного меню:\n" "Для простого сравнения двух выбранных файлов выберите пункт «Сравнить».\n" "Если файлы находятся в разных каталогах, то следует «Сохранить» первый файл. " "Тогда он появится в подменю «Сравнить с...». Воспользуйтесь этим пунктом " "подменю на втором файле.\n" "Для трёхстороннего объединения сначала следует «Сохранить» основной файл, " "затем на другом файле выбрать «Трёхстороннее объединение c основным файлом», " "который будет использован как получаемый файл объединения.\n" "То же самое применимо для сравнения и объединения каталогов." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "О модуле меню KDiff3" kdiff3-0.9.97/po/ru/CMakeLists.txt0000644000175100001440000000016311626145610016126 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ru ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ru/kdiff3fileitemactionplugin.po0000644000175100001440000000770411626145610021240 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Yuri Efremov , 2011. # Alexander Potashev , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-08 10:53+0400\n" "Last-Translator: Alexander Potashev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Сравнить с %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Объединить с %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Отложить на потом «%1»" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Трёхстороннее объединение c основным файлом" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Сравнить с..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Очистить список" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Сравнить" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Трёхстороннее сравнение" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "О модуле меню KDiff3..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Модуль меню действий с файлами KDiff3: © Joachim Eibl, 2011\n" "Домашняя страница KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Использование расширения контекстного меню:\n" "Для простого сравнения двух выбранных файлов выберите пункт «Сравнить».\n" "Если файлы находятся в разных каталогах, то следует «Сохранить» первый файл. " "Тогда он появится в подменю «Сравнить с...». Воспользуйтесь этим пунктом " "подменю на втором файле.\n" "Для трёхстороннего объединения сначала следует «Сохранить» основной файл, " "затем на другом файле выбрать «Трёхстороннее объединение c основным файлом», " "который будет использован как получаемый файл объединения.\n" "То же самое применимо для сравнения и объединения каталогов." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "О модуле меню действий с файлами KDiff3" kdiff3-0.9.97/po/ru/kdiff3.po0000644000175100001440000031401111626145610015074 0ustar joachimusers# KDE3 - kdiff3.pot Russian translation. # KDE3 - kdeextragear-1/kdiff3.po Russian translation. # Nick Shaforostoff , 2004-2005, 2009, 2010. # Alexander Potashev , 2010. # Vladimir Lomov , 2010. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-12-19 17:13+0300\n" "Last-Translator: Alexander Potashev \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n" "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Продолжить" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Отмена" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Выход" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Справка" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "По умолчанию" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Файл" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Правка" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Каталог" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Перемещение" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iff" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Объединение" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Окно" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Настройка" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Справка" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&О программе" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "А&втор" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Благодарности" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Операция слияния для выбранного объекта" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Операция синхронизации для выбранного объекта" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Открыть" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Сохранить" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Сохранить как..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Печать..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Вырезать" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Копировать" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Вставить" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Выделить всё" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Показать панель инструментов" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Показать &статусную панель" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Настроить %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "О программе" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Найти" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Найти далее" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Выбрать шрифт" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Вы выбрали не моноширинный шрифт.\n" "\n" "Поскольку данная программа не может правильно работать с\n" "не моноширинными шрифтами, вы можете столкнуться с проблемами\n" "при редактировании.\n" "Вы хотите продолжить или вы хотите выбрать другой шрифт?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Несовместимый шрифт." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Продолжить на ваш страх и риск" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Выбрать другой шрифт" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Более подробную документацию можно найти в меню Справка или в поддиректории " "doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Использование KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Игнорировать" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Выход" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Не удалось записать данные из буфера обмена во временный файл." #: diff.cpp:255 msgid "From Clipboard" msgstr "Из буфера обмена" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Возможная ошибка при предобработки. Проверьте эту команду:\n" "\n" " %1\n" "\n" "Команда предобработки будет отключена." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Возможная ошибка при предобработки строко ориентированного соответствия. " "Проверьте эту команду:\n" "\n" " %1\n" "\n" "Команда предобработки строко-ориентированного соответствия будет отключена." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Ошибка с потерей данных:\n" "Если ошибка постоянно повторяется свяжитесь с автором.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Серьёзная внутренняя ошибка" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Совмещение ссылок и обычных файлов" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Ссылка: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Размер. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Дата и размер: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Не удалось создать временную копию %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Не удалось открыть %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Сравнивание файла..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Ошибка чтения из %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Имя" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Действие" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Состояние" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Неразрешённый" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Разрешённый" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Чёрный" #: directorymergewindow.cpp:359 msgid "White" msgstr "Белый" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Сейчас программа работает в режиме объединения каталогов. Вы действительно " "хотите отменить все изменения и обновить содержание каталогов?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Предупреждение" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Обновить" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Продолжить" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Не удалось открыть каталоги:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Каталог A «%1» не существует или это не каталог.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Каталог B «%1» не существует или это не каталог.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Каталог C «%1» не существует или это не каталог.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Ошибка чтения каталога" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Путь к конечному каталогу не должен совпадать с A или B при объединении трёх " "каталогов.\n" "Проверьте снова прежде чем продолжить." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Неправильный параметр" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Сканирование каталогов..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Чтение каталога A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Чтение каталога B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Чтение каталога C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Не удалось прочитать некоторые подкаталоги в" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Проверьте права этих каталогов." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Готово." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Состояние сравнения каталогов" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Количество подкаталогов:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Количество одинаковых файлов:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Количество разных файлов:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Количество объединений вручную:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Это влияет на все объединения" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Изменение всех объединений" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Обработка " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Осталось сделать." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Копировать A в B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Копировать B в A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Удалить A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Удалить B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Удалить A и B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Объединить в A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Объединить в B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Объединить в A & B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Удалить (если существует)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Объединить" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Объединить (вручную)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Ошибка: несовместимые типы файлов" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Ошибка: изменено или удалено" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Ошибка: время совпадает, а содержимое файлов — нет." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Эта операция сейчас недоступна." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Операция недоступна" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Этого не должно случаться:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Если вы знаете как воспроизвести это, пожалуйста, сообщите автору программы." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Ошибка программы" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Ошибка копирования.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Ошибка" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Ошибка объединения" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Ошибка." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Готово." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Не сохранено." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Неизвестное объединение. (Этого не должно быть!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Неизвестное объединение." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Сейчас начнётся объединения.\n" "\n" "Нажмите «Выполнить» после прочтения инструкций и знаете что вы делаете.\n" "Нажмите «Имитировать» чтобы увидеть, что должно произойти.\n" "\n" "Мы предупреждаем, что эта программа всё ещё имеет бета статус и не " "предоставляем никаких ГАРАНТИЙ! Делайте резервные копии ваших важных данных!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Начало объединения" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Выполнить" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Имитировать" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Выделенный объект имеет разные типы в разных каталогах. Выберите, что делать." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Даты последнего изменения файлов одинаковы, но содержимое — нет. Выберите, " "что делать." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Выделенный файл был изменён в одном каталоге и удалён в другом. Выберите, " "что делать." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Эта операция сейчас недоступна, поскольку выполняется объединение каталогов." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "На предыдущем этапе произошла ошибка.\n" "Вы хотите продолжить с объектом, который вызвал ошибку, или пропустить этот " "объект?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Продолжить объединение после ошибки" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Продолжить с последнего объекта" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Пропустить объект" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Пропущено." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Идёт работа..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Объединение завершено." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Объединение завершено" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Имитирование объединение завершено. Вы согласны с предлагаемыми изменениями?" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Произошла ошибка. Нажмите OK для подробностей.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Ошибка: удаление %1: не удалось создать резервную копию." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "удалить каталог рекурсивно(%1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "удалить( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Ошибка: не удалось удалить каталог при попытке прочитать этот каталог." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Ошибка: операция rmdir( %1 ) завершилась с ошибкой." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Ошибка: не удалось удалить." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "объединение вручную( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr " После завершения объединения вручную нажмите F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Ошибка: операция copy(%1 -> %2) завершилась с ошибкой. Не удалось удалить " "существующее назначение." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 ) скопировать ссылку" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Ошибка: операция copyLink завершилась с ошибкой: удалённые ссылки не " "поддерживаются." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Ошибка операция copyLink (копирование ссылки) завершилась с ошибкой." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copy( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Ошибка при выполнении rename( %1 -> %2 ). Не удалось удалить существующее " "назначение." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rename( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Ошибка: не удалось переименовать." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Не удалось создать каталог %1. Не удалось удалить существующий файл." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Не удалось создать каталог" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Назначение" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Каталог" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Тип" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Размер" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Атрибуты" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Последнее изменение" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Объект ссылки" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Файл" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "недоступно" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (назначение): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (исходное): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (назначение): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (назначение): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Назначение: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Сохранить состояние объединения каталога как..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Начать/продолжить объединение каталогов" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Выполнить операцию для выбранного объекта" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Сравнить выделенный файл" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Объединить текущий файл" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Объединить\n" "файл" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Включая все подкаталоги" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Исключая все подкаталоги" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Выбрать A для всех" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Выбрать B для всех" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Выбрать C для всех" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Автоматически выбирать тип действия для всех" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Убрать действия для всех" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Показать идентичные файлы" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Идентичные\n" "файлы" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Показать разные файлы" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Показать файлы только в A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Файлы\n" "только в A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Показать файлы только в B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Файлы\n" "только в B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Показать файлы только в C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Файлы\n" "только в C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Сравнить только выделенные файлы" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Объединить только выделенные файлы" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ничего" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Удалить A и B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Объединить в A и B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Пропущено. (Определено пользователем.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Инструмент для сравнения и объединения файлов и каталогов" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "© Joachim Eibl, 2002-2009" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Исправления, сопровождающий Debian пакета" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Установщик для Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Перевод справки" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Патч буфера обмена" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Справка по KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Класс CvsIgnoreList из Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Класс StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Патч подсветки равенства каталогов" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Исправление по медленному запуску на Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext для Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU утилиты diff" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Тщательное тестирование, применение и отзыв" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Поддержка Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Портирование на KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ Благодарю всех, кто отправлял отчёты об ошибках и предлагал новые идеи!" #: main.cpp:196 msgid "Merge the input." msgstr "Объединить ввод." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Явный основной файл. Для совместимости с некоторыми программами." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Выходной файл. Подразумевает наличие -m. Например: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Выходной файл, снова. (Для совместимости с некоторыми программами.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Не выводить графический интерфейс если все конфликты удалось разрешить " "автоматически. (требуется -o файл)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Не разрешать конфликты автоматически (для совместимости...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Замена видимого названия для входного файла 1 (основной)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Замена видимого названия для входного файла 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Замена видимого названия для входного файла 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Альтернативная замена видимого названия. Использовать для каждого входного " "файла." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Перезаписать настраиваемый параметр. Использовать один раз для любого " "параметра. Например: --cs \"autoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Показать список настраиваемых параметров и их текущие значения." #: main.cpp:208 msgid "Use a different config file." msgstr "Использовать другой файл настроек." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "файл1 открыть (основной, если не указан посредством --base)" #: main.cpp:212 msgid "file2 to open" msgstr "файл2 открыть" #: main.cpp:213 msgid "file3 to open" msgstr "файл3 открыть" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Осталось неразрешённых конфликтов: %1 (%2 из которых — конфликты пустых " "промежутков)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Вывод был изменён.\n" "Если вы продолжите, изменения будут утеряны." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Все входные файлы одинаковы на двоичном уровне." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Все входные файлы содержат одинаковый текст." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Файлы %1 и %2 одинаковы на двоичном уровне.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Файлы %1 и %2 содержат одинаковый текст. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Общее количество конфликтов: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Количество разрешённых автоматически конфликтов: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Количество неразрешённых конфликтов: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Конфликты" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<Нет исходной строки>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<Конфликт объединения (пустые промежутки)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<Конфликт объединения>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Не все конфликты разрешены.\n" "Файл не сохранён.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Осталось конфликтов" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Конфликт в типе перевода строки. Пожалуйста, выберите тип перевода строки " "вручную.\n" "Файл не сохранён.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Не удалось создать резервную копию. Файл не сохранён." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Ошибка сохранения файла" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Ошибка записи" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Вывод" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Изменён]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Кодировка для сохранения" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Тип перевода строки:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Конфликт" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Кодировать из" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Не удалось найти файлы для сравнения." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Не удалось удалить старую резервную копию. \n" "Файл: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Не удалось выполнить переименование. \n" "Файлы: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Получение состояния файла: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Чтение файла: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Запись в файл: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Не хватает памяти" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Создание каталога: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Удаление каталога: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Удаление файла: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Создание символической ссылки: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Переименование файла: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Копирование файла: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "Не удалось открыть для чтения файл %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "Не удалось открыть для записи файл %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Не удалось прочитать файл %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Не удалось записать в файл %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Чтение каталога: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Вывод содержимого каталога: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Отмена" #: difftextwindow.cpp:403 msgid "Line" msgstr "Строка" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Строка недоступна" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Кодировка:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Первая строка" #: difftextwindow.cpp:1769 msgid "End" msgstr "Конец" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Текущие настройки:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Ошибка параметра настройки:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Ключ --auto использован, но не указаны выходные файлы." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Ключ --auto игнорируется для каталогов" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Не удалось произвести сохранение." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Не удалось открыть файлы:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Ошибка открытия файлов" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Открыть файлы для сравнения..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Обновить" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Сохранить результат объединения. Все конфликты должны быть разрешены!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Сохранить с другим именем..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Распечатать отличия" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Выйти" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Вырезать в буфер обмена" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Скопировать в буфер обмена" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Вставить из буфера обмена" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Выделить всё в текущем окне" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Искать текст" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Продолжить поиск текста" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Отобразить/скрыть панель состояния" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Настроить KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Перейти к текущему различию" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Текущее\n" "различие" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Перейти к первому различию" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Первое\n" "различие" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Перейти к последнему различию" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Последнее\n" "различие" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Пропускать отличия в пустых промежутках, когда «Отображать пустые " "промежутки» выключено.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Не пропускать отличия в пустых промежутках, даже когда «Отображать пустые " "промежутки» выключено.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Перейти к предыдущему различию" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Предыдущее\n" "различие" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Перейти к следующему различию" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Следующее\n" "различие" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Перейти к предыдущему конфликту" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Предыдущий\n" "конфликт" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Перейти к следующему конфликту" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Следующий\n" "конфликт" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Перейти к предыдущему неразрешённому конфликту" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Предыдущий\n" "неразрешённый" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Перейти к следующему неразрешённому конфликту" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Следующий\n" "неразрешённый" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Выбрать строки из A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Выбрать\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Выбрать строки из B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Выбрать\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Выбрать строки из C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Выбрать\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Перейти к следующему неразрешённому конфликту после выделения исходника" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Автоматически\n" "следующий" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Отображать пробелы и табуляции в различиях" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Пустые\n" "промежутки" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Отображать пустые промежутки" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Пустые\n" "различия" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Отображать номера строк" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Номера\n" "строк" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Выбрать A везде" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Выбрать B везде" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Выбрать C везде" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Выбрать A для всех неразрешённых конфликтов" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Выбрать B для всех неразрешённых конфликтов" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Выбрать C для всех неразрешённых конфликтов" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Выбрать A для всех неразрешённых конфликтов пустых промежутков" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Выбрать B для всех неразрешённых конфликтов пустых промежутков" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Выбрать C для всех неразрешённых конфликтов пустых промежутков" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Разрешать простые конфликты автоматически" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Определить различия как конфликты" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Запустить автоматическое объединение на основе регулярного выражения" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Разрешать конфликты истории автоматически" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Разделить Diff по выделению" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Сгруппировать выделенные Diff" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Отобразить окно A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Отобразить окно B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Отобразить окно C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Активировать следующее окно" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Обычный обзор " #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Обзор A vs. B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Обзор A vs. C " #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Обзор B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Перенос по словам в окнах Diff" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Добавить вручную выравнивание Diff" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Убрать все выравнивания Diff" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Активировать предыдущее окно" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Поменять ориентация разделения" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Режим каталог/текст" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Каталоги/текст" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Результат объединения не сохранён" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Сохранить и выйти" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Выйти без сохранения" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Не удалось сохранить результат объединения" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Остановить объединение каталогов?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Сохранение файла..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Сохранение файла с новым именем..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Печать завершена." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Печать..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Выбор" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Печать завершена." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Печать прервана." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Выход..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Отображение/скрытие панели инструментов..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Отображение/скрытие панели состояния..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (исходное):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Файл..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Каталог..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "С (необязательно):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Поменять/копировать названия ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Поменять %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Копировать %1->Вывод" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Поменять %1<->Вывод" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Вывод (необязательно):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Настроить..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Найти:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "С учётом регистра" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Поиск в A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Поиск в B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Поиск в C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Поиск в выводе" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Искать" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Проверка регулярного выражения" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Регулярное выражения автоматического объединения:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Образец автоматически объединяемая строка:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Чтобы опробовать автоматическое объединение, скопируйте строку из ваших " "файлов." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Результат соответствия:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Регулярное выражения начала истории:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Образец строка начала истории (с комментарием в начале):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Скопируйте строку начала истории из ваших файлов,\n" "включая комментарий в начале." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Регулярное выражения начала пункта истории." #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Порядок сортировки ключей истории:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Образец начало строки пункта истории (без комментария в начале):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Скопируйте начало строки пункта истории из ваших файлов, но без комментария " "в начале." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Результат сортировки ключей:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Соответствие найдено." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Соответствие не найдено." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Открывающие и закрывающие скобки не парные в регулярном выражении." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 бит" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Измените кодировку, если не ASCII символы не отображаются корректно." #: optiondialog.cpp:465 msgid "Configure" msgstr "Настроить" #: optiondialog.cpp:531 msgid "Font" msgstr "Шрифт" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Шрифт редактора и вывода различий" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Различия курсивом" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "Если шрифт не содержит курсива, этот параметр не работает." #: optiondialog.cpp:568 msgid "Color" msgstr "Цвет" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Настройки цвета" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Вид окна редактора и различий" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Цвет текста:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Цвет фона:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Цвет фона различий:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Цвет A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Цвет B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Цвет C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Цвет конфликтов:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Текущий промежуток цветов фона:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Текущий промежуток цветов цветов фона различий:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Цвет для вручную выравненных промежутков различий:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Вид окна сравнения каталогов:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Цвет самых новых файлов:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Изменение этого цвета будет иметь силу только когда начнётся следующее " "сравнение каталогов." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Цвет самых старых файлов:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Цвет файлов среднего возраста:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Цвет для отсутствующих файлов:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Редактор" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Поведение редактора" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Заменять табуляцию пробелами" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Вкл: нажатие Tab вставляет необходимое количество пробелов.\n" "Выкл: будет вставлен символ Tab." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Табуляция:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Проставлять отступы автоматически" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Вкл: отступы предыдущей строки будут использованы для новой строки.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Копировать выделение в буфер обмена автоматически" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Вкл: любое выделение сразу же записывается в буфер обмена.\n" "Выкл: вы должны явно скопировать, например, с помощью Ctrl-C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Окно" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Копировать выделение в буфер обмена автоматически" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Устанавливает перевод строки при сохранении редактируемого файла.\n" "DOS/Windows: CR+LF; UNIX: LF; здесь CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Настройки сравнения и объединения" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Обрабатывать как пробелы." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Пропускать цифры" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Пропускать цифры в процессе соответствия строк. (Похоже на Пропускать " "пробелы.)\n" "Может помочь при сравнении файлов с численными данными." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Пропускать комментарии C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Обрабатывать комментарии C/C++ как пробелы." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Без учёта регистра" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Обрабатывать различие в регистре как изменения в пробелах. («a»<=>«A»)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Предварительная команда:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Предварительная обработка, определяемая пользователем (для подробностей см. " "документацию)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Предварительная команда для сравнения строк:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Этот предобработчик используется только во время процесса соответствия " "строк.\n" "(Подробности см. в документации)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Задействовать все алгоритмы (медленно)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Включить опцию --minimal для внешних программ diff.\n" "Анализ больших файлов будет намного медленнее." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Выравнять B и C для 3 входных файлов" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Попробовать выровнять B и C при сравнении или объединении трёх входных " "файлов.\n" "Не рекомендуется для объединения, поскольку может усложнить процесс.\n" "(По умолчанию выключено)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Настройки объединения" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Задержка перед переходом, мс:" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Показывать результат текущего выбора на некоторое время, а затем переходить " "к следующему конфликту. Диапазон: 0..2000 мс" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Отображать информационные окна" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Отображать окно с информацией о количестве конфликтов." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Пустые промежутки при объединении двух файлов:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Выбор вручную" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Позволить алгоритму объединения автоматически выбирать входной для изменений " "только с пробелами." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Пустые промежутки при объединении трёх файлов:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Регулярное выражение автоматического объединения" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Регулярное выражение для строк, где KDiff3 должен автоматически выбирать " "один источник.\n" "Когда строка с конфликтом соответствует регулярному выражению, тогда,\n" "если доступно, будет выбрано C, иначе — B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Запустить автоматическое объединение по регулярному выражению в начале " "процесса объединения" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Запустить объединение для автоматически объединяемых регулярных выражений\n" "сразу же после начала процесса объединения.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Объединение истории системы контроля версий" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Регулярное выражение для начала пункта истории системы контроля версий.\n" "Обычно эта строка содержит ключевое слово «$Log$».\n" "Значение по умолчанию: «.*\\$Log.*\\$.*»" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Пункт истории системы контроля версий состоит из нескольких строк.\n" "Введите регулярное выражение чтобы обнаружить первую строку (без комментария " "в начале).\n" "Используйте скобки чтобы группировать ключи, которые вы хотите использовать " "для сортировки.\n" "Если оставить пустым, то KDiff3 предполагает, что пустые строки отделяют " "пункты истории.\n" "Подробности см. в документации." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Сортировка объединения истории" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Сортировать историю системы контроля версий по ключу." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Порядок ключей сортировки начала пункта истории" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Каждая пара скобок, используемая в регулярном выражении для пункта начала " "истории группирует ключ, который можно использовать для сортировки.\n" "Укажите список ключей (который занумерованы в порядке появления\n" "начиная с 1) используя «,» как разделитель (например, «4,5,6,1,2,3,7»).\n" "Если оставить пустым, то сортировка производится не будет.\n" "Подробности см. в документации." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" "Объединить историю системы контроля версий в начале процесса объединения." #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Запустить автоматическое объединение истории системы контроля версий в " "начале процесса объединения." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Максимальное количество пунктов истории:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Вырезать начиная с указанного числа. Используйте -1 для всех пунктов истории." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Проверка ваших регулярных выражений" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Ошибочная команда объединения:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Если указано, этот скрипт запускается после автоматического объединения\n" "когда не обнаружены другие относящие к делу изменения.\n" "Запускается с параметрами: файл1 файл2 файл3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Автоматически сохранить и выйти, при объединении без конфликтов" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Если KDiff3 был запущен из командной строки и все\n" "конфликты разрешимы без участия пользователя, тогда автоматически сохранить " "и выйти.\n" "(Подобно опции командной строки «--auto».)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Каталог" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Рекурсивно по каталогам" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Нужно ли анализировать подкаталоги или нет." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Маски файлов:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Маска(и) файлов, выбираемых для анализа. \n" "Шаблоны: «*» и «?»\n" "Несколько масок можно указать, используя разделитель: «;»" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Пропускать файлы по маске:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Маска(и) файлов, которые исключаются из анализа. \n" "Шаблоны: «*» и «?»\n" "Несколько масок можно указать, используя разделитель «;»" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Пропускать каталоги по маске:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Маска(и) каталогов, которые исключаются из анализа. \n" "Шаблоны: «*» и «?»\n" "Несколько масок можно указать, используя разделитель «;»" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Использовать .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Расширить пропуск по маске на все типы, которые могут быть пропущены CVS.\n" "Посредством локальных файлов «.cvsignore», правила могут меняться от " "каталога к каталогу." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Учитывать скрытые файлы и каталоги" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Найти файлы и каталоги с атрибутом «скрытый»." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Учитывать файлы и каталоги, начинающиеся с «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Следовать по ссылкам на файлы" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Вкл: Сравнивать файл, на который ссылка указывает.\n" "Выкл: Сравнивать ссылки." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Следовать по ссылкам на каталоги" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Вкл: Сравнивать каталог, на который указывает ссылка.\n" "Выкл: Сравнивать ссылки." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Сравнение имён файлов и учётом регистра" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Сравнение каталогов сравнивает файлы или каталоги, если их названия " "соответствуют. Включите эту опцию, если регистр названий должен " "соответствовать. (По умолчанию на Windows Выкл, иначе Вкл.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Режим сравнивания файлов" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Бинарное сравнение" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Бинарное сравнение каждого файла (по умолчанию)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Полный анализ" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Провести полный анализ и показать статистическую информацию в дополнительных " "столбцах.\n" "(Медленнее чем двоичное сравнение, намного медленнее для двоичных файлов.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Сравнивать по размеру и дате изменения (неточно)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Считать файлы одинаковыми, если время изменения и размер совпадают.\n" "Файлы с одинаковым содержанием, но разными датами изменения будут " "отображаться как разные.\n" "Полезно для больших каталогов или медленных сетей." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Сравнивать по размеру и дате, но использовать двоичное сравнение, если даты " "не совпадают (неточно)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Считать файлы одинаковыми, если время изменения и размер совпадают.\n" "Если даты не совпадают, а размеры совпадают, использовать двоичное " "сравнение.\n" "Полезно для больших каталогов или медленных сетей." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Сравнивать по размеру (неточно)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Считать файлы одинаковыми, если их размеры совпадают.\n" "Полезно для больших каталогов или медленных сетей, когда дата изменяется во " "время скачивания." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Синхронизировать каталоги" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Предлагает сохранить файлы в обоих каталогах, так что\n" "оба каталога будут одинаковы.\n" "Работает только при сравнении двух каталогов без указания назначения." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Отличия в пробелах рассматриваются одинаково" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Если файлы отличаются только пробелами, рассматривать их как одинаковые.\n" "Эта опция Вкл только если выбран полный анализ." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Принимать сразу новые файлы вместо объединения (небезопасно)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Не сравнивай, просто возьми самый новый файл.\n" "(Используйте только если вы знаете, что вы делаете!)\n" "Имеет силу при сравнении двух каталогов." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Сохранить резервные копии (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Если файл будет сохранён поверх старого, то старых файл\n" "будет переименован с расширением «.orig» вместо его удаления." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Региональные настройки" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Язык (требуется перезапуск)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Выберите язык графического интерфейса или «Авто».\n" "Чтобы изменение языка вступило в силу, завершите и запустите заново KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Использовать ту же самую кодировку для остальных:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Включая эту опцию позволяет изменить все кодировки изменяя только первую.\n" "Выключите эту опцию, если нужны различные индивидуальные настройки." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Примечание: локальная кодировка — " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Кодировка файла A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Если включено, то Unicode кодировка (UTF-16 или UTF-8) будет обнаружена.\n" "Если файл не в Unicode, тогда выбранная кодировка будет использована как " "кодировка по умолчанию.\n" "(Определение Unicode зависит от первых байтов файла.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Автоматическое обнаружение Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Кодировка файла B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Кодировка файла C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Кодировка для объединения и сохранения:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Копировать выделение в буфер обмена автоматически" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Если опция включена, то используется кодировка из входных файлов.\n" "В случаях затруднений появится окно с выбором кодировки для сохранения." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Кодировка препроцессора:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Язык справа налево" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Некоторые языки читаются справа налево.\n" "Эта опция изменяет просмотр и редактор соответственно." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Действие" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Региональные настройки" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Пропускаемые опции командной строки:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Список опций командной строки, которые должны быть пропущены, когда KDiff3 " "используется другими инструментами.\n" "Можно указать несколько значений, разделив символом «;»\n" "Эта опция будет подавлять ошибку «Неизвестная опция»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Выход также по клавише Escape" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Быстрый способ выйти.\n" "Для тех, что привык использовать клавишу Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Интегрировать с ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Интегрировать с Rational ClearCase от IBM.\n" "Изменяет файл «map» в подкаталоге ClearCase «lib/mgrs»\n" "(Включено только если каталог «bin» ClearCase присутствует в переменной " "PATH.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Убрать интегрирование с ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Восстановить старый файл «map», перед установкой интегрирования с ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Несовместимый шрифт" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Продолжить" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Выбрать другой шрифт" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Это сбросит абсолютно все параметры, а не только текущей вкладки." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Предварительная команда:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Следующие опции, которые вы выбрали, могут изменить данные:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Скорее всего этого не нужно в процессе объединения.\n" "Вы хотите отключить эти параметры или продолжить с включенными этими " "параметрами?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Опция небезопасна для объединения" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Использовать эти опции в процессе объединения" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Отключить небезопасные" #: pdiff.cpp:300 msgid "Loading A" msgstr "Загрузка A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Загрузка B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Различие: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Построчное сравнение: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Загрузка C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Различие: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Различие: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Построчное сравнение: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Построчное сравнение: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "Все входные файлы содержат одинаковый текст, но двоично не совпадают." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Файлы %1 и %2 имеют одинаковый текст, но двоично не совпадают.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Кажется некоторые входные файлы не являются чисто текстовыми.\n" "Заметим, что объединение в KDiff3 не предназначено для двоичных данных.\n" "Продолжайте на свой страх и риск." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Стоп" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Открытие файлов..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Ошибка открытия файла" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Вырезание в буфер обмена..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Копирование в буфер обмена..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Вставка из буфера обмена..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Сохранить и продолжить" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Продолжить без сохранения" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Поиск завершён." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Поиск завершён" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Ничего не выбрано ни в одном из входных окон diff." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Ошибка при добавлении вручную заданной области diff" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Невозможно инициализировать KDiff часть.\n" "Такая ситуация обычно возникает из-за проблем в установке. Подробности можно " "найти в файле README в пакете исходных файлов." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Владимир Ломов" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "irk.translator@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Настроить KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Главная панель инструментов" #~ msgid "Directory Merge" #~ msgstr "Объединение каталогов" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Николай Шафоростов" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "linux@l10n.org.ua" #~ msgid "Enables/disables the toolbar" #~ msgstr "Отобразить/скрыть панель инструментов" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "Файлы A и B бинарно одинаковы.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "Файлы A и C бинарно одинаковы.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "Файлы A и C содержат одинаковый текст. \n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "Файлы B и C бинарно одинаковы.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "Файлы B и C содержат одинаковый текст. \n" #~ msgid "Preserve carriage return" #~ msgstr "Отображать символ перевода каретки" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Сравнить и объединить" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "Объединение каталогов" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "Объединение каталогов" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "Синхронизировать каталоги" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "Принимать сразу новые файлы вместо объединения (небезопасно)" #~ msgid "List only deltas" #~ msgstr "Только различия" #, fuzzy #~ msgid "no selection" #~ msgstr "Копировать выделение в буфер обмена автоматически" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "Выбор вручную" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "Для совместимости с некоторыми средствами." #~ msgid "For compatibility with certain tools." #~ msgstr "Для совместимости с некоторыми средствами." #~ msgid "Colors in Editor & Diff Output" #~ msgstr "Цвета редактора и вывода различий" kdiff3-0.9.97/po/hr/0000755000175100001440000000000011626145654013361 5ustar joachimuserskdiff3-0.9.97/po/hr/kdiff3plugin.po0000644000175100001440000000420411626145607016304 0ustar joachimusers# Translation of kdiff3plugin to Croatian # # Andrej Dundovic , 2010. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-01-24 16:49+0100\n" "Last-Translator: Andrej Dundovic \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/hr/CMakeLists.txt0000644000175100001440000000016311626145607016117 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(hr ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/hr/kdiff3.po0000644000175100001440000015752611626145607015105 0ustar joachimusers# Translation of kdiff3 to Croatian # # Andrej Dundovic , 2010. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-01-24 16:47+0100\n" "Last-Translator: Andrej Dundovic \n" "Language-Team: Croatian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%" "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Environment: kde\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "" #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "" #: directorymergewindow.cpp:358 msgid "Status" msgstr "" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "Bijelo" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "" #: directorymergewindow.cpp:2989 msgid "A" msgstr "" #: directorymergewindow.cpp:2990 msgid "B" msgstr "" #: directorymergewindow.cpp:2991 msgid "C" msgstr "" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 msgid "Line" msgstr "" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "" #: kdiff3.cpp:956 msgid "Selection" msgstr "" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "" #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "" #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "" #: optiondialog.cpp:603 msgid "Background color:" msgstr "" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" kdiff3-0.9.97/po/rw/0000755000175100001440000000000011626145654013400 5ustar joachimuserskdiff3-0.9.97/po/rw/CMakeLists.txt0000644000175100001440000000016311626145612016132 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(rw ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/rw/kdiff3.po0000644000175100001440000022452011626145612015105 0ustar joachimusers# translation of kdiff3 to Kinyarwanda. # Copyright (C) # This file is distributed under the same license as the kdiff3 package. # Steve Murphy , 2005. # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali , 2005. # Viateur MUGENZI , 2005. # Noëlla Mupole , 2005. # Carole Karema , 2005. # JEAN BAPTISTE NGENDAHAYO , 2005. # Augustin KIBERWA , 2005. # Donatien NSENGIYUMVA , 2005. # Antoine Bigirimana , 2005. # msgid "" msgstr "" "Project-Id-Version: kdiff3 3.4\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2005-05-25 18:07-0600\n" "Last-Translator: Steve Murphy \n" "Language-Team: Kinyarwanda \n" "Language: rw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "Komeza" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy msgid "&File" msgstr "Idosiye..." #: kreplacements/kreplacements.cpp:297 #, fuzzy #| msgid "Editor" msgid "&Edit" msgstr "Muhinduzi" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 #, fuzzy msgid "&Directory" msgstr "Ububiko" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 #, fuzzy msgid "&Movement" msgstr "Igenda" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 #, fuzzy msgid "D&iffview" msgstr "Igabanya" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 #, fuzzy msgid "&Merge" msgstr "Gukomatanya" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "Idirishya" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "Iganamiterere rya musomyi" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy #| msgid "Abort" msgid "&About" msgstr "Ntibyakunze" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 #, fuzzy msgid "Current Item Merge Operation" msgstr "Ibikorerwa Ishusho" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 #, fuzzy msgid "Current Item Sync Operation" msgstr "Iki cyiciro" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "Igikorwa" #: kreplacements/kreplacements.cpp:606 #, fuzzy msgid "Save" msgstr "Gikomeye" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "Tegereza..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy msgid "Select All" msgstr "A " #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format #| msgid "Configure..." msgid "&Configure %1..." msgstr "Kugena imiterere..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy #| msgid "Abort" msgid "About" msgstr "Ntibyakunze" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy msgid "Select Font" msgstr "Gutoranya imyandikire" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 #, fuzzy msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Byahiswemo A Impinduragaciro Ubugari: Imyandikire . \n" "\n" "iyi Porogaramu Impinduragaciro Ubugari: , Guhindura . \n" "\n" "Kuri Gukomeza Cyangwa Kuri Guhitamo Imyandikire . " #: kreplacements/kreplacements.cpp:792 #, fuzzy msgid "Incompatible font." msgstr "%S Itakorana" #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Continue at my own risk" msgstr "Gukomeza Ku " #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Select another font" msgstr "Gutoranya imyandikire" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Ignore" msgstr "Kwirengagiza Inshuro Imwe" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Editor" msgid "Exit" msgstr "Muhinduzi" #: diff.cpp:251 #, fuzzy msgid "Writing clipboard data to temp file failed." msgstr "Ububikokoporora Ibyatanzwe Kuri Idosiye Byanze . " #: diff.cpp:255 #, fuzzy msgid "From Clipboard" msgstr "Ububikokoporora" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, fuzzy, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Byanze . iyi command : \n" "\n" "%1 \n" "\n" "command Yahagaritswe NONEAHA . " #: diff.cpp:653 #, fuzzy, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Umurongo: - - Byanze . iyi command : \n" "\n" "%1 \n" "\n" "Umurongo: - - command Yahagaritswe NONEAHA . " #: diff.cpp:1776 diff.cpp:1790 #, fuzzy msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Ikosa : \n" "ni Umuntu i Umwanditsi: . \n" #: diff.cpp:1778 diff.cpp:1792 #, fuzzy msgid "Severe Internal Error" msgstr "Ikosa " #: directorymergewindow.cpp:136 #, fuzzy msgid "Mix of links and normal files." msgstr "Bya amahuza na Bisanzwe Idosiye . " #: directorymergewindow.cpp:143 #, fuzzy msgid "Link: " msgstr "Ihuza..." #: directorymergewindow.cpp:151 #, fuzzy msgid "Size. " msgstr "Ingano:" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 #, fuzzy msgid "Date & Size: " msgstr "Itariki & Igihe" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, fuzzy, kde-format msgid "Creating temp copy of %1 failed." msgstr "Gukoporora Bya %1 Byanze . " #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, fuzzy, kde-format msgid "Opening %1 failed." msgstr "%1 Byanze . " #: directorymergewindow.cpp:213 #, fuzzy msgid "Comparing file..." msgstr "Idosiye ... " #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, fuzzy, kde-format msgid "Error reading from %1" msgstr "Ikosa Kuva: %1 " #: directorymergewindow.cpp:358 msgid "Name" msgstr "Izina" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Igikorwa" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Imimerere" #: directorymergewindow.cpp:359 #, fuzzy msgid "Unsolved" msgstr "Kidakoreshwa" #: directorymergewindow.cpp:359 #, fuzzy msgid "Solved" msgstr "Gikomeye" #: directorymergewindow.cpp:359 #, fuzzy msgid "Nonwhite" msgstr "Nta na kimwe" #: directorymergewindow.cpp:359 msgid "White" msgstr "Umweru" #: directorymergewindow.cpp:388 #, fuzzy msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "A Ububiko Gukomatanya . , Kuri Kureka i Gukomatanya na i Ububiko ? " #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 #, fuzzy msgid "Rescan" msgstr "Urukiramende" #: directorymergewindow.cpp:391 pdiff.cpp:1081 #, fuzzy msgid "Continue Merging" msgstr "Gukomeza " #: directorymergewindow.cpp:548 #, fuzzy msgid "Opening of directories failed:" msgstr "Bya ububiko bw'amaderese Byanze : " #: directorymergewindow.cpp:551 #, fuzzy, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "A \" %1 \" OYA Cyangwa ni OYA A Ububiko . \n" #: directorymergewindow.cpp:554 #, fuzzy, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "\" %1 \" OYA Cyangwa ni OYA A Ububiko . \n" #: directorymergewindow.cpp:557 #, fuzzy, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "\" %1 \" OYA Cyangwa ni OYA A Ububiko . \n" #: directorymergewindow.cpp:559 #, fuzzy msgid "Directory Open Error" msgstr "Gufungura Ikosa " #: directorymergewindow.cpp:567 #, fuzzy msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Ishyika: Ububiko OYA i Nka A Cyangwa Ryari: ububiko bw'amaderese . \n" "Nanone Mbere . " #: directorymergewindow.cpp:569 #, fuzzy msgid "Parameter Warning" msgstr "Kuburira bijyanye na mucapyi" #: directorymergewindow.cpp:574 #, fuzzy msgid "Scanning directories..." msgstr "ububiko bw'amaderese ... " #: directorymergewindow.cpp:607 #, fuzzy msgid "Reading Directory A" msgstr "A " #: directorymergewindow.cpp:629 #, fuzzy msgid "Reading Directory B" msgstr "Guhanga ububiko " #: directorymergewindow.cpp:651 #, fuzzy msgid "Reading Directory C" msgstr "Guhanga ububiko " #: directorymergewindow.cpp:677 #, fuzzy msgid "Some subdirectories were not readable in" msgstr "Ububiko bwungirije OYA in " #: directorymergewindow.cpp:682 #, fuzzy msgid "Check the permissions of the subdirectories." msgstr "i Uruhushya Bya i Ububiko bwungirije . " #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Cyiteguye." #: directorymergewindow.cpp:735 #, fuzzy msgid "Directory Comparison Status" msgstr "Inzira y'ububiko" #: directorymergewindow.cpp:736 #, fuzzy msgid "Number of subdirectories:" msgstr "Bya Ububiko bwungirije : " #: directorymergewindow.cpp:737 #, fuzzy msgid "Number of equal files:" msgstr "Bya bingana Idosiye : " #: directorymergewindow.cpp:738 #, fuzzy msgid "Number of different files:" msgstr "Bya Idosiye : " #: directorymergewindow.cpp:741 #, fuzzy msgid "Number of manual merges:" msgstr "Bya Bikorwa : " #: directorymergewindow.cpp:912 #, fuzzy msgid "This affects all merge operations." msgstr "Byose Gukomatanya Ibikorwa: . " #: directorymergewindow.cpp:913 #, fuzzy msgid "Changing All Merge Operations" msgstr "Ibikorerwa Ishusho" #: directorymergewindow.cpp:1312 #, fuzzy msgid "Processing " msgstr "Inonosora" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 #, fuzzy msgid "To do." msgstr "Gukora" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 #, fuzzy msgid "Copy A to B" msgstr "A Kuri " #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 #, fuzzy msgid "Copy B to A" msgstr "Kuri A " #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 #, fuzzy msgid "Delete A" msgstr "A " #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 #, fuzzy msgid "Delete B" msgstr "Gusiba #" #: directorymergewindow.cpp:1814 #, fuzzy msgid "Delete A & B" msgstr "A & " #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 #, fuzzy msgid "Merge to A" msgstr "Kuri A " #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 #, fuzzy msgid "Merge to B" msgstr "Kuri " #: directorymergewindow.cpp:1817 #, fuzzy msgid "Merge to A & B" msgstr "Kuri A & " #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 #, fuzzy msgid "Delete (if exists)" msgstr "( NIBA ) " #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Gukomatanya" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #, fuzzy msgid "Merge (manual)" msgstr "( Bikorwa ) " #: directorymergewindow.cpp:1824 #, fuzzy msgid "Error: Conflicting File Types" msgstr "Ikosa : Idosiye " #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 #, fuzzy msgid "Error: Dates are equal but files are not." msgstr "Ikosa : bingana Idosiye OYA . " #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 #, fuzzy msgid "This operation is currently not possible." msgstr "Igikorwa ni OYA . " #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 #, fuzzy msgid "Operation Not Possible" msgstr "Igikorwa nticyashobotse" #: directorymergewindow.cpp:1945 #, fuzzy msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Nta na rimwe : \n" "\n" ": = Kuri iyi , Umuntu i Porogaramu Umwanditsi: . " #: directorymergewindow.cpp:1945 #, fuzzy msgid "Program Error" msgstr "Ikosa " #: directorymergewindow.cpp:1956 #, fuzzy msgid "An error occurred while copying.\n" msgstr "Ikosa Gukoporora . \n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "Ikosa." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 #, fuzzy msgid "Merge Error" msgstr "Ikosa " #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Ikosa." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Byakozwe." #: directorymergewindow.cpp:1990 #, fuzzy msgid "Not saved." msgstr "Bidasangiwe" #: directorymergewindow.cpp:2025 #, fuzzy msgid "Unknown merge operation. (This must never happen!)" msgstr "Gukomatanya Igikorwa . ( Nta na rimwe ! ) " #: directorymergewindow.cpp:2057 #, fuzzy msgid "Unknown merge operation." msgstr "Gukomatanya Igikorwa . " #: directorymergewindow.cpp:2072 #, fuzzy msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Gukomatanya ni Bigyanye Kuri . \n" "\n" "\" \" NIBA Soma i Amabwiriza na . \n" "\" \" . \n" "\n" "iyi Porogaramu beta Imimerere na ni ! Ibyashyinguwe Bya Ibyatanzwe ! " #: directorymergewindow.cpp:2077 #, fuzzy msgid "Starting Merge" msgstr "Gutangiza serivise" #: directorymergewindow.cpp:2078 #, fuzzy msgid "Do It" msgstr "Akadomo" #: directorymergewindow.cpp:2079 #, fuzzy msgid "Simulate It" msgstr "Kwigana Igaragaza" #: directorymergewindow.cpp:2105 #, fuzzy msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "Ikintu A Ubwoko: in i ububiko bw'amaderese . Kuri . " #: directorymergewindow.cpp:2114 #, fuzzy msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "Amatariki Bya i Idosiye bingana i Idosiye OYA . Kuri . " #: directorymergewindow.cpp:2123 #, fuzzy msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "Ikintu A Ubwoko: in i ububiko bw'amaderese . Kuri . " #: directorymergewindow.cpp:2174 #, fuzzy msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "Igikorwa ni OYA Ububiko Gukomatanya ni . " #: directorymergewindow.cpp:2234 #, fuzzy msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Ikosa in i Iheruka Intera . \n" "Kuri Gukomeza Na: i Ikintu i Ikosa Cyangwa Kuri Gusimbuka iyi Ikintu ? " #: directorymergewindow.cpp:2236 #, fuzzy msgid "Continue merge after an error" msgstr "Gukomeza Gukomatanya Nyuma Ikosa " #: directorymergewindow.cpp:2237 #, fuzzy msgid "Continue With Last Item" msgstr "Gukomeza " #: directorymergewindow.cpp:2238 #, fuzzy msgid "Skip Item" msgstr "Ibigize by'ilisiti" #: directorymergewindow.cpp:2272 #, fuzzy msgid "Skipped." msgstr "Byoherejwe ku" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 #, fuzzy msgid "In progress..." msgstr "Aho bigeze: ... " #: directorymergewindow.cpp:2327 #, fuzzy msgid "Merge operation complete." msgstr "Igikorwa Byuzuye . " #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 #, fuzzy msgid "Merge Complete" msgstr "Gushyira ku gihe byarangiye" #: directorymergewindow.cpp:2340 #, fuzzy msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "Gukomatanya Byuzuye : NIBA Na: i Ibikorwa: . " #: directorymergewindow.cpp:2374 #, fuzzy msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Habayemoikosa." #: directorymergewindow.cpp:2406 #, fuzzy, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Ikosa : Gusiba %1 : Inyibutsa Byanze . " #: directorymergewindow.cpp:2413 #, fuzzy, kde-format msgid "delete directory recursively( %1 )" msgstr "Gusiba Ububiko ( %1 ) " #: directorymergewindow.cpp:2415 #, fuzzy, kde-format msgid "delete( %1 )" msgstr "Gusiba" #: directorymergewindow.cpp:2430 #, fuzzy msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Ikosa : Gusiba Igikorwa Byanze Kuri Soma i Ububiko . " #: directorymergewindow.cpp:2449 #, fuzzy, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Ikosa : ( %1 ) Igikorwa Byanze . " #: directorymergewindow.cpp:2459 #, fuzzy msgid "Error: delete operation failed." msgstr "Ikosa : Gusiba Igikorwa Byanze . " #: directorymergewindow.cpp:2485 #, fuzzy, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "Bikorwa Gukomatanya ( %1 , %2 , %3 - > %4 ) " #: directorymergewindow.cpp:2488 #, fuzzy msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "icyitonderwa : A Bikorwa Gukomatanya i Umukoresha Gukomeza ku . " #: directorymergewindow.cpp:2513 #, fuzzy, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "Ikosa : Gukoporora ( %1 - > %2 ) Byanze . Ishyika: Byanze . " #: directorymergewindow.cpp:2522 #, fuzzy, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Ihuza ku %1 (%2)" #: directorymergewindow.cpp:2533 #, fuzzy msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Ikosa : Byanze : amahuza OYA . " #: directorymergewindow.cpp:2539 #, fuzzy msgid "Error: copyLink failed." msgstr "Ikosa : Byanze . " #: directorymergewindow.cpp:2564 #, fuzzy, kde-format msgid "copy( %1 -> %2 )" msgstr "Gukoporora" #: directorymergewindow.cpp:2590 #, fuzzy, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Ikosa Guhindura izina ( %1 - > %2 ) : Gusiba Ishyika: . " #: directorymergewindow.cpp:2596 #, fuzzy, kde-format msgid "rename( %1 -> %2 )" msgstr "Guhindura izina" #: directorymergewindow.cpp:2605 #, fuzzy msgid "Error: Rename failed." msgstr "Ikosa : Byanze . " #: directorymergewindow.cpp:2623 #, fuzzy, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Ikosa Bya %1 . Gusiba Idosiye . " #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 #, fuzzy msgid "Error while creating directory." msgstr "Ikosa Kurema Ububiko . " #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 #, fuzzy msgid "Dest" msgstr "Kugogora" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 #, fuzzy msgid "Dir" msgstr "Muhamagazatelefoni" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Ubwoko" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Ingano" #: directorymergewindow.cpp:2679 #, fuzzy msgid "Attr" msgstr "Nyuma" #: directorymergewindow.cpp:2679 #, fuzzy msgid "Last Modification" msgstr "Iherutse guhindurwa" #: directorymergewindow.cpp:2679 #, fuzzy msgid "Link-Destination" msgstr "Ishyika" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy msgid "File" msgstr "Idosiye..." #: directorymergewindow.cpp:2726 #, fuzzy msgid "not available" msgstr "Ntibonetse" #: directorymergewindow.cpp:2746 #, fuzzy msgid "A (Dest): " msgstr "A ( ) : " #: directorymergewindow.cpp:2749 #, fuzzy msgid "A (Base): " msgstr "A ( Base ) : " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 #, fuzzy msgid "Dest: " msgstr "Ibiro: %1" #: directorymergewindow.cpp:2836 #, fuzzy msgid "Save Directory Merge State As..." msgstr "Seriveri y'ububiko:" #: directorymergewindow.cpp:2959 #, fuzzy msgid "Start/Continue Directory Merge" msgstr "Gutangira /Gukomeza " #: directorymergewindow.cpp:2960 #, fuzzy msgid "Run Operation for Current Item" msgstr "ya: " #: directorymergewindow.cpp:2961 #, fuzzy msgid "Compare Selected File" msgstr "Idosiye " #: directorymergewindow.cpp:2962 #, fuzzy msgid "Merge Current File" msgstr "Idosiye " #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "Gukomatanya" #: directorymergewindow.cpp:2963 #, fuzzy msgid "Fold All Subdirs" msgstr "Amajwi Yose" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 #, fuzzy msgid "Choose A for All Items" msgstr "A ya: " #: directorymergewindow.cpp:2969 #, fuzzy msgid "Choose B for All Items" msgstr "ya: " #: directorymergewindow.cpp:2970 #, fuzzy msgid "Choose C for All Items" msgstr "ya: " #: directorymergewindow.cpp:2971 #, fuzzy msgid "Auto-Choose Operation for All Items" msgstr "- ya: " #: directorymergewindow.cpp:2972 #, fuzzy msgid "No Operation for All Items" msgstr "ya: " #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 #, fuzzy msgid "Show Different Files" msgstr "Bya Idosiye : " #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 #, fuzzy msgid "Compare Explicitly Selected Files" msgstr "Idosiye " #: directorymergewindow.cpp:2986 #, fuzzy msgid "Merge Explicitly Selected Files" msgstr "Idosiye " #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ntugire icyo Ukora" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 #, fuzzy msgid "Delete A && B" msgstr "A & & " #: directorymergewindow.cpp:3003 #, fuzzy msgid "Merge to A && B" msgstr "Kuri A & & " #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy msgid "kdiff3" msgstr "Igabanya" #: main.cpp:164 #, fuzzy msgid "Tool for Comparison and Merge of Files and Directories" msgstr "ya: na Bya na " #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy msgid "Clipboard-patch" msgstr "Ububikokoporora" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy msgid "Directory Equality-Coloring patch" msgstr "Inzira y'ububiko" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy msgid "Sergey Zorin" msgstr "Ikosa " #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "Ntugire icyo Ukora" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 #, fuzzy msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Kuri na ! " #: main.cpp:196 #, fuzzy msgid "Merge the input." msgstr "i Iyinjiza . " #: main.cpp:197 #, fuzzy msgid "Explicit base file. For compatibility with certain tools." msgstr "SHINGIRO Idosiye . Bihuye neza Na: Ibikoresho . " #: main.cpp:198 #, fuzzy msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "E. G." #: main.cpp:199 #, fuzzy msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Idosiye , Nanone . ( Bihuye neza Na: Ibikoresho . ) " #: main.cpp:200 #, fuzzy msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "NIBA Byose Ikiyega - . ( - o Idosiye ) " #: main.cpp:201 #, fuzzy msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "mu buryo bwikora: . ( Bihuye neza ... ) " #: main.cpp:202 #, fuzzy msgid "Visible name replacement for input file 1 (base)." msgstr "Izina: ya: Iyinjiza Idosiye 1 ( SHINGIRO ) . " #: main.cpp:203 #, fuzzy msgid "Visible name replacement for input file 2." msgstr "Izina: ya: Iyinjiza Idosiye 2 . " #: main.cpp:204 #, fuzzy msgid "Visible name replacement for input file 3." msgstr "Izina: ya: Iyinjiza Idosiye 3 . " #: main.cpp:205 #, fuzzy msgid "Alternative visible name replacement. Supply this once for every input." msgstr "Kigaragara Izina: . iyi Rimwe ya: buri Iyinjiza . " #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "Bya Idosiye : " #: main.cpp:211 #, fuzzy msgid "file1 to open (base, if not specified via --base)" msgstr "Kuri Gufungura ( SHINGIRO , NIBA OYA Biturutse - - SHINGIRO ) " #: main.cpp:212 #, fuzzy msgid "file2 to open" msgstr "Kuri Gufungura " #: main.cpp:213 #, fuzzy msgid "file3 to open" msgstr "Kuri Gufungura " #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, fuzzy, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Bya : %1 ( Bya %2 ) " #: mergeresultwindow.cpp:303 #, fuzzy msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Ibisohoka Byahinduwe: . \n" "Gukomeza Amahinduka . " #: mergeresultwindow.cpp:834 pdiff.cpp:532 #, fuzzy msgid "All input files are binary equal." msgstr "Iyinjiza Idosiye Nyabibiri bingana . " #: mergeresultwindow.cpp:836 #, fuzzy msgid "All input files contain the same text." msgstr "Iyinjiza Idosiye i Umwandiko . " #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, fuzzy, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "na Nyabibiri bingana . \n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "A na bingana Umwandiko . \n" #: mergeresultwindow.cpp:849 #, fuzzy msgid "Total number of conflicts: " msgstr "Umubare Bya : " #: mergeresultwindow.cpp:850 #, fuzzy msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Bya mu buryo bwikora: : " #: mergeresultwindow.cpp:851 #, fuzzy msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Bya : " #: mergeresultwindow.cpp:853 #, fuzzy msgid "Conflicts" msgstr "Ishyamirana ry'ingenzi" #: mergeresultwindow.cpp:1728 #, fuzzy msgid "" msgstr "< Umurongo: > " #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 #, fuzzy msgid "" msgstr "Ishyamirana ry'ingenzi" #: mergeresultwindow.cpp:2725 #, fuzzy msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Byose . \n" "Idosiye OYA . \n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 #, fuzzy msgid "Conflicts Left" msgstr "Guhitamo Ibumoso" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 #, fuzzy msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Inyibutsa Byanze . Idosiye OYA . " #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 #, fuzzy msgid "File Save Error" msgstr "Idosiye Kubika Ikosa " #: mergeresultwindow.cpp:2792 #, fuzzy msgid "Error while writing." msgstr "Ikosa . " #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Ibisohoka" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 #, fuzzy msgid "[Modified]" msgstr "Byahinduwe" #: mergeresultwindow.cpp:3141 #, fuzzy msgid "Encoding for saving" msgstr "Idosiye ya: : " #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 #, fuzzy msgid "Line end style:" msgstr "Impera Imisusire : " #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy msgid "Conflict" msgstr "Ishyamirana ry'ingenzi" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 #, fuzzy msgid "Couldn't find files for comparison." msgstr "Gushaka Idosiye ya: . " #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 #, fuzzy msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Kuri Ubwoko A Inyibutsa , Gusiba Inyibutsa Byanze . \n" ": " #: fileaccess.cpp:619 #, fuzzy msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Kuri Ubwoko A Inyibutsa , Guhindura izina Byanze . \n" ": " #: fileaccess.cpp:643 #, fuzzy, kde-format msgid "Getting file status: %1" msgstr "Idosiye Imimerere : %1 " #: fileaccess.cpp:686 #, fuzzy, kde-format msgid "Reading file: %1" msgstr "Idosiye : %1 " #: fileaccess.cpp:723 #, fuzzy, kde-format msgid "Writing file: %1" msgstr "Idosiye : %1 " #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Ububiko bwarenzwe" #: fileaccess.cpp:786 #, fuzzy, kde-format msgid "Making directory: %1" msgstr "Ububiko : %1 " #: fileaccess.cpp:806 #, fuzzy, kde-format msgid "Removing directory: %1" msgstr "Ububiko : %1 " #: fileaccess.cpp:821 #, fuzzy, kde-format msgid "Removing file: %1" msgstr "Idosiye : %1 " #: fileaccess.cpp:837 #, fuzzy, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Ihuza : %1 - > %2 " #: fileaccess.cpp:864 #, fuzzy, kde-format msgid "Renaming file: %1 -> %2" msgstr "Idosiye : %1 - > %2 " #: fileaccess.cpp:897 #, fuzzy, kde-format msgid "Copying file: %1 -> %2" msgstr "Idosiye : %1 - > %2 " #: fileaccess.cpp:911 #, fuzzy, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "Ikosa Idosiye Gukoporora Igikorwa : Idosiye ya: Byanze . : %1 " #: fileaccess.cpp:917 #, fuzzy, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "Ikosa Idosiye Gukoporora Igikorwa : Idosiye ya: Byanze . : %1 " #: fileaccess.cpp:932 #, fuzzy, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Ikosa Idosiye Gukoporora Igikorwa : Byanze . : %1 " #: fileaccess.cpp:941 #, fuzzy, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Ikosa Idosiye Gukoporora Igikorwa : Byanze . : %1 " #: fileaccess.cpp:1231 #, fuzzy msgid "Reading directory: " msgstr "Ububiko : " #: fileaccess.cpp:1355 #, fuzzy, kde-format msgid "Listing directory: %1" msgstr "Ububiko : %1 " #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy msgid "Line" msgstr "Ihuza..." #: difftextwindow.cpp:405 #, fuzzy msgid "Line not available" msgstr "Ntibonetse" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 #, fuzzy msgid "Encoding:" msgstr "Idosiye ya: A : " #: difftextwindow.cpp:1759 kdiff3.cpp:831 #, fuzzy msgid "Top line" msgstr "Umurongo: %1 " #: difftextwindow.cpp:1769 msgid "End" msgstr "Impera" #: kdiff3.cpp:169 #, fuzzy msgid "Current Configuration:" msgstr "Iki cyiciro" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "Ikosa gufungura idosiye" #: kdiff3.cpp:219 #, fuzzy msgid "Option --auto used, but no output file specified." msgstr "- - Ikiyega Byakoreshejwe , Oya Ibisohoka Idosiye . " #: kdiff3.cpp:369 #, fuzzy msgid "Option --auto ignored for directory comparison." msgstr "- - Ikiyega ya: Ububiko . " #: kdiff3.cpp:405 #, fuzzy msgid "Saving failed." msgstr "Byanze . " #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 #, fuzzy msgid "Opening of these files failed:" msgstr "Bya Idosiye Byanze : " #: kdiff3.cpp:449 #, fuzzy msgid "File Open Error" msgstr "Ikosa gufungura idosiye" #: kdiff3.cpp:477 #, fuzzy msgid "Opens documents for comparison..." msgstr "Inyandiko ya: ... " #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "Cyiteguye." #: kdiff3.cpp:482 #, fuzzy msgid "Saves the merge result. All conflicts must be solved!" msgstr "i Gukomatanya Igisubizo . ! " #: kdiff3.cpp:484 #, fuzzy msgid "Saves the current document as..." msgstr "i KIGEZWEHO Inyandiko Nka ... " #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 #, fuzzy msgid "Quits the application" msgstr "i Porogaramu " #: kdiff3.cpp:492 #, fuzzy msgid "Cuts the selected section and puts it to the clipboard" msgstr "i Byahiswemo Icyiciro na Kuri i Ububikokoporora " #: kdiff3.cpp:494 #, fuzzy msgid "Copies the selected section to the clipboard" msgstr "i Byahiswemo Icyiciro Kuri i Ububikokoporora " #: kdiff3.cpp:496 #, fuzzy msgid "Pastes the clipboard contents to current position" msgstr "i Ububikokoporora Ibigize Kuri Ibirindiro: " #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 #, fuzzy msgid "Search for a string" msgstr "ya: A Ikurikiranyanyuguti " #: kdiff3.cpp:502 #, fuzzy msgid "Search again for the string" msgstr "Nanone ya: i Ikurikiranyanyuguti " #: kdiff3.cpp:507 #, fuzzy msgid "Enables/disables the statusbar" msgstr "/i Umurongomiterere " #: kdiff3.cpp:511 #, fuzzy msgid "Configure KDiff3..." msgstr "Kugena imiterere..." #: kdiff3.cpp:532 #, fuzzy msgid "Go to Current Delta" msgstr "Kuri " #: kdiff3.cpp:532 #, fuzzy msgid "" "Current\n" "Delta" msgstr "Kuri " #: kdiff3.cpp:534 #, fuzzy msgid "Go to First Delta" msgstr "Kuri " #: kdiff3.cpp:534 #, fuzzy msgid "" "First\n" "Delta" msgstr "Kuri " #: kdiff3.cpp:536 #, fuzzy msgid "Go to Last Delta" msgstr "Kuri " #: kdiff3.cpp:536 #, fuzzy msgid "" "Last\n" "Delta" msgstr "Kuri " #: kdiff3.cpp:538 #, fuzzy msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "( Umweru Umwanya Ibinyuranyo Ryari: \" \" ni Yahagaritswe . ) " #: kdiff3.cpp:539 #, fuzzy msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "( OYA Gusimbuka Umweru Umwanya Ibinyuranyo ATARIIGIHARWE Ryari: \" \" ni " "Yahagaritswe . ) " #: kdiff3.cpp:540 #, fuzzy msgid "Go to Previous Delta" msgstr "Kuri " #: kdiff3.cpp:540 #, fuzzy msgid "" "Prev\n" "Delta" msgstr "Kuri " #: kdiff3.cpp:542 #, fuzzy msgid "Go to Next Delta" msgstr "Kuri " #: kdiff3.cpp:542 #, fuzzy msgid "" "Next\n" "Delta" msgstr "Kuri " #: kdiff3.cpp:544 #, fuzzy msgid "Go to Previous Conflict" msgstr "Kuri " #: kdiff3.cpp:544 #, fuzzy msgid "" "Prev\n" "Conflict" msgstr "Ishyamirana ry'ingenzi" #: kdiff3.cpp:546 #, fuzzy msgid "Go to Next Conflict" msgstr "Kuri " #: kdiff3.cpp:546 #, fuzzy msgid "" "Next\n" "Conflict" msgstr "Kuri " #: kdiff3.cpp:548 #, fuzzy msgid "Go to Previous Unsolved Conflict" msgstr "Kuri " #: kdiff3.cpp:548 #, fuzzy msgid "" "Prev\n" "Unsolved" msgstr "Kidakoreshwa" #: kdiff3.cpp:550 #, fuzzy msgid "Go to Next Unsolved Conflict" msgstr "Kuri " #: kdiff3.cpp:550 #, fuzzy msgid "" "Next\n" "Unsolved" msgstr "Kidakoreshwa" #: kdiff3.cpp:552 #, fuzzy msgid "Select Line(s) From A" msgstr "( S ) A " #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 #, fuzzy msgid "Select Line(s) From B" msgstr "( S ) " #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 #, fuzzy msgid "Select Line(s) From C" msgstr "( S ) " #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 #, fuzzy msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Kuri " #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "Gukoporora Ihitamo " #: kdiff3.cpp:557 #, fuzzy msgid "Show Space && Tabulator Characters for Differences" msgstr "& & ya: " #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 #, fuzzy msgid "Show White Space" msgstr "Umwanya w'Umweru" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 #, fuzzy msgid "Show Line Numbers" msgstr "Kwerekana nomero z'umurongo" #: kdiff3.cpp:560 #, fuzzy msgid "" "Line\n" "Numbers" msgstr "Kwerekana nomero z'umurongo" #: kdiff3.cpp:561 #, fuzzy msgid "Choose A Everywhere" msgstr "A " #: kdiff3.cpp:562 #, fuzzy msgid "Choose B Everywhere" msgstr "Hitamo darayiva" #: kdiff3.cpp:563 #, fuzzy msgid "Choose C Everywhere" msgstr "Hitamo darayiva" #: kdiff3.cpp:564 #, fuzzy msgid "Choose A for All Unsolved Conflicts" msgstr "A ya: " #: kdiff3.cpp:565 #, fuzzy msgid "Choose B for All Unsolved Conflicts" msgstr "ya: " #: kdiff3.cpp:566 #, fuzzy msgid "Choose C for All Unsolved Conflicts" msgstr "ya: " #: kdiff3.cpp:567 #, fuzzy msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "A ya: " #: kdiff3.cpp:568 #, fuzzy msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "ya: " #: kdiff3.cpp:569 #, fuzzy msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "ya: " #: kdiff3.cpp:570 #, fuzzy msgid "Automatically Solve Simple Conflicts" msgstr "Gufunga mu buryo bwikoresha impago zidakoreshwa" #: kdiff3.cpp:571 #, fuzzy msgid "Set Deltas to Conflicts" msgstr "Kuri " #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 #, fuzzy msgid "Automatically Solve History Conflicts" msgstr "Gufunga mu buryo bwikoresha impago zidakoreshwa" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 #, fuzzy msgid "Join Selected Diffs" msgstr "Idosiye " #: kdiff3.cpp:577 #, fuzzy msgid "Show Window A" msgstr "A " #: kdiff3.cpp:578 #, fuzzy msgid "Show Window B" msgstr "Kwerekana Ilisiti y'Amadirishya" #: kdiff3.cpp:579 #, fuzzy msgid "Show Window C" msgstr "Kwerekana Ilisiti y'Amadirishya" #: kdiff3.cpp:580 kdiff3.cpp:591 #, fuzzy msgid "Focus Next Window" msgstr "idirishya rikurikira" #: kdiff3.cpp:582 #, fuzzy msgid "Normal Overview" msgstr "Gahunda-Nyamwaka" #: kdiff3.cpp:583 #, fuzzy msgid "A vs. B Overview" msgstr "A . " #: kdiff3.cpp:584 #, fuzzy msgid "A vs. C Overview" msgstr "A . " #: kdiff3.cpp:585 #, fuzzy msgid "B vs. C Overview" msgstr "Incamake" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 #, fuzzy msgid "Focus Prev Window" msgstr "Kwerekeza ku idirishya: " #: kdiff3.cpp:594 #, fuzzy msgid "Toggle Split Orientation" msgstr "Icyerekezo mwandiko" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 #, fuzzy msgid "The merge result hasn't been saved." msgstr "Gukomatanya Igisubizo . " #: kdiff3.cpp:656 #, fuzzy msgid "Save && Quit" msgstr "Kubika & & " #: kdiff3.cpp:657 #, fuzzy msgid "Quit Without Saving" msgstr "Komeka utahinduye imiterere" #: kdiff3.cpp:665 pdiff.cpp:1823 #, fuzzy msgid "Saving the merge result failed." msgstr "i Gukomatanya Igisubizo Byanze . " #: kdiff3.cpp:676 pdiff.cpp:1078 #, fuzzy msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "A Ububiko Gukomatanya . , Kuri Kureka ? " #: kdiff3.cpp:701 #, fuzzy msgid "Saving file..." msgstr "Idosiye ... " #: kdiff3.cpp:718 #, fuzzy msgid "Saving file with a new filename..." msgstr "Idosiye Na: A Gishya Izina ry'idosiye: ... " #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "Igikorwa Byuzuye . " #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "Tegereza..." #: kdiff3.cpp:956 #, fuzzy msgid "Selection" msgstr "Gutoranya imyandikire" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "Igikorwa Byuzuye . " #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "Igikorwa Byuzuye . " #: kdiff3.cpp:993 #, fuzzy msgid "Exiting..." msgstr "Tegereza..." #: kdiff3.cpp:1006 #, fuzzy msgid "Toggling toolbar..." msgstr "Umwanyabikoresho ... " #: kdiff3.cpp:1027 #, fuzzy msgid "Toggle the statusbar..." msgstr "i Umurongomiterere ... " #: smalldialogs.cpp:58 #, fuzzy msgid "A (Base):" msgstr "A ( Base ) : " #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 #, fuzzy msgid "File..." msgstr "Idosiye..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 #, fuzzy msgid "Dir..." msgstr "..." #: smalldialogs.cpp:93 #, fuzzy msgid "C (Optional):" msgstr "(bitari ngombwa)" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 #, fuzzy msgid "Output (optional):" msgstr "( Bitari ngombwa ) : " #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Kugena imiterere..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 #, fuzzy msgid "Search text:" msgstr "Umwandiko : " #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Imyandikire y'inyuguti nkuru/nto" #: smalldialogs.cpp:372 #, fuzzy msgid "Search A" msgstr "A " #: smalldialogs.cpp:377 #, fuzzy msgid "Search B" msgstr "Gushaka" #: smalldialogs.cpp:382 #, fuzzy msgid "Search C" msgstr "Gushaka" #: smalldialogs.cpp:387 #, fuzzy msgid "Search output" msgstr "Ibisohoka " #: smalldialogs.cpp:392 msgid "&Search" msgstr "Shakisha" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 #, fuzzy msgid "Match failed." msgstr "Byanze . " #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 #, fuzzy msgid "Unicode, 8 bit" msgstr ", 8 " #: optiondialog.cpp:368 msgid "Unicode" msgstr "Inikode" #: optiondialog.cpp:369 #, fuzzy msgid "Latin1" msgstr "Ikilatini-1" #: optiondialog.cpp:388 #, fuzzy msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "iyi NIBA - Inyuguti OYA . " #: optiondialog.cpp:465 #, fuzzy #| msgid "Configure..." msgid "Configure" msgstr "Kugena imiterere..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 #, fuzzy msgid "Italic font for deltas" msgstr "Imyandikire ya: " #: optiondialog.cpp:559 #, fuzzy msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "i Biberamye Verisiyo Bya i Imyandikire ya: Ibinyuranyo . \n" "i Imyandikire Gushigikira Biberamye Inyuguti , Hanyuma iyi Nta na kimwe . " #: optiondialog.cpp:568 msgid "Color" msgstr "Ibara" #: optiondialog.cpp:569 #, fuzzy msgid "Colors Settings" msgstr "Amagenamiterere y'Akarere" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Ibara ry'imbugambanza:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Ibara ry'imbuganyuma:" #: optiondialog.cpp:612 #, fuzzy msgid "Diff background color:" msgstr "Mbuganyuma Ibara: : " #: optiondialog.cpp:620 #, fuzzy msgid "Color A:" msgstr "A : " #: optiondialog.cpp:628 #, fuzzy msgid "Color B:" msgstr "Ibara:" #: optiondialog.cpp:636 #, fuzzy msgid "Color C:" msgstr "Ibara:" #: optiondialog.cpp:643 #, fuzzy msgid "Conflict color:" msgstr "Ibara: : " #: optiondialog.cpp:651 #, fuzzy msgid "Current range background color:" msgstr "Urutonde Mbuganyuma Ibara: : " #: optiondialog.cpp:659 #, fuzzy msgid "Current range diff background color:" msgstr "Urutonde Mbuganyuma Ibara: : " #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 #, fuzzy msgid "Directory Comparison View:" msgstr "Inzira y'ububiko" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Muhinduzi" #: optiondialog.cpp:718 #, fuzzy msgid "Editor Behavior" msgstr "imyitwarire" #: optiondialog.cpp:732 #, fuzzy msgid "Tab inserts spaces" msgstr "Imyanya " #: optiondialog.cpp:735 #, fuzzy msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" ": tab i Umubare Bya Imyanya . \n" ": A - Inyuguti: Byinjijwemo . " #: optiondialog.cpp:741 #, fuzzy msgid "Tab size:" msgstr "Ingano: : " #: optiondialog.cpp:747 #, fuzzy msgid "Auto indentation" msgstr "Isunika " #: optiondialog.cpp:750 #, fuzzy msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" ": Isunika Bya i Ibanjirije Umurongo: ni Byakoreshejwe ya: A Gishya " "Umurongo: . \n" #: optiondialog.cpp:754 #, fuzzy msgid "Auto copy selection" msgstr "Gukoporora Ihitamo " #: optiondialog.cpp:757 #, fuzzy msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "G." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "Idirishya" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "Gukoporora Ihitamo " #: optiondialog.cpp:772 #, fuzzy msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "i Umurongo: ya: Ryari: Idosiye ni . \n" "/: + ; : ; Na: = , = " #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "Igabanya" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Iganamiterere rya musomyi" #: optiondialog.cpp:809 #, fuzzy msgid "Treat as white space." msgstr "/+ + Ibisobanuro nka Umweru Umwanya . " #: optiondialog.cpp:811 #, fuzzy msgid "Ignore numbers" msgstr "Imibare " #: optiondialog.cpp:814 #, fuzzy msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Umubare Inyuguti Umurongo: . ( Kuri Umweru Umwanya . ) \n" "Ifashayobora Kuri Kugereranya # Idosiye Na: Bikurikije umubare Ibyatanzwe . " #: optiondialog.cpp:819 #, fuzzy msgid "Ignore C/C++ comments" msgstr "/+ + Ibisobanuro " #: optiondialog.cpp:821 #, fuzzy msgid "Treat C/C++ comments like white space." msgstr "/+ + Ibisobanuro nka Umweru Umwanya . " #: optiondialog.cpp:825 #, fuzzy msgid "Ignore case" msgstr "Kwirengagiza Inshuro Imwe" #: optiondialog.cpp:828 #, fuzzy msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Ibinyuranyo nka Umweru Umwanya Amahinduka . ( ' < = > ' ) " #: optiondialog.cpp:832 #, fuzzy msgid "Preprocessor command:" msgstr "command : " #: optiondialog.cpp:836 #, fuzzy msgid "User defined pre-processing. (See the docs for details.)" msgstr "Byahawe imiterere mbere - Inonosora . ( i ya: Birambuye . ) " #: optiondialog.cpp:839 #, fuzzy msgid "Line-matching preprocessor command:" msgstr "- command : " #: optiondialog.cpp:843 #, fuzzy msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Byahawe imiterere mbere - ni Byakoreshejwe Umurongo: . \n" "( i ya: Birambuye . ) " #: optiondialog.cpp:846 #, fuzzy msgid "Try hard (slower)" msgstr "Ikomeye ( ) " #: optiondialog.cpp:849 #, fuzzy msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "i - - Ihitamo ya: i external . \n" "Bya Idosiye . " #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "Iganamiterere rya musomyi" #: optiondialog.cpp:885 #, fuzzy msgid "Auto advance delay (ms):" msgstr "Gutinda ( Madamu ) : " #: optiondialog.cpp:890 #, fuzzy msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "in - Ubwoko i Igisubizo Bya i KIGEZWEHO Ihitamo ni \n" "ya: i Igihe , Mbere Kuri i Ibikurikira > . : 0 %S - Madamu " #: optiondialog.cpp:895 #, fuzzy msgid "Show info dialogs" msgstr "A " #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 #, fuzzy msgid "White space 2-file merge default:" msgstr "Umwanya 2 - Idosiye Gukomatanya Mburabuzi : " #: optiondialog.cpp:904 optiondialog.cpp:917 #, fuzzy msgid "Manual Choice" msgstr "Ibishushanyo by'Intoki" #: optiondialog.cpp:908 optiondialog.cpp:922 #, fuzzy msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "i Gukomatanya Kuri mu buryo bwikora: Guhitamo Iyinjiza ya: Umweru - Umwanya " "- Amahinduka . " #: optiondialog.cpp:913 #, fuzzy msgid "White space 3-file merge default:" msgstr "Umwanya 3 - Idosiye Gukomatanya Mburabuzi : " #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "Bya Ububiko bwungirije : " #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy msgid "Directory" msgstr "Ububiko" #: optiondialog.cpp:1075 #, fuzzy msgid "Recursive directories" msgstr "ububiko bw'amaderese " #: optiondialog.cpp:1077 #, fuzzy msgid "Whether to analyze subdirectories or not." msgstr "Kuri Ububiko bwungirije Cyangwa OYA . " #: optiondialog.cpp:1079 #, fuzzy msgid "File pattern(s):" msgstr "Idosiye Ishusho ( S ) : " #: optiondialog.cpp:1084 #, fuzzy msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "( S ) Bya Idosiye Kuri . \n" ": ' * ' na ' ? ' \n" "ku ikoresha i Mutandukanya : ' ; ' " #: optiondialog.cpp:1090 #, fuzzy msgid "File-anti-pattern(s):" msgstr "Idosiye - - Ishusho ( S ) : " #: optiondialog.cpp:1095 #, fuzzy msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "( S ) Bya Idosiye Kuri Kuva: . \n" ": ' * ' na ' ? ' \n" "ku ikoresha i Mutandukanya : ' ; ' " #: optiondialog.cpp:1101 #, fuzzy msgid "Dir-anti-pattern(s):" msgstr "- - Ishusho ( S ) : " #: optiondialog.cpp:1106 #, fuzzy msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "( S ) Bya ububiko bw'amaderese Kuri Kuva: . \n" ": ' * ' na ' ? ' \n" "ku ikoresha i Mutandukanya : ' " #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 #, fuzzy msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "i Kuri ku . \n" "Bya hafi \" . \" - Idosiye iyi Ububiko . " #: optiondialog.cpp:1120 #, fuzzy msgid "Find hidden files and directories" msgstr "Birahishe Idosiye na ububiko bw'amaderese " #: optiondialog.cpp:1123 #, fuzzy msgid "Finds files and directories with the hidden attribute." msgstr "Idosiye na ububiko bw'amaderese Na: i Birahishe Ikiranga: . " #: optiondialog.cpp:1125 #, fuzzy msgid "Finds files and directories starting with '.'." msgstr "Idosiye na ububiko bw'amaderese Itangira... Na: ' . ' . " #: optiondialog.cpp:1129 #, fuzzy msgid "Follow file links" msgstr "Idosiye amahuza " #: optiondialog.cpp:1132 #, fuzzy msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" ": i Idosiye i Ihuza Utudomo Kuri . \n" ": i amahuza . " #: optiondialog.cpp:1137 #, fuzzy msgid "Follow directory links" msgstr "Ububiko amahuza " #: optiondialog.cpp:1140 #, fuzzy msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" ": i Ububiko i Ihuza Utudomo Kuri . \n" ": i amahuza . " #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 #, fuzzy msgid "File Comparison Mode" msgstr "Idosiye " #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 #, fuzzy msgid "Binary comparison of each file. (Default)" msgstr "Bya Idosiye . ( ) " #: optiondialog.cpp:1173 #, fuzzy msgid "Full analysis" msgstr "Kwikaraga hose" #: optiondialog.cpp:1174 #, fuzzy msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "A Cyuzuye na Herekana %S Sitatisitiki Ibisobanuro: in Birenga Inkingi: . \n" "( A Nyabibiri , ya: Nyabibiri Idosiye . ) " #: optiondialog.cpp:1178 #, fuzzy msgid "Trust the size and modification date (unsafe)" msgstr "i Itariki: ( ) " #: optiondialog.cpp:1179 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Idosiye bingana NIBA i Itariki: na Idosiye Uburebure bingana . \n" "ya: ububiko bw'amaderese Cyangwa Buhoro . " #: optiondialog.cpp:1184 #, fuzzy msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "i Itariki: ( ) " #: optiondialog.cpp:1185 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Idosiye bingana NIBA i Itariki: na Idosiye Uburebure bingana . \n" "ya: ububiko bw'amaderese Cyangwa Buhoro . " #: optiondialog.cpp:1190 #, fuzzy msgid "Trust the size (unsafe)" msgstr "i Ingano: ( ) " #: optiondialog.cpp:1191 #, fuzzy msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Idosiye bingana NIBA Idosiye bingana . \n" "ya: ububiko bw'amaderese Cyangwa Buhoro Ryari: i Itariki: ni Byahinduwe: " "Iyimura . " #: optiondialog.cpp:1199 #, fuzzy msgid "Synchronize directories" msgstr "ububiko bw'amaderese " #: optiondialog.cpp:1202 #, fuzzy msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Kuri Idosiye in Byombi ububiko bw'amaderese ububiko bw'amaderese i . \n" "Ryari: Kabiri ububiko bw'amaderese A Ishyika: . " #: optiondialog.cpp:1208 #, fuzzy msgid "White space differences considered equal" msgstr "Umwanya Ibinyuranyo bingana " #: optiondialog.cpp:1211 #, fuzzy msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Idosiye ku Umweru Umwanya bingana . \n" "ni Gikora Ryari: Cyuzuye ni . " #: optiondialog.cpp:1217 #, fuzzy msgid "Copy newer instead of merging (unsafe)" msgstr "Bya ( ) " #: optiondialog.cpp:1220 #, fuzzy msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Kureba Mo Imbere , i Idosiye . \n" "( iyi NIBA ! ) \n" "CYUZUYE Ryari: Kabiri ububiko bw'amaderese . " #: optiondialog.cpp:1225 #, fuzzy msgid "Backup files (.orig)" msgstr "Idosiye ( . ) " #: optiondialog.cpp:1228 #, fuzzy msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "A Idosiye KURI ki/bishaje Idosiye , Hanyuma i ki/bishaje Na: A ' . - " "Umugereka: Bya Kyasibwe: %S . " #: optiondialog.cpp:1301 optiondialog.cpp:1302 #, fuzzy msgid "Regional Settings" msgstr "Amagenamiterere y'Akarere" #: optiondialog.cpp:1402 #, fuzzy msgid "Language (restart required)" msgstr "( Ongera utangire Bya ngombwa ) " #: optiondialog.cpp:1445 #, fuzzy msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "i Ururimi: Bya i - Ikurikiranyanyuguti Cyangwa \" \" . \n" "A Guhindura... Bya Ururimi: Kuri , &Kuvamo na Ongera utangire . " #: optiondialog.cpp:1463 #, fuzzy msgid "Use the same encoding for everything:" msgstr "i Imisobekere: ya: : " #: optiondialog.cpp:1466 #, fuzzy msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "iyi Kuri Guhindura... Byose ku i Itangira . \n" "iyi NIBA Igenamiterere . " #: optiondialog.cpp:1471 #, fuzzy msgid "Note: Local Encoding is " msgstr "icyitonderwa : ni " #: optiondialog.cpp:1475 #, fuzzy msgid "File Encoding for A:" msgstr "Idosiye ya: A : " #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 #, fuzzy msgid "File Encoding for B:" msgstr "Idosiye ya: : " #: optiondialog.cpp:1499 #, fuzzy msgid "File Encoding for C:" msgstr "Idosiye ya: : " #: optiondialog.cpp:1508 #, fuzzy msgid "File Encoding for Merge Output and Saving:" msgstr "Idosiye ya: na : " #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "Gukoporora Ihitamo " #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 #, fuzzy msgid "File Encoding for Preprocessor Files:" msgstr "Idosiye ya: : " #: optiondialog.cpp:1530 #, fuzzy msgid "Right To Left Language" msgstr "Iburyo ku ibumoso" #: optiondialog.cpp:1533 #, fuzzy msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Indimi Soma Kuva: Iburyo: Kuri Ibumoso: . \n" "Igenamiterere Guhindura... i na Muhinduzi . " #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "Igikorwa" #: optiondialog.cpp:1549 #, fuzzy msgid "Integration Settings" msgstr "Amagenamiterere y'Akarere" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 #, fuzzy msgid "Incompatible Font" msgstr "%S Itakorana" #: optiondialog.cpp:1681 #, fuzzy msgid "Continue at Own Risk" msgstr "Gukomeza Ku " #: optiondialog.cpp:1682 #, fuzzy msgid "Select Another Font" msgstr "Gutoranya imyandikire" #: optiondialog.cpp:1717 #, fuzzy msgid "This resets all options. Not only those of the current topic." msgstr "Byose Amahitamo . Bya i KIGEZWEHO . " #: pdiff.cpp:260 #, fuzzy msgid "PreprocessorCmd: " msgstr "Munonosora" #: pdiff.cpp:265 #, fuzzy msgid "The following option(s) you selected might change data:\n" msgstr "Ihitamo ( S ) Byahiswemo Guhindura... Ibyatanzwe : \n" #: pdiff.cpp:266 #, fuzzy msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "iyi ni OYA A Gukomatanya . \n" "Kuri Kwangira Igenamiterere Cyangwa Gukomeza Na: Igenamiterere Gikora ? " #: pdiff.cpp:268 #, fuzzy msgid "Option Unsafe for Merging" msgstr "ya: " #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 #, fuzzy msgid "Disable Unsafe Options" msgstr "Anga amahitamo y'ishakisha y'urwego rwo hejuru" #: pdiff.cpp:300 #, fuzzy msgid "Loading A" msgstr "A " #: pdiff.cpp:304 #, fuzzy msgid "Loading B" msgstr "Ifungura" #: pdiff.cpp:321 pdiff.cpp:347 #, fuzzy msgid "Diff: A <-> B" msgstr ": A < - > " #: pdiff.cpp:327 pdiff.cpp:372 #, fuzzy msgid "Linediff: A <-> B" msgstr ": A < - > " #: pdiff.cpp:338 #, fuzzy msgid "Loading C" msgstr "Ifungura" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 #, fuzzy msgid "Diff: A <-> C" msgstr ": A < - > " #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 #, fuzzy msgid "Linediff: A <-> C" msgstr ": A < - > " #: pdiff.cpp:534 #, fuzzy msgid "All input files contain the same text, but are not binary equal." msgstr "Iyinjiza Idosiye i Umwandiko . " #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "A na Nyabibiri bingana . \n" #: pdiff.cpp:551 #, fuzzy msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Kuri . \n" "icyitonderwa i - Gukomatanya OYA ya: Nyabibiri Ibyatanzwe . \n" "Gukomeza Ku . " #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Ntibyakunze" #: pdiff.cpp:1087 pdiff.cpp:1175 #, fuzzy msgid "Opening files..." msgstr "Mu Gufungura dosiye" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Ikosa gufungura idosiye" #: pdiff.cpp:1255 #, fuzzy msgid "Cutting selection..." msgstr "Ihitamo ... " #: pdiff.cpp:1276 #, fuzzy msgid "Copying selection to clipboard..." msgstr "Ihitamo Kuri Ububikokoporora ... " #: pdiff.cpp:1292 #, fuzzy msgid "Inserting clipboard contents..." msgstr "Ububikokoporora Ibigize ... " #: pdiff.cpp:1814 #, fuzzy msgid "Save && Continue" msgstr "Kubika & & Gukomeza " #: pdiff.cpp:1815 #, fuzzy msgid "Continue Without Saving" msgstr "Gukomeza " #: pdiff.cpp:2018 #, fuzzy msgid "Search complete." msgstr "Byuzuye . " #: pdiff.cpp:2018 #, fuzzy msgid "Search Complete" msgstr "Igishushanyombonera cy'Ishakisha" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "Ikosa Kurema Ububiko . " #: kdiff3_shell.cpp:76 #, fuzzy msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "OYA Gushaka Inzira %s ! \n" "Kuri iyinjizaporogaramu . Soma i - Idosiye in i Inkomoko Porogaramu ya: " "Birambuye . " #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 #, fuzzy msgid "Configure KDiff3" msgstr "Kuboneza Gucapa na KDE" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #, fuzzy #~ msgid "Directory Merge" #~ msgstr "Seriveri y'ububiko:" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "" #~ "Viateur MUGENZI, JEAN BAPTISTE NGENDAHAYO, Augustin KIBERWA, Donatien " #~ "NSENGIYUMVA" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "" #~ "muvia1@yahoo.fr, ngenda_denis@yahoo.co.uk, akiberwa@yahoo.co.uk, " #~ "ndonatienuk@yahoo.co.uk" #, fuzzy #~ msgid "Enables/disables the toolbar" #~ msgstr "/i Umwanyabikoresho " #, fuzzy #~ msgid "Files A and B are binary equal.\n" #~ msgstr "A na Nyabibiri bingana . \n" #, fuzzy #~ msgid "Files A and C are binary equal.\n" #~ msgstr "A na Nyabibiri bingana . \n" #, fuzzy #~ msgid "Files A and C have equal text. \n" #~ msgstr "A na bingana Umwandiko . \n" #, fuzzy #~ msgid "Files B and C are binary equal.\n" #~ msgstr "na Nyabibiri bingana . \n" #, fuzzy #~ msgid "Files B and C have equal text. \n" #~ msgstr "na bingana Umwandiko . \n" #, fuzzy #~ msgid "Preserve carriage return" #~ msgstr "Garuka " #, fuzzy #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "Garuka Inyuguti ' \\r ' NIBA . \n" #~ "Kuri Kugereranya # Idosiye Byahinduwe: . " #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Ikinyuranyo/Itandukaniro" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "Seriveri y'ububiko:" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "Seriveri y'ububiko:" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "ububiko bw'amaderese " #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "Bya ( ) " #, fuzzy #~ msgid "List only deltas" #~ msgstr "Ibiri ku rutonde" #, fuzzy #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "" #~ "na ububiko bw'amaderese Guhindura... OYA Kugaragara in i Urutonde . " #, fuzzy #~ msgid "no selection" #~ msgstr "Gukoporora Ihitamo " #, fuzzy #~ msgid "Manually match lines" #~ msgstr "Ibishushanyo by'Intoki" #, fuzzy #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "Oya INGARUKA . Bihuye neza Na: Ibikoresho . " #, fuzzy #~ msgid "For compatibility with certain tools." #~ msgstr "Bihuye neza Na: Ibikoresho . " #, fuzzy #~ msgid "Colors in Editor & Diff Output" #~ msgstr "in & " kdiff3-0.9.97/po/da/0000755000175100001440000000000011626145654013334 5ustar joachimuserskdiff3-0.9.97/po/da/kdiff3plugin.po0000644000175100001440000000570311626145611016257 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Martin Schlander , 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-02 11:26+0200\n" "Last-Translator: Martin Schlander \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Sammenlign med %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Sammenflet med %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Gem \"%1\" til senere" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-vejs sammenfletning med basis" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Sammenlign med..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Ryd listen" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Sammenlign" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3-vejssammenligning" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Om KDiff3's menu-plugin..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3's menu-plugin: Ophavsret (C) 2008 Joachim Eibl\n" "KDiff3's hjemmeside: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Brug af kontekstmenu-udvidelsen:\n" "Til simpel sammenligning af to markerede filer vælges \"Sammenlign\".\n" "Hvis den anden fil er et andet sted, så \"Gem\" den første fil til senere, " "og den vil fremgå af undermenuen \"Sammenlign med...\". Brug så \"Sammenlign " "med\" på den anden fil.\n" "Til en 3-vejssammenfletning, skal du først \"Gemme\" basisfilen, så den " "branchder skal indflettes og endelig \"3-vejssammenfletning med basis\" på " "den anden branch, som vil blive brugt som destination.\n" "Det samme gælder for sammenligning og sammenfletning af mapper." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Om KDiff3's menu-plugin" kdiff3-0.9.97/po/da/CMakeLists.txt0000644000175100001440000000016311626145611016065 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(da ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/da/kdiff3fileitemactionplugin.po0000644000175100001440000000610111626145611021165 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Martin Schlander , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-08 11:28+0200\n" "Last-Translator: Martin Schlander \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Sammenlign med %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Sammenflet med %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Gem \"%1\" til senere" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "3-vejssammenfletning med basis" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Sammenlign med..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Ryd listen" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Sammenlign" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "3-vejssammenligning" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Om KDiff3's menu-plugin..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 File Item Action Plugin: Ophavsret (C) 2011 Joachim Eibl\n" "KDiff3s hjemmeside: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Brug af kontekstmenu-udvidelsen:\n" "Til simpel sammenligning af to markerede filer vælges \"Sammenlign\".\n" "Hvis den anden fil er et andet sted, så \"Gem\" den første fil til senere, " "og den vil fremgå af undermenuen \"Sammenlign med...\". Brug så \"Sammenlign " "med\" på den anden fil.\n" "Til en 3-vejssammenfletning, skal du først \"Gemme\" basisfilen, derefter " "den branch der skal indflettes og vælg endelig \"3-vejssammenfletning med " "basis\" på den anden branch, som vil blive brugt som destination.\n" "Det samme gælder for sammenligning og sammenfletning af mapper." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Om KDiff3 File Item Action-plugin" kdiff3-0.9.97/po/da/kdiff3.po0000644000175100001440000024112011626145611015033 0ustar joachimusers# translation of kdiff3.po to # Danish translation of kdiff3 # Copyright (C). # # Erik Kjær Pedersen , 2003, 2004, 2005, 2006, 2007. # Martin Schlander , 2008. # Martin Schlander , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-08 11:25+0200\n" "Last-Translator: Martin Schlander \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Fortsæt" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Annullér" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Afslut" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "O.k." #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Hjælp" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Standardindstillinger" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Fil" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Redigér" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Mappe" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Bevægelse" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iff-visning" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Ind&flet" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Vindue" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Indstillinger" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hjælp" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Om" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "&Udvikler" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Tak til" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Indfletningsoperation for dette element" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Synkroniseringsoperation for dette element" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Åbn" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Gem" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Gem som..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Udskriv..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Klip" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopiér" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Indsæt" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Markér alt" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Vis værktøjslinje" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Vis &statuslinje" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "In&dstil %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Om" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Find" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Find næste" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Vælg skrifttype" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Du valgte en skrifttype med variabel bredde.\n" "\n" "Dette program håndterer ikke skrifttyper af variabel skrifttype\n" "rigtigt, så du vil måske få problemer når du redigerer.\n" "\n" "Ønsker du at fortsætte eller at vælge en anden skrifttype." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Inkompatibel skrifttype." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Fortsæt på eget ansvar" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Vælg en anden skrifttype" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Se menuen Hjælp eller undermappen doc for mere dokumentation." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Brug af KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorér" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Afslut" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Skrivning af udklipsholderdata til midlertidig fil mislykkedes." #: diff.cpp:255 msgid "From Clipboard" msgstr "Fra udklipsholderen" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Forventer mellemrum efter afsluttende citationstegn." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Ikke matchende citationstegn." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Uventet citationstegn i argument." #: diff.cpp:503 msgid "No program specified." msgstr "Intet program angivet." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Forbehandling mislykkedes muligvis. Tjek denne kommando:\n" "\n" " %1\n" "\n" "Forbehandlingskommandoen vil blive deaktiveret nu." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Forbehandlingen af linje-matchning mislykkedes muligvis. Tjek denne " "kommando:\n" "\n" " %1\n" "\n" "Forbehandlingskommandoen til linje-matchning vil blibe deaktiveret nu." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Fejl med datatab:\n" "Hvis dette er reproducerbart så kontakt venligst udviklerne.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Alvorlig intern fejl" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Blanding af link og normale filer." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Link: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Størrelse. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Dato & Størrelse: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Oprettelse af midlertidig kopi af %1 mislykkedes." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Åbning af %1 mislykkedes." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Sammenligner fil..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Fejl ved læsning fra %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Navn" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operation" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Uløst" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Løst" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Ikke-hvid" #: directorymergewindow.cpp:359 msgid "White" msgstr "Hvid" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Du er ved at udføre en mappeindfletning. Er du sikker på at du ønsker at " "afbryde indfletningen og scanne mappen igen?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Advarsel" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Genscan" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Fortsæt med indfletning" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Det mislykkedes at åbne mapper:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Mappen A \"%1\" eksisterer ikke eller er ikke en mappe.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Mappen B \"%1\" eksisterer ikke eller er ikke en mappe.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Mappen C \"%1\" eksisterer ikke eller er ikke en mappe.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Fejl ved åbning af mappe" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Målmappen kan ikke være den samme som A eller B når tre mapper flettes " "sammen.\n" "Tjek igen før du fortsætter." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameteradvarsel" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Scanner mapper..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Læser mappen A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Læser mappen B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Læser mappen C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Nogle undermapper kunne ikke læses i" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Tjek tilladelser for undermapperne." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Klar." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status for mappesammenligning" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Antal undermapper:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Antal ens filer:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Antal forskellige filer:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Antal manuelle indfletninger:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Dette påvirker alle indfletningsoperationer." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Ændrer alle indfletningsoperationer" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Behandler" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "At gøre." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Kopiér A til B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Kopiér B til A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Slet A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Slet B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Slet A & B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Indflet til A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Indflet til B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Indflet til A & B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Slet (hvis det eksisterer)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Indflet" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Indflet (manuelt)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Fejl: Filtyper i konflikt" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Fejl: Ændret og slettet" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Fejl: Datoer er ens men filer er ikke." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Denne operation er ikke mulig for øjeblikket." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operation ikke mulig" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Dette burde aldrig ske: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Hvis du ved hvordan dette kan reproduceres, så kontakt programmets forfatter." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programfejl" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Der opstod en fejl mens der kopieredes.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Fejl" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Indfletningsfejl" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Fejl." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Færdig." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Ikke gemt." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Ukendt indfletningsoperation. (Dette skulle ikke kunne ske!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Ukendt indfletningsoperation." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Indfletningen er ved at begynde.\n" "\n" "Vælg \"Gør det\" hvis du har læst instruktionerne og ved hvad du gør.\n" "Valg af \"Simulér det\" vil fortælle dig hvad der ville ske.\n" "\n" "Vær klar over at dette program stadig har beta-status og der er INGEN " "GARANTI overhovedet! Lav sikkerhedskopier af dine vitale data!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Starter indfletning" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Gør det" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulér det" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Det fremhævede element har forskellig type i de forskellige mapper. Vælg " "hvad der skal gøres." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Ændringsdatoerne for filerne er ens, men filerne er ikke ens. Vælg hvad der " "skal gøres." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Det fremhævede element er blevet ændret i én mappe og slettet i en anden. " "Vælg hvad der skal gøres." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Denne operation er ikke mulig lige nu da mappe-indfletningen kører for " "øjeblikket." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Der opstod en fejl i det sidste skridt.\n" "Vil du fortsætte med det element der forårsagede fejlen eller vil du springe " "dette element over?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Fortsæt med indfletning efter en fejl" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Fortsæt med det sidste element" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Spring elementet over" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Sprunget over." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "I fremgang..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Indfletningsoperation færdig." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Indfletning færdig" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simuleret indfletning færdig: Tjek om du er enig i de foreslåede operationer." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Der opstod en fejl. Tryk på o.k. for at se detaljeret information.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Fejl: Under sletning af %1: Det mislykkedes at lave sikkerhedskopi." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "slet mappe rekursivt( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "slet( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Fejl: 'slet mappe'-operation mislykkedes under forsøget på at læse mappen." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Fejl: rmdir( %1 ) operation mislykkedes." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Fejl: slet-operation mislykkedes." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "manuel indfletning( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Bemærk: Efter en manuel indfletning skal brugeren fortsætte ved at " "trykke på F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Fejl: copy( %1 -> %2 ) mislykkedes. Sletning af eksisterende mål mislykkedes." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Fejl: copyLink mislykkedes: Eksterne link er endnu ikke understøttede." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Fejl: copyLink mislykkedes." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copy( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "Fejl under rename( %1 -> %2 ): Kan ikke slette eksisterende mål." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rename( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Fejl: Omdøbning mislykkedes." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Fejl ved makeDir af %1. Kan ikke slette eksisterende fil." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Fejl ved oprettelse af mappe." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Mål" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Mappe" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Type" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Størrelse" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Sidste ændring" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Link-destination" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Fil" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "ikke tilgængelig" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Basis): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Gem tilstand for mappesammenfletning som..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Start/Fortsæt mappeindfletning" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Kør operation for dette element" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Sammenlign udvalgt fil" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Indflet udvalgt fil" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Sammenflet\n" "fil" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Fold alle undermapper sammen" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Fold alle undermapper ud" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Vælg A for alle elementer" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Vælg B for alle elementer" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Vælg C for alle elementer" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Auto-vælg operation for alle elementer" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Ingen operation for alle elementer" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Vis identiske filer" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identiske\n" "filer" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Vis forskellige filer" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Vis kun filer i A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Filer\n" "kun i A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Vis kun filer i B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Filer\n" "kun i B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Vis filer som kun er i C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Filer\n" "kun i C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Sammenlign eksplicit markerede filer" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Sammenflet eksplicit markerede filer" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Gør intet" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Slet A && B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Indflet til A && B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignoreres. (brugerdefineret)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Værktøj til sammenligning og sammenfletning af filer og mapper" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Fejlrettelser, vedligeholder af Debian-pakke" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Installationsprogram til Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Hjælp med i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Udklipsholder-rettelse" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Hjælp med KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Klassen CvsIgnoreList fra Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Klassen StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Rettelse til farvning af mappelighed" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Rettelse af langsom opstart på Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext til Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensiv afprøvning, brug og feedback" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac-understøttelse" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portering til KDE 4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Portering til OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Mange tak til dem der rapporterede fejl og bidrog med ideer." #: main.cpp:196 msgid "Merge the input." msgstr "Indflet inddata." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Eksplicit basisfil. For kompatibilitet med visse værktøjer." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Uddatafil. Implicerer -m. F.eks.: -o nyfil.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Uddatafil, igen. (For kompatibilitet med visse værktøjer.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Ingen GUI hvis alle konflikter er løsbare af sig selv. (Behøver -o fil)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Løs ikke konflikter automatisk. (For kompatibilitet...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Synlig navneerstatning for inddatafil 1 (basis)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Synlig navneerstatning for inddatafil 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Synlig navneerstatning for inddatafil 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternativ synlig navneerstatning. Angiv dette en gang for hver inddata." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Sæt en indstilling ud af kraft. Brug en gang for hver indstilling, f.eks. --" "cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Vis liste med indstillinger og nuværende værdier." #: main.cpp:208 msgid "Use a different config file." msgstr "Brug en anden indstillingsfil." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "fil1 der skal åbnes (basis, hvis ikke angivet via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "fil2 der skal åbnes" #: main.cpp:213 msgid "file3 to open" msgstr "fil3 der skal åbnes" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Antal tilbageværende uløste konflikter: %1 (af hvilke %2 er blanke tegn)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Uddata er blevet ændret.\n" "Hvis du fortsætter vil dine ændringer gå tabt." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Alle inddata-filer er binært ens." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Alle inddata-filer indeholder den samme tekst." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Filerne %1 og %2 er binært ens.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Filerne %1 og %2 har ens tekst.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Totalt antal konflikter: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Antal automatisk løste konflikter: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Antal uløste konflikter: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikter" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Ikke alle konflikter er løst endnu.\n" "Filen er ikke gemt.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Konflikter tilovers" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Der er en konflikt med stilen på linjeafslutning. Vælg stil på " "linjeafslutning manuelt.\n" "Filen blev ikke gemt.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Mislykkedes at oprette sikkerhedskopi. Filen blev ikke gemt." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Fejl ved at gemme fil" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Fejl ved skrivning." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Uddata" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Ændret]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Filtegnsæt for at gemme" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Linjeslut-stil:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Koder fra" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Kunne ikke finde filer til sammenligning." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Det mislykkedes at slette en ældre sikkerhedskopi under " "sikkerhedskopieringen.\n" "Filnavn: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Det mislykkedes at ændre navnet under sikkerhedskopieringen\n" "Filnavne:" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Henter filstatus: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Læser fil: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Skriver fil: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Ude af hukommelse" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Opretter mappe: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Fjerner mappe: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Fjerner fil: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Laver symbolsk link: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Omdøber fil: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopierer fil: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Fejl under kopieringsoperationen: Åbning af fil til læsning mislykkedes. " "Filnavn: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Fejl under kopieringsoperationen: Åbning af fil til skrivning mislykkedes. " "Filnavn: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Fejl under kopieringsoperationen: Læsning mislykkedes. Filnavn: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Fejl under kopieringsoperationen: Skrivning mislykkedes. Filnavn: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Læser mappe:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Giver en liste af mappe: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Annullér" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linje" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Linjen er ikke tilgængelig" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Tegnsæt:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Toplinje" #: difftextwindow.cpp:1769 msgid "End" msgstr "Slut" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Nuværende konfiguration:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Fejl i indstillingstilvalg:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Tilvalg --auto brugt, men ingen uddatafil angivet." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Tilvalg --auto ignoreret for mappesammenligning." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Det mislykkedes at gemme." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Det mislykkedes at åbne disse filer:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fejl ved åbning af fil" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Åbner dokumenter til sammenligning..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Genindlæs" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "gemmer indfletningsresultatet. Alle konflikter skal løses!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Gemmer dette dokument som..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Udskriv forskellene" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Afslutter programmet" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Udklipper det markerede udvalg og lægger det på udklipsholderen" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopierer det valgte udsnit til udklipsholderen" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Indsætter udklipsholderens indhold på den aktuelle position" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Markér alting i nuværende vindue" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Søg efter en streng" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Søg efter strengen igen" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Slår statuslinjen til/fra" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Indstil KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Gå til den aktuelle delta" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Aktuel\n" "delta" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Gå til første delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Første\n" "delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Gå til sidste delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Sidste\n" "delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Springer over forskelle i blanke tegn når \"Vis blanke tegn\" er " "deaktiveret.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Springer ikke over forskelle i blanke tegn også selvom \"Vis blanke tegn\" " "er deaktiveret.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Gå til forrige delta" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Forrige\n" "delta" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Gå til næste delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Næste\n" "delta" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Gå til forrige konflikt" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Forrige\n" "konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Gå til næste konflikt" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Næste\n" "konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Gå til forrige uløste konflikt" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Forrige\n" "uløste" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Gå til næste uløste konflikt" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Næste\n" "uløste" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Vælg linjer fra A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Vælg\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Vælg linjer fra B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Vælg\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Vælg linjer fra C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Vælg\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Gå automatiske til næste uløste konflikt efter kildevalg" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Auto\n" "næste" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Vis mellemrums && tabulator-tegn for forskelle" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Hvide\n" "tegn" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Vis blanke tegn" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Hvide\n" "deltaer" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Vis linjenumre" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Linje-\n" "numre" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Vælg A overalt" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Vælg B overalt" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Vælg C overalt" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Vælg A for alle uløste konflikter" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Vælg B for alle uløste konflikter" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Vælg C for alle uløste konflikter" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Vælg A for alle uløste konflikter med blanke tegn" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Vælg B for alle uløste konflikter med blanke tegn" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Vælg C for alle uløste konflikter med blanke tegn" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Løs simple konflikter automatisk" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Sæt deltaer til konflikter" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Kør automatisk sammenfletning med regulært udtryk" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Løs historikkonflikter automatisk" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Opdel sammenligning ved markering" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Føj markerede sammenligninger sammen" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Vis vindue A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Vis vindue B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Vis vindue V" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fokus på næste vindue" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normalt overblik" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A vs. B overblik" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A vs. C overblik" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B vs. C overblik" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Tekstombrydning i diff-vinduer" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Tilføj manuel justering af sammenligning" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Ryd alle manuelle justeringer af sammenligning" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fokus på forrige vindue" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Slå opdelt orientering til og fra" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Mappe && tekst opdelt skærmvisning" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Skift mellem Mappe && tekstvisning" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Indfletningsresultatet er ikke blevet gemt." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Gem && afslut" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Afslut uden at gemme" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Det mislykkedes at gemme indfletningsresultatet." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Du er ved at udføre en mappeindfletning. Er du sikker på du ønskler at " "afbryde?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Gemmer fil..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Gemmer fil med nyt filnavn..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Udskrift er ikke implementeret." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Udskriver..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Markering" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Udskrift færdig." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Udskrift afbrudt." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Går ud..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Slår værktøjslinje til/fra" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Slå statuslinje til/fra..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Basis):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fil..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Mappe..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Frivillig):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Skift eller kopiér navne..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Skift %1 ud mod %2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Kopiér %1 til uddata" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Skift %1 ud mod uddata" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Uddata (frivillig):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Indstil..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&O.k." #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Søgetekst:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Versalfølsom" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Gennemsøg A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Gennemsøg B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Gennemsøg C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Søgeuddata" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Søg" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Test af regulære udtryk" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Regulært udtryk for automatisk sammenfletning:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Eksempel på linje for automatisk sammenfletning:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "For at teste automatisk sammenfletning, kopieres en linje som bruges i dine " "filer." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Matchningsresultat:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Regulært udtryk for historikkens begyndelse:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Eksempel på startlinje for historik (med indledende kommentar):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopiér en startlinje for historik som bruges i dine filer,\n" "inkluderende den indledende kommentar." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Regulært udtryk for historikindgangens begyndelse:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Sorteringsnøglerækkefølge for historik:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Eksempel på startlinje for en historikindgang (uden indledende kommentar):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopiér en startlinje for en historikindgang som bruges i dine filer,\n" "men udelad den indledende kommentar." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Sorteringsnøgleresultat:" #: smalldialogs.cpp:508 msgid "OK" msgstr "O.k." #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Matchning lykkedes." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Matchning mislykkedes." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Start- og slutparentes matcher ikke i regulært udtryk." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Ændr dette hvis ikke-ASCII tegn ikke vises rigtigt." #: optiondialog.cpp:465 msgid "Configure" msgstr "Indstil" #: optiondialog.cpp:531 msgid "Font" msgstr "Skrifttype" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Editor & Diff uddata-skrifttype" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kursiv skrifttype for deltaer" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Vælg den kursive udgave af skrifttypen til forskelle.\n" "Hvis skrifttypen ikke understøtter kursive tegn, så gør dette intet." #: optiondialog.cpp:568 msgid "Color" msgstr "Farve" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Farveindstillinger" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Editor- og forskelsvisninger:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Forgrundsfarve:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Baggrundsfarve:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Diff baggrundsfarve:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Farve A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Farve B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Farve C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Konfliktfarve:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Baggrundsfarve for aktuelt område:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Diff baggrundsfarve for aktuelt område:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Farvelæg for manuelt justerede sammenligningsområder:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Mappesammenligningsvisning:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Farve for nyeste fil:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "At ændre farven får kun virkning når næste mappesammenligning startes." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Farve for ældste fil:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Farve for middelgammel fil:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Farve for manglende filer:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Editor-opførsel" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab indsætter mellemrum" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Til: Tryk på tab genererer et passende antal mellemrum.\n" "Fra: Et Tab-tegn bliver indsat." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tab-størrelse:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Auto-indrykning" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Til: Indrykningen for den tidligere linje bruges for en ny linje.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Autokopi udvalg" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Til: Enhver markering bliver umiddelbart skrevet til udklipsholderen.\n" "Fra: Du skal eksplicit kopiere f.eks. via Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Autodetektér" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Sætter linjeafslutninger for når en redigeret fil gemmes.\n" "DOS/Windows: CR+LF; UNIX: LF; med CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Diff-indstillinger" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Behandl som white space." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorér numre" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignorér nummer-tegn i den fase hvor du matcher linjer. (Ligner Ignorér " "blanke tegn.)\n" "Kan muligvis hjælpe med at sammenligne numeriske data." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorér C/C++ kommentarer" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Behandl C/C++ kommentarer ligesom blanke tegn." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorér versaltype" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Behandl forskel mellem store og små bogstaver som ændringer i blanke tegn. " "('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Præprocessor kommando:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "Brugerdefineret præ-proces. (Se dokumentationen for detaljer.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Linje-matchende præprocessor kommando:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Denne præ-processor bruges kun når du matcher linjer.\n" "(Se dokumentationen for detaljer.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Prøv hårdt (langsommere)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Aktiverer --minimal tilvalget for den eksterne diff.\n" "Analysen af store filer vil være meget langsommere." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Justér B og C til 3 input-filer" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Prøv at justere B og C når tre input-filer sammenlignes eller " "sammenflettes.\n" "Anbefales ikke til sammenfletning fordi sammenfletning kan blive " "kompliceret.\n" "(Standard er \"Fra\".)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Sammenfletningsindstillinger" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Auto fremad-tøven (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "I Auto-fremad tilstand vil resultatet af det øjeblikkelige valg blive vist\n" "i det angiven tidsrum tid, før der springes frem til den næste konflikt. " "Område: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Vis infodialoger" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Vis en dialog med information om antallet af konflikter." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Standard for 2-fils indfletning af blanke tegn:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Manuelt valg" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Tillad indfletningsalgoritmen automatisk at vælge et input for ændringer kun " "af blanke tegn." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Standard for 3-fils indfletning:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Automatisk sammenfletning med regulært udtryk" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regulært udtryk for linjer hvor Kdiff3 automatisk skal vælge en kilde.\n" "Når en linje med en konflikt matcher det regulære udtryk vælges -C \n" "om tilgængeligt, ellers vælges B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Kør automatisk sammenfletning med regulært udtryk når sammenfletning starter" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Kør automatisk sammenfletning med regulært\n" "udtryk med det samme når en sammenfletning starter.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Sammenfletning ifølge versionskontrolhistorik" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regulært udtryk for begyndelsen af versionshåndteringens historikindgang.\n" "Som oftest indeholder linjen nøgleordet \"$Log$\".\n" "Standardværdi: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "En versionskontrol historikindgang består af flere linjer.\n" "Angiv det regulære udtryk for at detektere første linje (uden den indledende " "kommentar).\n" "Brug parenteser for at gruppere nøglerne du vil bruge til sortering.\n" "Hvis dette efterlades tomt, antager Kdiff3 at tomme linjer skiller " "historikposterne ad.\n" "Se dokumentationen for detaljer." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Sortering af historiksammenfletning" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Sortér versionskontrolhistorikken med en nøgle." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Sorteringsnøglernes rækkefølge fra historikpostens begyndelse:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Hvert par af parenteser som bruges i det regulære udtryk for " "historikkensstartindgang\n" "grupperer en nøgle som kan bruges til sortering.\n" "Angiv listen med nøgler (som nummereres i den rækkefølge de forekommer\n" "begyndende med på 1), ved brug af \",\" som skilletegn (f.eks. " "\"4,5,6,1,2,3,7\").\n" "Hvis det efterlades tomt, udføres ingen sortering.\n" "Se dokumentationen for detaljer." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" "Sammenfletning ifølge versionskontrolhistorik når sammenfletning starter" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Kør automatisk sammenfletning ifølge versionskontrolhistorik når " "sammenfletning starter." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Maks. antal historikindgange:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Afbryd efter angivet antal. Brug -1 for uendeligt antal indgange." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Test dine regulære udtryk" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Ikke relevant sammenfletningskommando:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Hvis angivet køres dette script efter automatisk sammenfletning\n" "når ingen andre relevante ændringer blev detekteret.\n" "Kaldes med parametrene: filnavn1 filnavn2 filnavn3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Gem automatisk og afslut ved sammenfletning uden konflikter" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Hvis KDiff3 startes til filsammenfletning fra kommandolinjen og alle\n" "konflikter er løsbare uden brugerinteraktion, så gemmes og afsluttes " "automatisk.\n" "(Ligesom kommandolinjetilvalget \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Mappe" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekursive mapper" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Om undermapper skal analyseres eller ej." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Filmønstre:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mønstre af filer der skal undersøges.\n" "Jokertegn: '*' og '?'\n" "Flere mønstre kan angives ved brug af adskillertegnet: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Fil-anti-mønstre:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mønstre af filer der skal udelukkes fra analysen.\n" "Jokertegn: '*' og '?'\n" "Flere mønstre kan angives ved brug af adskillertegnet: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Mappe-anti-mønstre:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Mønstre af mapper der skal udelukkes fra analysen.\n" "Jokertegn: '*' og '?'\n" "Flere mønstre kan angives ved brug af adskillertegnet: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Brug .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Udvider anti-mønstret til hvadsomhelst der ville blive ignoreret af CVS.\n" "Via lokale \".cvsignore\"-filer kan dette være specifikt for en enkel mappe." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Find skjulte filer og mapper" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Finder filer og mapper med en skjulte attribut." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Finder filer og mapper der begynder med '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Følger fil-link" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Til: Sammenlign med filen som linket peger på.\n" "Fra: Sammenlign link." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Følg mappe-link" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Til: Sammenlign med mappen som linket peger på.\n" "Fra: Sammenlign link." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Versalfølsom filnavnesammenligning" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Mappesammenligning sammenligner filer eller mapper når deres navne matcher.\n" "Angiv dette tilvalg hvis navnenes versaltilstand skal matche. " "(Standardværdien for Windows er fra, ellers til.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Filsammenligningstilstand" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binær sammenligning" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binær sammenligning af hver fil. (Standard)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Fuld analyse" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Udfør en fuld analyse og vis statistisk information i ekstra søjler.\n" "(Langsommere end en binær sammenligning, meget langsommere for binære filer.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Stol på størrelsen og ændringsdatoen (usikkert)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Antag at filer er ens hvis ændringsdatoen og filstørrelsen er ens.\n" "Filer med ens indhold men forskellig ændringsdatoer vil se forskellige ud.\n" "Nyttigt til store mapper og langsomme netværk." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Stol på størrelse og dato, men brug binær sammenligning hvis dato ikke " "matcher (usikkert)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Antag at filer er ens hvis ændringsdatoen og filstørrelsen er ens.\n" "Hvis datoen ikke er ens men størrelsen er, bruges binær sammenligning.\n" "Nyttig til store mapper eller langsomme netværk." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Stol på størrelsen (usikker)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Antag at filer er ens hvis deres fillængder er ens.\n" "Nyttigt for store mapper eller langsomme netværk, når datoen er ændret efter " "filer er hentet." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Synkronisér mapper" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Tilbyder at opbevare filer i begge mapper så\n" "begge mapper er ens bagefter.\n" "Virker kun når to mapper sammenlignes uden at angive nogen destination." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Forskelle i blanke tegn anses for ens" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Hvis filer kun adskiller sig med blanke tegn, anses dem for ens.\n" "Dette er kun aktiveret når fuldstændig analyse vælges." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Kopiér nyere i stedet for at indflette (usikker)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Kig ikke indeni, tag blot den nyere fil.\n" "(Brug kun dette hvis du ved hvad du foretager dig!)\n" "Kun effektivt når to mapper sammenlignes." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Sikkerhedskopieringsfiler (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Hvis en fil ville blive gemt over en gammel fil, så vil den gamle\n" "fil blive omdøbt med en '.orig'-endelse i stedet for at blive slettet." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regionsindstillinger" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Sprog (genstart krævet)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Vælg sproget for GUI-strengene eller \"Auto\".\n" "For at en ændring af sprog skal ske, afslut og start KDiff3 igen." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Brug samme tegnsæt til alt:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "At aktivere dette lader dig ændre alle tegnsæt ved at kun ændre den første.\n" "Deaktivér det hvis forskellige individuelle indstillinger behøves." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Bemærk: Lokalt tegnsæt er " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Filtegnsæt for A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Hvis aktiveret detekteres Unicode-tegnsæt (UTF-16 eller UTF-8).\n" "Hvis filen ikke er Unicode, bruges det valgte tegnsæt som reserve.\n" "(Detektering af Unicode afhænger af de første bytes i en fil.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Detektér Unicode automatisk" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Filtegnsæt for B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Filtegnsæt for C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Filtegnsæt for sammenflettede uddata og når der gemmes:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Automatisk markering" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Hvis aktiveret bruges inddatafilernes kodning.\n" "I tvetydige tilfælde bedes brugeren om at vælge kodning at gemme med via en " "dialog." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Filtegnsæt for forbehandlingsfiler:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Sprog som læses fra højre til venstre" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Nogle sprog læses fra højre til venstre.\n" "Indstillingen ændrer visningen og editoren på tilsvarende måde." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integrering" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Integreringsindstillinger" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Kommandolinjeflag at ignorere:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Liste med kommandolinjeflag som skal ignoreres når Kdiff3 bruges af andre " "værktøjer.\n" "Flere værdier kan angives hvis de adskilles af ';'\n" "Dette undertrykker fejlmeddelelsen \"Ukendt flag\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Afslut også med Escape-tasten" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Hurtig metode til afslutning.\n" "For dem der er vant til at bruge Escape-tasten." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrér med ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integrér med Rational ClearCase fra IBM.\n" "Ændrer \"map\"-filen i ClearCase-undermappen \"lib/mgrs\"\n" "(Kun aktiveret når ClearCases \"bin\"-mappe er i path.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Fjern ClearCase-integration" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Gendan den gamle \"map\"-fil fra før udførsel af ClearCase-integration." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Inkompatibel skrifttype" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Fortsæt på eget ansvar." #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Vælg en anden skrifttype" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Dette nulstiller alle tilvalg. Ikke kun dem der angår dette emne." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Præprocessor kommando:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Følgende tilvalg du valgte vil muligvis ændre data:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Mest sandsynligt ikke ønsket under en indfletning.\n" "Ønsker du at deaktivere disse indstillinger eller fortsætte med disse " "indstillinger aktive?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Tilvalg usikkert ved en indfletning" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Brug disse tilvalg under en indfletning" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Deaktivér usikre tilvalg" #: pdiff.cpp:300 msgid "Loading A" msgstr "Indlæser A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Indlæser B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linjeforskel: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Indlæser C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linjeforskel: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linjeforskel: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Alle inddata-filer indeholder den samme tekst, men er ikke binært " "ækvivalente." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Filerne %1 og %2 har samme tekst men er ikke binært ens.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Nogle inddatafiler synes ikke at være rene tekstfiler.\n" "Bemærk at KDiff3-indfletningen ikke er beregnet til binære data.\n" "Fortsæt på eget ansvar." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Nogle input-tegn kunne ikke konverteres til gyldig unicode.\n" "Du bruger måske et forkert codec (f.eks. UTF-8 for filer der ikke er " "UTF-8).\n" "Hvis du er i tvivl så gem ikke resultatet. Fortsæt på eget ansvar.\n" "De omfattede input-filer er i %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Afbryd" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Åbner filer..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fejl ved åbning af fil" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Klipper valgene ud..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopierer markering til udklipsholderen..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Indsætter udklipsholderens indhold..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Gem && Fortsæt" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Fortsæt uden at gemme" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Søgning færdig." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Søgning færdig" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Ingenting er markeret i inddatavindue med sammenligning." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Fejl ved tilføjelse manuelt sammenligningsområde" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Kunne ikke initialisere KDiff3 Part.\n" "Dette sker sædvanligvis på grund af et installationsproblem. Læs venligst " "README-filen i kildekodepakken for detaljer." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Martin Schlander" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "mschlander@opensuse.org" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Indstil KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Hovedværktøjslinje" #~ msgid "Directory Merge" #~ msgstr "Mappeindfletning" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Erik Kjær Pedersen,Martin Schlander" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "erik@binghamton.edu,suse@linuxin.dk" #~ msgid "Enables/disables the toolbar" #~ msgstr "Slå værktøjslinjen til/fra" kdiff3-0.9.97/po/cy/0000755000175100001440000000000011626145654013363 5ustar joachimuserskdiff3-0.9.97/po/cy/CMakeLists.txt0000644000175100001440000000016311626145610016113 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(cy ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/cy/kdiff3.po0000644000175100001440000016402511626145610015071 0ustar joachimusersmsgid "" msgstr "" "Project-Id-Version: ../cy/messages//kdeextragear-1/kdiff3.po\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2004-09-20 15:44+0200\n" "Last-Translator: Thierry Vignaud \n" "Language-Team: cy \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "&Mynd ymlaen" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Iawn" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy #| msgid "File..." msgid "&File" msgstr "Ffeil..." #: kreplacements/kreplacements.cpp:297 #, fuzzy #| msgid "Editor" msgid "&Edit" msgstr "Golygydd" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Cyfeiriadur" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Cyfuno" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Ffenestr" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "Gosodiadau Rhanbarthol" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy #| msgid "Abort" msgid "&About" msgstr "Erthylu" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "Gweithrediad" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy #| msgid "Printing..." msgid "Print..." msgstr "Argraffu..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Selection" msgid "Select All" msgstr "Dewisiad" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format #| msgid "Configure..." msgid "&Configure %1..." msgstr "Ffurfweddu..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy #| msgid "Abort" msgid "About" msgstr "Erthylu" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy #| msgid "Selection" msgid "Select Font" msgstr "Dewisiad" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Editor" msgid "Exit" msgstr "Golygydd" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Cyswllt : " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 #, fuzzy msgid "Comparing file..." msgstr "Yn cadw ffeil..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Enw" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Gweithrediad" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Cyflwr" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "Gwyn" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Ailsyllu" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Parod." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Cyfuno" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "Gwall." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Gwall." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Wedi'i wneud." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Math" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Maint" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy #| msgid "File..." msgid "File" msgstr "Ffeil..." #: directorymergewindow.cpp:2726 msgid "not available" msgstr "dim ar gael" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "Cyfuno" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Gwrthdrawiadau" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Allbwn" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Arddull pen y llinell:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy #| msgid "Conflicts" msgid "Conflict" msgstr "Gwrthdrawiadau" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Allan o Gof." #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy #| msgid "Link: " msgid "Line" msgstr "Cyswllt : " #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "dim ar gael" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "Diwedd" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "Gwall agor ffeil" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Gwall agor ffeil" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "Parod." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Terfynu'r cymhwysiad" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Torri'r adran dewisiedig a'i roi ar y gludfwrdd" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copïo'r adran dewisiedig i'r gludfwrdd" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Gludo cynnwys y gludfwrdd i'r fan wirioneddol" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Galluogi/analluogi'r bar cyflwr" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 #, fuzzy #| msgid "Conflicts" msgid "" "Prev\n" "Conflict" msgstr "Gwrthdrawiadau" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 #, fuzzy #| msgid "Conflicts" msgid "" "Next\n" "Conflict" msgstr "Gwrthdrawiadau" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "dim detholiad" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Gorffen heb gadw" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Yn cadw ffeil..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 #, fuzzy #| msgid "Printing..." msgid "Printing..." msgstr "Argraffu..." #: kdiff3.cpp:956 #, fuzzy #| msgid "Selection" msgid "Selection" msgstr "Dewisiad" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Terfynu..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Dangos/cuddio'r bar offer..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Dangos/cuddio'r bar cyflwr..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Ffeil..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Ffurfweddu..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 #, fuzzy msgid "Search text:" msgstr " &Chwilio" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Llythrennau mawr/bach o bwys" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr " &Chwilio" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Ungôd" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Lladin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 #, fuzzy #| msgid "Configure..." msgid "Configure" msgstr "Ffurfweddu..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Lliw" #: optiondialog.cpp:569 #, fuzzy msgid "Colors Settings" msgstr "Gosodiadau Rhanbarthol" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Lliw blaendir:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Lliw'r cefndir:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Golygydd" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Maint tab:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Ffenestr" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "dim detholiad" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Gosodiadau Rhanbarthol" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "Gosodiadau Rhanbarthol" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Dewis gyda llaw" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "&Directory" msgid "Directory" msgstr "&Cyfeiriadur" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Gosodiadau Rhanbarthol" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "dim detholiad" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "Gweithrediad" #: optiondialog.cpp:1549 #, fuzzy msgid "Integration Settings" msgstr "Gosodiadau Rhanbarthol" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Erthylu" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Gwall agor ffeil" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Yn torri'r dewisiad..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Yn copïo'r dewisiad i'r clipfwrdd..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Yn mewnosod cynnwys y clipfwrdd..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "C&ontinue" #~ msgstr "&Mynd ymlaen" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "KD wrth KGyfieithu" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "kyfieithu@dotmon.com" #~ msgid "Enables/disables the toolbar" #~ msgstr "Galluogi/analluogi'r bar offer" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "Dewis gyda llaw" kdiff3-0.9.97/po/CMakeLists.txt0000644000175100001440000000245211630420147015477 0ustar joachimusersfind_package(Gettext REQUIRED) if (NOT GETTEXT_MSGMERGE_EXECUTABLE) MESSAGE(FATAL_ERROR "Please install msgmerge binary") endif (NOT GETTEXT_MSGMERGE_EXECUTABLE) if (NOT GETTEXT_MSGFMT_EXECUTABLE) MESSAGE(FATAL_ERROR "Please install msgmerge binary") endif (NOT GETTEXT_MSGFMT_EXECUTABLE) add_subdirectory(ar) add_subdirectory(bg) add_subdirectory(br) add_subdirectory(bs) add_subdirectory(ca) add_subdirectory(ca@valencia) add_subdirectory(cs) add_subdirectory(cy) add_subdirectory(da) add_subdirectory(de) add_subdirectory(el) add_subdirectory(en_GB) add_subdirectory(eo) add_subdirectory(es) add_subdirectory(et) add_subdirectory(fr) add_subdirectory(ga) add_subdirectory(gl) add_subdirectory(hi) add_subdirectory(hne) add_subdirectory(hr) add_subdirectory(hu) add_subdirectory(is) add_subdirectory(it) add_subdirectory(ja) add_subdirectory(ka) add_subdirectory(lt) add_subdirectory(mai) add_subdirectory(ml) add_subdirectory(nb) add_subdirectory(nds) add_subdirectory(nl) add_subdirectory(nn) add_subdirectory(pl) add_subdirectory(pt) add_subdirectory(pt_BR) add_subdirectory(ro) add_subdirectory(ru) add_subdirectory(rw) add_subdirectory(sk) add_subdirectory(sv) add_subdirectory(ta) add_subdirectory(tg) add_subdirectory(tr) add_subdirectory(ug) add_subdirectory(uk) add_subdirectory(zh_CN) add_subdirectory(zh_TW) kdiff3-0.9.97/po/br/0000755000175100001440000000000011626145654013353 5ustar joachimuserskdiff3-0.9.97/po/br/CMakeLists.txt0000644000175100001440000000016311626145606016110 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(br ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/br/kdiff3.po0000644000175100001440000017075111626145606015071 0ustar joachimusers# KDE breton translation # Thierry Vignaud , 2004-2005 msgid "" msgstr "" "Project-Id-Version: kdeextragear-1/kdiff3.po\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2004-09-20 15:44+0200\n" "Last-Translator: Thierry Vignaud \n" "Language-Team: br \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "&Kenderc'hel" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Mat eo" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy #| msgid "File..." msgid "&File" msgstr "Restr ..." #: kreplacements/kreplacements.cpp:297 #, fuzzy #| msgid "Editor" msgid "&Edit" msgstr "Aozer" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Renkell" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Dastum" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Prenestr" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "Kefluniadur rann-vro" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy #| msgid "Abort" msgid "&About" msgstr "Paouez" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "Ober" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy #| msgid "Printing..." msgid "Print..." msgstr "Emaon o voulañ ..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Delete A" msgid "Select All" msgstr "Lemel A" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format #| msgid "Configure..." msgid "&Configure %1..." msgstr "Kefluniañ ..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy #| msgid "Abort" msgid "About" msgstr "Paouez" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy #| msgid "Selection" msgid "Select Font" msgstr "Diuzadenn" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Select Another Font" msgid "Select another font" msgstr "Dibab un nodrezh all" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "KDiff3" msgid "KDiff3-Usage" msgstr "KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Editor" msgid "Exit" msgstr "Aozer" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "Eus ar golver" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Fazi diabarzh grevus" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Liamm : " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Ment. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Deiziad ha ment : " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Sac'het eo digeiñ ar restr %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Fazi en ur less eus %1." #: directorymergewindow.cpp:358 msgid "Name" msgstr "Anv" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Ober" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stad" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "Gwenn" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Sac'het eo digeriñ ar renkelloù :" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Fazi en ur zigeriñ ar renkell" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Emaon o tielfennañ ar renkelloù ..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Emaon o lenn ar renkell A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Emaon o lenn ar renkell B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Emaon o lenn ar renkell C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Prest." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Niver a is-renkelloù :" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "O treterez " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Traoù d'ober." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Eilañ A da B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Eilañ B da A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Lemel A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Lemel B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Lemel A & B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Dastum" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Fazi gant ar meziant" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Degouezhet ez eus ar fazi en ur eilañ.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "Fazi." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Fazi en ur dastum" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Fazi." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Graet." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "N'eo ket enrollet." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Tremen an dra" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Tremenet." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Ober a ran ..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Degouezhet ez eus ar fazi. Gwaskit OK da welet an titouroù munut.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "dilemel( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Fazi : sac'het eo lemel." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "eilañ( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "adenvel( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Fazi en ur c'hrouiñ ur renkell." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dehaez." #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Renkell" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Seurt" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Ment" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Kemm diwezhañ" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Liamm dehaezadur" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy #| msgid "File..." msgid "File" msgstr "Restr ..." #: directorymergewindow.cpp:2726 msgid "not available" msgstr "n'eo ket da gaout" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dehaez. : " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "Dastum" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Diskouez restroù a zo e A hepken" #: directorymergewindow.cpp:2979 #, fuzzy #| msgid "Show Files only in A" msgid "" "Files\n" "only in A" msgstr "Diskouez restroù a zo e A hepken" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Diskouez restroù a zo e B hepken" #: directorymergewindow.cpp:2980 #, fuzzy #| msgid "Show Files only in B" msgid "" "Files\n" "only in B" msgstr "Diskouez restroù a zo e B hepken" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Diskouez restroù a zo e C hepken" #: directorymergewindow.cpp:2981 #, fuzzy #| msgid "Show Files only in C" msgid "" "Files\n" "only in C" msgstr "Diskouez restroù a zo e C hepken" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ober netra" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "G" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Lemel A && B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy #| msgid "KDiff3" msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "Eus ar golver" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy #| msgid "Merge Error" msgid "Sergey Zorin" msgstr "Fazi en ur dastum" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "Ober netra" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "restr2 da zigeriñ" #: main.cpp:213 msgid "file3 to open" msgstr "restr3 da zigeriñ" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Fazi en ur skrivañ." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Ezkas" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Kemmet]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Emaon o lenn ar restr : %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Emaon o skrivañ ar restr : %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Memor ebet" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Oc'h oberiañ ar renkell : %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Emaon o tilemel ar renkell : %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Emaon o tilemel ar restr : %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Emaon oc'h adenvel ar restr : %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Emaon oc'h eilañ ar restr : %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Emaon o lenn ar renkell :" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy #| msgid "Link: " msgid "Line" msgstr "Liamm : " #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "n'eo ket da gaout" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "Dibenn" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Fazi er dibarzh kefluniañ :" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Fazi en ur enrollañ." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fazi en ur zigeriñ ar restr" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "Prest." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Enrollañ a ra an teul red e ..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Kuitaat a ra ar meziant" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Eilañ a ra an dachenn dibabet er golver" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Kuzhat/Diskouez ar varenn stad" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Kefluniañ KDiff3 ..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 #, fuzzy #| msgid "Auto Select" msgid "" "Auto\n" "Next" msgstr "Dibab ent emgefreek" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Diskouez niverennoù linenn" #: kdiff3.cpp:560 #, fuzzy #| msgid "Show Line Numbers" msgid "" "Line\n" "Numbers" msgstr "Diskouez niverennoù linenn" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Diskouez ar prenestr A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Diskouez ar prenestr B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Diskouez ar prenestr C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fokuz ouzh ar brenestr a-heul" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fokuz ouzh ar brenestr diaraok" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Enrollañ && kuitaat" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Kuitaat hep enrollañ" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Emaon oc'h enrollañ ar restr ..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Oc'h enrollañ ar restr gant un anv restr nevez ..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Echu eo moulañ." #: kdiff3.cpp:815 #, fuzzy #| msgid "Printing..." msgid "Printing..." msgstr "Emaon o voulañ ..." #: kdiff3.cpp:956 #, fuzzy #| msgid "Selection" msgid "Selection" msgstr "Diuzadenn" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Echu eo moulañ." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Nullet eo ar voulañ." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Emaon o kuitaat ..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Emaon o kuzhat/diskouez ar varenn ostilh ..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Diskouez/Kuzhat ar varenn stad ..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Restr ..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Renkell ..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Kefluniañ ..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Skrid klasket :" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Evezhiek ouzh ar c'hef" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Klask A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Klask B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Klask C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Klask" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 #, fuzzy #| msgid "Configure..." msgid "Configure" msgstr "Kefluniañ ..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Liv" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Kefluniadur al livioù" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Liv war-c'horre :" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Liv an drekleur :" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Liv A :" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Liv B :" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Liv C :" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Aozer" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Emzalc'h an aozer" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Ment ar bevennig :" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Emgeflosk" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Prenestr" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Dibab ent emgefreek" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Kefluniadur rann-vro" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "Kefluniadur rann-vro" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 #, fuzzy #| msgid "Show Window A" msgid "Show info dialogs" msgstr "Diskouez ar prenestr A" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Choazh diwar zorn" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "Niver a is-renkelloù :" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "&Directory" msgid "Directory" msgstr "&Renkell" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Sil(où) restr :" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Implijit .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Heuliañ liammoù ar retroù" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Heuliañ liammoù ar renkelloù" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Kefluniadur rann-vro" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Dibab ent emgefreek" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Dibab un nodrezh all" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "Emaon o kargañ A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Emaon o kargañ B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "Emaon o kargañ C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Paouez" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Emaon o tigeriñ ar restroù ..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fazi en ur zigeriñ ar restr" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "O troc'hañ an dibab ..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Oc'h eilañ an dibab d'ar golver ..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Enrollañ && Kenderc'hel" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Echu eo ar glask." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Kefluniañ KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "C&ontinue" #~ msgstr "&Kenderc'hel" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Thierry Vignaud, Jañ-Mai Drapier" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "tvignaud@mandriva.com, jdrapier@club-internet.fr" #~ msgid "Enables/disables the toolbar" #~ msgstr "Diskouez/Kuzhat ar varrenn &ostilhoù" #~ msgid "Swap" #~ msgstr "Disloañ" #~ msgid "" #~ "\n" #~ "\n" #~ "File not saved." #~ msgstr "" #~ "\n" #~ "\n" #~ "N'eo ket enrollet ar restr." #~ msgid "Delete A and B" #~ msgstr "Lemel A ha B" kdiff3-0.9.97/po/bs/0000755000175100001440000000000011626145654013354 5ustar joachimuserskdiff3-0.9.97/po/bs/kdiff3plugin.po0000644000175100001440000000433211626145610016273 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin.po\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-13 22:35+0200\n" "Last-Translator: Samir Ribic \n" "Language-Team: bs \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Poredi sa %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Spoji sa %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Snimi '%1' za kasnije" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "trostrano spajanje s osnovom" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Poredi sa..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Očisti listu" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Poredi" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Trostrano poređenje" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/bs/CMakeLists.txt0000644000175100001440000000016311626145610016104 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(bs ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/bs/kdiff3fileitemactionplugin.po0000644000175100001440000000441511626145610021212 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin.po\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-13 22:35+0200\n" "Last-Translator: Samir Ribic \n" "Language-Team: bs \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Poredi sa %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Spoji sa %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Snimi '%1' za kasnije" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "" #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/bs/kdiff3.po0000644000175100001440000023662111626145610015064 0ustar joachimusersmsgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-01-05 10:55+0100\n" "Last-Translator: Samir Ribić \n" "Language-Team: Bosnian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.9.1\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" #: kreplacements/kreplacements.h:105 #, fuzzy msgid "Continue" msgstr "&Nastavi" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy msgid "&File" msgstr "Datoteka..." #: kreplacements/kreplacements.cpp:297 #, fuzzy msgid "&Edit" msgstr "Editor" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Direktorij" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Kretanje" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "D&iff prikaz" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Stopi" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "P&rozor" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "Postavke boja" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy msgid "&About" msgstr "Prekini" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operacija stapanja trenutne stavke" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operacija sinh. trenutne stavke" #: kreplacements/kreplacements.cpp:597 #, fuzzy msgid "Open" msgstr "Operacija" #: kreplacements/kreplacements.cpp:606 #, fuzzy msgid "Save" msgstr "Riješen" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "Štampam..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy msgid "Select All" msgstr "Obriši A" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format msgid "&Configure %1..." msgstr "Podesi..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy msgid "About" msgstr "Prekini" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy msgid "Select Font" msgstr "Odabir" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Izabrali ste font promjenjive širine.\n" "\n" "Pošto što ovaj program ne rukuje ispravno fontovima promenjive\n" "širine, možete iskusiti probleme u toku uređivanja.\n" "\n" "Želite li da nastavite ili ćete odabrati drugi font?" #: kreplacements/kreplacements.cpp:792 #, fuzzy msgid "Incompatible font." msgstr "Nekompatibilan font" #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Continue at my own risk" msgstr "Nastavite na sopstveni rizik" #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Select another font" msgstr "Odaberite drugi font" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "KDiff3-Usage" msgstr "KDiff3" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Ignore" msgstr "Ignoriši veličinu slova" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Exit" msgstr "Editor" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Upisivanje podataka iz clipboarda u privremenu datoteku nije uspjelo." #: diff.cpp:255 msgid "From Clipboard" msgstr "Iz clipboarda" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Predobrada vjerovatno nije uspjela. Provjerite ovu naredbu:\n" "\n" " %1\n" "\n" "Naredba predobrade će sada biti isključena." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Predobrada usklađivanja linija vjerovatno nije uspjela. Provjerite ovu " "naredbu:\n" "\n" " %1\n" "\n" "Predobrada usklađivanja linija će sada biti isključena." #: diff.cpp:1776 diff.cpp:1790 #, fuzzy msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Greška, gubitak podataka:\n" "Ako je možete obnoviti, kontaktirajte autora.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Ozbiljna unutrašnja greška" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mješavina veza i normalnih datoteka." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Veza: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Veličina." #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Datum i veličina: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Stvaranje privremene kopije datoteke %1 nije uspjelo." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Otvaranje datoteke %1 nije uspjelo." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Upoređujem datoteku..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Greška pri čitanju iz %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Naziv" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operacija" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Neriješen" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Riješen" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Ne-bijelo" #: directorymergewindow.cpp:359 msgid "White" msgstr "Bijelo" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Trenutno stapate direktorije. Da li ste sigurni da želite prekinuti stapanje " "i ponovo skenirati direktorij?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Ponovo skeniraj" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Nastavi stapanje" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Otvaranje direktorija nije uspjelo:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Direktorij A \"%1\" ne postoji ili nije direktorij.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Direktorij B \"%1\" ne postoji ili nije direktorij.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Direktorij C \"%1\" ne postoji ili nije direktorij.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Greška pri otvaranju direktorij" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Odredišni direktorij ne smije biti isti kao A ili B kada se stapaju tri " "direktorija.\n" "Provjerite ponovo prije nego nastavite." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Upozorenje o parametrima" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Skeniram direktorije..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Čitam direktorij A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Čitam direktorij B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Čitam direktorij C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Neki poddirektoriji nisu bili čitljivi u" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Provjerite dozvole poddirektorija." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Spreman." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status poređenja direktorija" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Broj poddirektorija:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Broj jednakih datoteka:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Broj različitih datoteka:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Broj ručnih stapanja:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Ovo utiče na sve operacije stapanja." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Mijenjam sve operacije stapanja" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Obrađujem " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Uraditi." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Kopiraj A u B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Kopiraj B u A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Obriši A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Obriši B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Obriši A i B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Stopi u A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Stopi u B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Stopi A i B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Obriši (ako postoji)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Stopi" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Stopi (ručno)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Greška: Sukobljeni tipovi datoteka" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Greška: Datumi su jednaki ali datoteke nisu." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Ova operacija trenutno nije moguća." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operacija nije moguća" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Ovo nikada ne bi trebalo da se desi: \n" "\n" "Ako znate kako ovo da obnovite, molimo kontaktirajte autora programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programska greška" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Došlo je do greške u toku kopiranja.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy msgid "Error" msgstr "Greška." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Greška stapanja" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Greška." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Gotovo." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Nije snimljeno." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Nepoznata operacija stapanja. (Ovo nikad ne smije da se desi!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Nepoznata operacija stapanja." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Stapanje će upravo početi.\n" "\n" "Izaberite \"Uradi\" ako ste pročitali instrukcije i znate šta radite.\n" "Izaberite \"Simuliraj\" ako želite da vidite šta bi se desilo.\n" "\n" "Znajte da ovaj program još uvijek ima beta status i nema NIKAKVIH GARANCIJA " "uopšte! Napravite rezervu svojih najvažnijih podataka!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Počinjem stapanje" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Uradi" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simuliraj" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Istaknuta stavka različitog je tipa u različitim direktorijima. Odaberite " "šta činiti." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Datumi izmjene datoteke su jednaki ali datoteke nisu. Odaberite šta činiti." #: directorymergewindow.cpp:2123 #, fuzzy msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Istaknuta stavka različitog je tipa u različitim direktorijima. Odaberite " "šta činiti." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Ova operacija trenutno nije moguća zato što je stapanje direktorija u toku." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Došlo je do greške u posljednjem koraku.\n" "Želite li da nastavite sa stavkom koja je izazvala grešku ili želite da je " "preskočite?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Nastavi stapanje poslije greške" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Nastavi sa posljednjom stavkom" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Preskoči stavku" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Preskočeno." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "U toku..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operacija stapanja je završena." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Stapanje je završeno" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulirano stapanje je završeno: Provjerite da li se slažete sa predloženim " "operacijama." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "Došlo je do greške. Pritisnite \"U redu\" da biste vidjeli detaljne " "informacije.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Greška: U toku brisanja %1: Stvaranje rezerve nije uspjelo." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "obriši direktorij rekurzivno( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "obriši( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Greška: Operacija brisanja direktorija nije uspjela u toku pokušaja da se " "direktorij pročita." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Greška: Operacija rmdir( %1 ) nije uspjela." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Greška: Operacija brisanja nije uspjela." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "ručno stapanje( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Napomena: Poslije ručnog stapanja korisnik bi trebalo da nastavi pomoću " "F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Greška: Kopiranje( %1 -> %2 ) nije uspjelo. Brisanje postojećeg odredišta " "nije uspjelo." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "kopiranje veze( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Greška: Kopiranje veze nije uspjelo: Udaljene veze još uvijek nisu podržane." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Greška: Kopiranje veze nije uspjelo." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopiraj( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Greška u toku preimenovanja( %1 -> %2 ): Ne mogu da obrišem postojeće " "odredište." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "preimenuj( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Greška: Preimenovanje nije uspjelo." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Greška u toku pravljenja direktorija %1. Ne mogu da obrišem postojeću " "datoteku." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "napravi direktorij( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Greška u toku stvaranja direktorija." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Odr." #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir." #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tip" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Vel." #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atr." #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Posljednja izmjena" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Veza-odredište" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy msgid "File" msgstr "Datoteka..." #: directorymergewindow.cpp:2726 msgid "not available" msgstr "nije dostupno" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (odr.): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (baza): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (odr.): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (odr.): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Odr.: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Snimi stanje stapanja direktorija kao..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Pokreni/nastavi stapanje direktorija" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Pokreni operaciju za trenutnu stavku" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Uporedi odabranu datoteku" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Stopi trenutnu datoteku" #: directorymergewindow.cpp:2962 #, fuzzy msgid "" "Merge\n" "File" msgstr "Stopi" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Sažmi sve poddirektorije" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Raširi sve poddirektorije" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Izaberi A za sve stavke" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Izaberi B za sve stavke" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Izaberi C za sve stavke" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Automatski izaberi operaciju za sve stavke" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Nema operacije za sve stavke" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Prikaži identične datoteke" #: directorymergewindow.cpp:2977 #, fuzzy msgid "" "Identical\n" "Files" msgstr "Prikaži identične datoteke" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Prikaži različite datoteke" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Prikaži datoteke samo u A" #: directorymergewindow.cpp:2979 #, fuzzy msgid "" "Files\n" "only in A" msgstr "Prikaži datoteke samo u A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Prikaži datoteke samo u B" #: directorymergewindow.cpp:2980 #, fuzzy msgid "" "Files\n" "only in B" msgstr "Prikaži datoteke samo u B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Prikaži datoteke samo u C" #: directorymergewindow.cpp:2981 #, fuzzy msgid "" "Files\n" "only in C" msgstr "Prikaži datoteke samo u C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Uporedi eksplicitno odabrane datoteke" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Stopi eksplicitno odabrane datoteke" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ne čini ništa" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Obriši A i B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Stopi u A i B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorisano. (Korisnički definisano)." #: main.cpp:162 #, fuzzy msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Alat za upoređivanje i stapanje datoteka i direktorija" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy msgid "Clipboard-patch" msgstr "Iz clipboarda" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy msgid "Directory Equality-Coloring patch" msgstr "Status poređenja direktorija" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy msgid "Sergey Zorin" msgstr "Greška stapanja" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy msgid "KDE4 porting" msgstr "Ne čini ništa" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ Mnogo hvala onima koji su prijavljivali greške i doprinijeli svojim " "idejama!" #: main.cpp:196 msgid "Merge the input." msgstr "Stopi ulaz." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Eksplicitna bazna datoteka. Za kompatibilnost sa određenim alatima." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Izlazna datoteka. Implicira -m. Npr.: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Izlazna datoteka, ponovo. (Za kompatibilnost sa određenim alatima.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "Bez GUI-ja ako su svi sukobi automatski rješivi. (Zahtjeva -o file)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Ne rješavaj sukobe automatski. (Za kompatibilnost...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Vidljiva zamjena naziva za ulaznu datoteku 1 (bazna)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Vidljiva zamjena naziva za ulaznu datoteku 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Vidljiva zamjena naziva za ulaznu datoteku 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternativa vidljivoj zamijeni naziva. Dobavite ovo jednom za svaki ulaz." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Prespoji postavku konfiguracije. Koristi jednom za svaku postavku. Npr.: --" "cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Prikaži listu postavki konfiguracije i trenutnih vrijednosti." #: main.cpp:208 msgid "Use a different config file." msgstr "Koristi drugačiju konfiguracionu datoteku." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "datoteka 1 za otvaranje (bazna, ako nije naveden preko --base)" #: main.cpp:212 msgid "file2 to open" msgstr "datoteka 2 za otvaranje" #: main.cpp:213 msgid "file3 to open" msgstr "datoteka 3 za otvaranje" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Broj preostalih neriješenih sukoba: %1 (od kojih su %2 blanko znaci)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Izlaz je izmijenjen.\n" "Ako nastavite, vaše izmjene će biti izgubljene." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Sve ulazne datoteke su binarno jednake." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Sve ulazne datoteke sadrže isti tekst." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Datoteke %1 i %2 su binarno jednake.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Datoteke A i B imaju jednak tekst.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Ukupan broj sukoba: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Broj automatski riješenih sukoba: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Broj neriješenih sukoba: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Sukobi" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Još uvijek nisu riješeni svi sukobi.\n" "Datoteka nije snimljena.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Preostali sukobi" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Stvaranje rezerve nije uspjelo. Datoteka nije snimljena." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Greška u snimanju datoteke" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Greška prilikom pisanja." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Izlaz" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Izmijenjen]" #: mergeresultwindow.cpp:3141 #, fuzzy msgid "Encoding for saving" msgstr "Kodiranje datoteke za A:" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Stil završetka linije:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy msgid "Conflict" msgstr "Sukobi" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Nisam mogao pronaći datoteke za poređenje." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Dio" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "U toku pokušaja da se napravi rezerva, brisanje starije rezerve nije " "uspjelo.\n" "Naziv datoteke: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "U toku pokušaja da se napravi rezerva, preimenovanje nije uspjelo.\n" "Nazivi datoteka: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Dobavljam status datoteke: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Čitam datoteku: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Pišem datoteku: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Nema memorije" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Pravim direktorij: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Uklanjam direktorij: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Uklanjam datoteku: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Stvaram simboličku vezu: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Mijenjam naziv datoteke: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Kopiram datoteku: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Greška tokom operacije kopiranja datoteka: Otvaranje datoteke za čitanje " "nije uspjelo. Naziv datoteke: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Greška tokom operacije kopiranja datoteka: Otvaranje datoteke za pisanje " "nije uspjelo. Naziv datoteke: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Greška tokom operacije kopiranja datoteka: Čitanje nije uspjelo. Naziv " "datoteke: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Greška tokom operacije kopiranja datoteka: Pisanje nije uspjelo. Naziv " "datoteke: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Čitam direktorij: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listam direktorij: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy msgid "Line" msgstr "Latin1" #: difftextwindow.cpp:405 #, fuzzy msgid "Line not available" msgstr "nije dostupno" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 #, fuzzy msgid "Encoding:" msgstr "Kodiranje datoteke za A:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Gornja linija" #: difftextwindow.cpp:1769 msgid "End" msgstr "Kraj" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Trenutna konfiguracija:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Greška konfiguracione opcije:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Opcija --auto je upotrijebljena, ali nije navedena izlazna datoteka." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Opcija --auto se ignoriše za poređenje direktorija." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Snimanje nije uspjelo." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Otvaranje ovih datoteka nije uspjelo:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Greška pri otvaranju datoteke" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Otvara dokumente za poređenje..." #: kdiff3.cpp:479 #, fuzzy msgid "Reload" msgstr "Spreman." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Snima rezultat stapanja. Svi sukobi moraju biti riješeni!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Snima trenutne dokumente kao..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Štampaj razlike" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Izlazi iz aplikacije" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Isjeca odabrani odjeljak i stavlja ga u clipboard" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopira odabrani odjeljak u clipboard" #: kdiff3.cpp:496 #, fuzzy msgid "Pastes the clipboard contents to current position" msgstr "Prenosi sadržaje clipboarda na stvarnu poziciju" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Odaberi sve u trenutnom prozoru" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Potraži znakovni niz" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Ponovo potraži znakovni niz" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Uključuje/isključuje statusnu traku" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Podesi KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Idi na trenutnu deltu" #: kdiff3.cpp:532 #, fuzzy msgid "" "Current\n" "Delta" msgstr "Idi na trenutnu deltu" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Idi na prvu deltu" #: kdiff3.cpp:534 #, fuzzy msgid "" "First\n" "Delta" msgstr "Idi na prvu deltu" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Idi na posljednju deltu" #: kdiff3.cpp:536 #, fuzzy msgid "" "Last\n" "Delta" msgstr "Idi na posljednju deltu" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Preskače razlike u blanko znacima kada je \"Prikaži blanko znake\" " "isključeno.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Ne preskače razlike u blanko znacima čak i kada je \"Prikaži blanko znake\" " "isključeno.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Idi na prethodnu deltu" #: kdiff3.cpp:540 #, fuzzy msgid "" "Prev\n" "Delta" msgstr "Idi na prethodnu deltu" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Idi na slijedeću deltu" #: kdiff3.cpp:542 #, fuzzy msgid "" "Next\n" "Delta" msgstr "Idi na slijedeću deltu" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Idi na prethodni sukob" #: kdiff3.cpp:544 #, fuzzy msgid "" "Prev\n" "Conflict" msgstr "Sukobi" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Idi na slijedeći sukob" #: kdiff3.cpp:546 #, fuzzy msgid "" "Next\n" "Conflict" msgstr "Idi na slijedeći sukob" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Idi na prethodni neriješeni sukob" #: kdiff3.cpp:548 #, fuzzy msgid "" "Prev\n" "Unsolved" msgstr "Neriješen" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Idi na slijedeći neriješeni sukob" #: kdiff3.cpp:550 #, fuzzy msgid "" "Next\n" "Unsolved" msgstr "Neriješen" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Odaberite liniju/linije iz A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Odaberite liniju/linije iz B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Odaberite liniju/linije iz C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Automatski idi na slijedeći neriješeni sukob nakon izbora izvora" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Prikaži znakove razmaka i tabulatora za razlike" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Prikaži blanko znak" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Prikaži brojeve linija" #: kdiff3.cpp:560 #, fuzzy msgid "" "Line\n" "Numbers" msgstr "Prikaži brojeve linija" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Svuda izaberi A" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Svuda izaberi B" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Svuda izaberi C" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Izaberi A za sve neriješene sukobe" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Izaberi B za sve neriješene sukobe" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Izaberi C za sve neriješene sukobe" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Izaberi A za sve neriješene sukobe blanko znakova" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Izaberi B za sve neriješene sukobe blanko znakova" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Izaberi C za sve neriješene sukobe blanko znakova" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Automatski riješi jednostavne sukobe" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Postavi delte na sukobe" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Pokreni auto-stapanje regularnih izraza" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Automatski riješi sukobe historije" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Razdvoji razlike pri odabiru" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Sjedini odabrane razlike" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Prikaži prozor A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Prikaži prozor B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Prikaži prozor C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fokusiraj slijedeći prozor" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normalan pregled" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Pregled A prema B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Pregled A prema C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Pregled B prema C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Prozori razlika omota riječi" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Dodaj ručno poravnanje razlika" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Izbriši sva ručna poravnanja razlika" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fokusiraj prethodni prozor" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Prebaci orijentaciju razdvajanja" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Podijeljeni prikaz ekrana za dir. i tekst" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Prebaci između dir. i tekst. prikaza" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Rezultat stapanja nije snimljen." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Snimi i izađi" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Izađi bez snimanja" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Snimanje rezultata stapanja nije uspjelo." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Trenutno stapate direktorije. Da li ste sigurni da želite prekinuti?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Snimam datoteku..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Snimam datoteku pod novim nazivom..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Štampanje završeno." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Štampam..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Odabir" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Štampanje završeno." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Štampanje prekinuto." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Izlazim..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Prebacujem traku sa alatom..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Prebaci statusnu traku..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (baza):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Datoteka..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Dir..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (opcionalno):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Razmijeni/Kopiraj nazive ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Razmijeni %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Kopiraj %1->Izlaz" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Razmijeni %1<->Izlaz" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Izlaz (opcionalno):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Podesi..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Tekst za pretragu:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Razlikuje veličinu slova" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Pretraži A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Pretraži B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Pretraži C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Izlaz pretrage" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Traži" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Ispitivač regularnih izraza" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Regularni izraz auto-stapanja:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Primjer linije auto-stapanja:" #: smalldialogs.cpp:424 #, fuzzy msgid "To test auto merge, copy a line as used in your files." msgstr "" "Za test auto-stapanja kopirajte liniju kao što je to korišteno u Vašim " "datotekama." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Rezultat usklađivanja:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Regularni izraz početka historije:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Primjer početne linije historije (sa glavnim komentarom):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopirajte početnu liniju historije kao što je to korišteno u Vašim " "datotekama,\n" "uključujući glavni komentar." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Regularni izraz početka zapisa historije:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Poredak tipki za sortiranje historije:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Primjer početne linije zapisa historije (bez glavnog komentara):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopirajte početnu liniju zapisa historije kao što je to korišteno u Vašim " "datotekama,\n" "ali izostavite glavni komentar." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Rezultat tipki za sortiranje:" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Usklađivanje uspjelo." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Usklađivanje nije uspjelo." #: smalldialogs.cpp:574 #, fuzzy msgid "Opening and closing parentheses do not match in regular expression." msgstr "Otvorene i zatvorene zagrade se ne podudaraju u regularnom izrazu." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8-bitni" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Izmijenite ovo ako se znakovi koji nisu ASCII ne prikazuju ispravno." #: optiondialog.cpp:465 #, fuzzy msgid "Configure" msgstr "Podesi..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Font editora i raz. izlaza" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kurzivni font za delte" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Bira kurzivnu verziju fonta za razlike.\n" "Ako font ne podržava kurzivne znakove, onda ovo ne radi ništa." #: optiondialog.cpp:568 msgid "Color" msgstr "Boja" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Postavke boja" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Prikazi editora i razlika:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Boja iscrtavanja:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Boja pozadine:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Boja pozadine razlika:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Boja A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Boja B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Boja C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Boja sukoba:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Pozadinska boja trenutnog opsega:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Pozadinska boja trenutnog opsega razlika:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Boja za ručno poravnate opsege razlika:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Prikaz poređenja direktorija:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Boja najnovije datoteke:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Izmjena ove boje će biti djelotvorna samo kod pokretanja slijedeće usporedbe " "direktorija." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Boja najstarije datoteke:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Boja srednjovječne datoteke:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Boja za nestale datoteke:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Ponašanje editora" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tabulator ubacuje razmake" #: optiondialog.cpp:735 #, fuzzy msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Uključeno: Pritiskom na tabulator generiše se odgovarajući broj razmaka.\n" "Isključeno: Znak tabulatora će biti ubačen." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Veličina tabulatora:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automatsko uvlačenje" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Uključeno: Uvlačenje prethodne linije koristi se za novu liniju.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Automatsko kopiranje izbora" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Uključeno: Svaki izbor se odmah upisuje u clipboard.\n" "Isključeno: Morate eksplicitno kopirati, nrp. preko Ctrl+C." #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "P&rozor" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "Automatsko kopiranje izbora" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Postavlja završetke linija kada se izmijenjena datoteka snima.\n" "DOS/Windows: CR+LF; Unix: LF; sa CR=0D, LF=0A" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "KDiff3" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Postavke za razlike i stapanje" #: optiondialog.cpp:809 #, fuzzy msgid "Treat as white space." msgstr "Tretiraj C/C++ komentare kao blanko znake." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignoriši brojeve" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignoriši brojevne znakove tokom faze usklađivanja linija. (Slično " "ignorisanju blanko znakova.)\n" "Može pomoći pri uspoređivanju datoteka sa numeričkim podacima." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignoriši C/C++ komentare" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Tretiraj C/C++ komentare kao blanko znake." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignoriši veličinu slova" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Tretira razliku u veličini slova kao promjene blanko znakova. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Predobradna naredba:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Korisnički definisana predobrada. (Pogledajte dokumentaciju radi detalja.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Predobradna naredba za usklađivanje linija:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Ova predobrada se koristi samo tokom usklađivanja linija.\n" "(Pogledajte dokumentaciju radi detalja.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Potrudi se (sporije)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Uključuje opciju --minimal za spoljašnje razlikovanje.\n" "Analiza velikih datoteka će biti mnogo sporija." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "Postavke za razlike i stapanje" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Zastoj automatskog napredovanja (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "U režimu automatskog napredovanja rezultat trenutnog izbora prikazuje se \n" "za navedeno vrijeme, prije skoka na slijedeći sukob. Opseg: 0-2000 ms" #: optiondialog.cpp:895 #, fuzzy msgid "Show info dialogs" msgstr "Prikaži prozor A" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Podrazumjevano stapanje blanko znakova dvije datoteke:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Ručni izbor" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Dozvoljava algoritmu stapanja da automatski odabere ulaz za izmjene samo u " "blanko znakovima." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Podrazumjevano stapanje blanko znakova tri datoteke:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Regularni izraz automatskog stapanja" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regularni izraz za linije gdje bi KDiff3 automatski trebao odabrati jedan " "izvor.\n" "Kada linija sa sukobom odgovara regularnom izrazu onda\n" "- ako je dostupan - C, u protivnom će B biti izabran." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Pokreni auto-stapanje regularnih izraza na početku stapanja" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Pokreni stapanje za regularne izraze auto-stapanja\n" "odmah kada stapanje počne.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Stapanje historije kontrola verzije" #: optiondialog.cpp:966 #, fuzzy msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regularni izraz za početak zapisa historije kontrola verzije.\n" "Obično ova linija sadrži ključnu riječ \"$Log$\".\n" "Podrazumjevana vrijednost: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Zapis historije kontrola verzije sastoji se od nekoliko linija.\n" "Navedite regularni izraz da bi ustanovili prvu liniju (bez glavnog " "komentara).\n" "Koristite okrugle zagrade da bi grupisali tipke koje želite koristiti za " "sortiranje.\n" "U slučaju da ostane prazno, tada KDiff3 smatra da prazne linije razdvajaju " "zapise historije.\n" "Pogledati dokumentaciju radi detalja." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Sortiranje stapanja historije" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Sortiraj historiju kontrola verzije pomoću tipke." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Poredak tipki za sortiranje početka zapisa historije:" #: optiondialog.cpp:1008 #, fuzzy msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Svaka okrugla zagrada korištena u regularnom izrazu za početni zapis " "historije\n" "grupiše tipku koja može biti korištena za sortiranje.\n" "Navedite listu tipki (koje su numerisane po slučajnom poretku\n" "počevši sa 1) koristeći ',' kao razdjelnik (npr. \"4,5,6,1,2,3,7\").\n" "U slučaju da ostane prazno, tada se neće izvršiti sortiranje.\n" "Pogledati dokumentaciju radi detalja." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Stopi historiju kontrola verzije na početku stapanja" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "Pokreni auto-stapanje historije kontrola verzije na početku stapanja." #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "Broj poddirektorija:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Testirajte svoje regularne izraze" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Nevažna naredba stapanja:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "U slučaju da je naznačeno ova skripta se pokreće nakon auto-stapanja\n" "kada nisu ustanovljene nikakve druge važne promjene.\n" "Pozvana parametrima: filename1 filename2 filename3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy msgid "Directory" msgstr "&Direktorij" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekurzivni direktoriji" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Bilo da se analiziraju poddirektoriji ili ne." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Uzorak/uzorci datoteka:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Uzorak/uzorci datoteka koje treba analizirati.\n" "Zamjenski znaci: '*' i '?'\n" "Više uzoraka može biti navedeno upotrebom razdjelnika: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Anti-uzorak/uzorci datoteka:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Uzorak/uzorci datoteka koje treba isključiti iz analize.\n" "Zamjenski znaci: '*' i '?'\n" "Više uzoraka može biti navedeno upotrebom razdjelnika: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Anti-uzorak/uzorci direktorija:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Uzorak/uzorci direktorija koje treba isključiti iz analize.\n" "Zamjenski znaci: '*' i '?'\n" "Više uzoraka može biti navedeno upotrebom razdjelnika: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Koristi datoteku .cvsignore" #: optiondialog.cpp:1115 #, fuzzy msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Proširuje anti-uzorak na sve što bi CVS ignorisao.\n" "Preko lokalnih datoteka \".cvsignore\" ovo može biti posebno po direktoriju." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Pronađi skrivene datoteke i direktorije" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Nalazi datoteke i direktorije sa atributom skrivenih." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Nalazi datoteke i direktorije koji počinju sa '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Prati veze datoteka" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Uključeno: Uporedi datoteku na koju pokazuje veza.\n" "Isključeno: Uporedi veze." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Prati veze direktorija" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Uključeno: Uporedi direktorij na koji pokazuje veza.\n" "Isključeno: Uporedi veze." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Poređenje datoteka po nazivu koje razlikuje veličinu slova" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Poređenje direktorija će porediti datoteke ili direktorije kada se " "podudaraju po nazivu.\n" "Postavi ovu opciju ako se veličine slova za nazive moraju podudarati. " "(Podrazumjevano za Windows je isključeno, u protivnom uključeno.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Režim poređenja datoteka" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binarno poređenje" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binarno poređenje za svaku datoteku. (Podrazumjevano)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Puna analiza" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Obavi punu analizu i prikaži statističke podatke u dodatnim kolonama.\n" "(Sporije nego binarno poređenje, mnogo sporije za binarne datoteke.)" #: optiondialog.cpp:1178 #, fuzzy msgid "Trust the size and modification date (unsafe)" msgstr "Čuvaj datum izmjene (nesigurno)" #: optiondialog.cpp:1179 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Pretpostavi da su datoteke jednake ako su datum izmjene i dužina datoteke " "jednaki.\n" "Korisno za velike direktorije ili spore mreže." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Pretpostavi da su datoteke jednake ako su datum izmjene i dužina datoteke " "jednaki.\n" "Korisno za velike direktorije ili spore mreže." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Čuvaj veličinu (nesigurno)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Pretpostavi da su datoteke jednake ako su njihove dužine jednake.\n" "Korisno za velike direktorije ili spore mreže kada je datum izmijenjen u " "toku preuzimanja." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sinhronizuj direktorije" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Nudi da skladišti datoteke u oba direktorija tako\n" "da su oba direktorija nakon toga ista.\n" "Radi samo kada se porede dva direktorija bez navođenja odredišta." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Razlike blanko znakova smatraju se jednakim" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Ako se datoteke razlikuju samo po blanko znacima, smatraj ih jednakim.\n" "Ovo je aktivno samo kada je odabrana puna analiza." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Kopiraj noviji umjesto stapanja (nesigurno)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Ne gledaj unutra, samo uzmi noviju datoteku.\n" "(Koristite ovo samo ako znate šta radite!)\n" "Djelotvorno samo kada se porede dva direktorija." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Napravi rezerve datoteka (.orig)" #: optiondialog.cpp:1228 #, fuzzy msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Kada se datoteka snima preko stare datoteke, stara datoteka\n" "će biti preimenovana sa nastavkom '.orig' umjesto da bude obrisana." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regionalne postavke" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Jezik (zahtijeva se ponovno pokretanje)" #: optiondialog.cpp:1445 #, fuzzy msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Izaberite jezik za ispise u GUI-u ili \"Auto\".\n" "Da bi se izmjena jezika desila, zatvorite i ponovo pokrenite KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Koristi isto kodiranje za sve:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Uključivanjem ovog možete promijeniti sva kodiranja promjenom samo prvog.\n" "Isključite ovo ako su potrebne različite zasebne postavke." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Napomna: Lokalno kodiranje je " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Kodiranje datoteke za A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Kodiranje datoteke za B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Kodiranje datoteke za C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Kodiranje datoteke za stapanje izlaza i snimanje:" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "Automatsko kopiranje izbora" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Kodiranje datoteke za preprocesorke datoteke:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Jezik s desna na lijevo" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Neki jezici se čitaju s desna na lijevo.\n" "Ova postavka će prilagoditi tome prikazivač i editor." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Uklapanje" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Postavke uklapanja" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opcije komandne linije koje treba ignorisati:" #: optiondialog.cpp:1568 #, fuzzy msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Lista opcija komandne linije koje bi trebale biti ignorisane kada je KDiff3 " "korišten od strane drugih alata.\n" "Nekoliko vrijednosti se može navesti ako su razdvojene preko ';'\n" "Ovo će izostaviti grešku \"Nepoznata opcija\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Nekompatibilan font" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Nastavite na sopstveni rizik" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Odaberite drugi font" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Ovo poništava sve opcije. Ne samo one na trenutnoj temi." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Preprocesorka naredba: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Slijedeće opcije koje ste izabrali mogu izmijeniti podatke:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Po svoj prilici ovo nije poželjno prilikom stapanja.\n" "Želite li da isključite ove postavke ili da nastavite dalje sa njima?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opcija nije sigurna za stapanje" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Koristi ove opcije prilikom stapanja" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Isključi nesigurne opcije" #: pdiff.cpp:300 msgid "Loading A" msgstr "Učitavam A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Učitavam B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Raz.: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Raz.lin.: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Učitavam C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Raz.: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Raz.: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Raz.lin.: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Raz.lin.: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "Sve ulazne datoteke sadrže isti tekst, ali nisu binarno jednake." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "Datoteke %1 i %2 imaju jednak tekst, ali nisu binarno jednake.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Izgleda da neke ulazne datoteke nisu čisto tekstualne.\n" "Imajte na umu da KDiff3-stapanje nije namijenjeno binarnim podacima.\n" "Nastavite na sopstveni rizik." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Prekini" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Otvaram datoteke..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Greška pri otvaranju datoteke" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Isjecam odabrano..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopiram odabrano u clipboard..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Ubacujem sadržaje clipboarda..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Snimi i nastavi" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Nastavi bez snimanja" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Pretraga je završena." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Pretraga je gotova" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Ništa nije odabrano niti u jednom ulaznom prozoru razlika." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Greška u toku dodavanja ručnog opsega razlika" #: kdiff3_shell.cpp:76 #, fuzzy msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Nisam mogao pronaći naš dio!\n" "Ovo se obično dešava zbog instalacionog problema. Pročitajte datoteku " "\"README\" u izvornom paketu za detalje." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Podesi KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "Diff and Merge" #~ msgstr "Razlikuj i stopi" #~ msgid "Directory Merge" #~ msgstr "Stapanje direktorija" #~ msgid "Enables/disables the toolbar" #~ msgstr "Uključuje/isključuje traku sa alatima" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "Datoteke A i B su binarno jednake.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "Datoteke A i C su binarno jednake.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "Datoteke A i C imaju jednak tekst.\n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "Datoteke B i C su binarno jednake.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "Datoteke B i C imaju jednak tekst.\n" #~ msgid "Preserve carriage return" #~ msgstr "Očuvaj CR" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "Prikaži CR znakove \"\\r' ako postoje.\n" #~ "Pomaže da se uporede datoteke koje su mijenjane pod različitim " #~ "operativnim sistemima." #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "caslav.ilic@gmx.nit,simicsl@verat.nit,nemir29@hotmail.com" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Časlav Ilić, Slobodan Simić, Emir Nalčadžić" kdiff3-0.9.97/po/pt_BR/0000755000175100001440000000000011626145654013756 5ustar joachimuserskdiff3-0.9.97/po/pt_BR/kdiff3plugin.po0000644000175100001440000000630411626145611016677 0ustar joachimusers# tradução do kdiff3plugin.po para Brazilian Portuguese # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Luiz Fernando Ranghetti , 2008, 2010. # André Marcelo Alvarenga , 2008, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-07 22:43-0300\n" "Last-Translator: André Marcelo Alvarenga \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Comparar com %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Mesclar com %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Salvar '%1' para mais tarde" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Mescar 3 níveis com a base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Comparar com..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Limpar lista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Comparar" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparação em 3 níveis" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Sobre o plug-in de menu do KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Plug-in de menu do KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Página Web do KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Usando a extensão do menu de contexto:\n" "Para uma comparação simples de dois arquivos selecionados, escolha a opção " "\"Comparar\".\n" "Se o outro arquivo não estiver no mesmo local, você pode \"Salvar\" o " "primeiro arquivo mais tarde, e irá aparecer então no submenu \"Comparar " "com...\". Então, use a opção \"Comparar com\" no segundo arquivo.\n" "Para uma mesclagem em 3 níveis, primeiro pode \"Salvar\" o arquivo de base, " "depois a ramificação a reunir e depois escolha a opção \"mesclar a 3 níveis " "com a base\" sobre a ramificação que servirá de destino.\n" "O mesmo se aplica à comparação e reunião de pastas." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Sobre o plug-in de menu do KDiff3" kdiff3-0.9.97/po/pt_BR/CMakeLists.txt0000644000175100001440000000016611626145611016512 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(pt_BR ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/pt_BR/kdiff3fileitemactionplugin.po0000644000175100001440000000637511626145611021624 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Marcus Gama , 2011. # André Marcelo Alvarenga , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-08-05 01:41-0300\n" "Last-Translator: André Marcelo Alvarenga \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Comparar com %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Mesclar com %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Salvar '%1' para mais tarde" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Mesclar 3 níveis com a base" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Comparar com..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Limpar a lista" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Comparar" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Comparação em 3 níveis" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Sobre o plugin de menu do KDiff3..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Plugin de ação de item de arquivo do KDiff3: Copyright (C) 2011 Joachim " "Eibl\n" "Página Web do KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Usar a extensão do menu de contexto:\n" "Para uma comparação simples entre dois arquivos selecionados, escolha " "\"Comparar\".\n" "Se o outro arquivo estiver em outro local qualquer, você pode \"Salvar\" o " "primeiro arquivo para usar mais tarde. Irá depois aparecer no submenu " "\"Comparar com ...\". Depois use o \"Comparar com\" no segundo arquivo.\n" "Para uma mesclagem em 3 níveis, você pode \"Salvar\" o arquivo de base, " "depois a ramificação a mesclar e selecionar \"Mesclar 3 níveis com a base\" " "na outra ramificação que será usada como destino.\n" "O mesmo também se aplica à comparação e mesclagem de pastas." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Sobre o plugin de ação sobre itens de arquivos do KDiff3" kdiff3-0.9.97/po/pt_BR/kdiff3.po0000644000175100001440000024732211626145611015467 0ustar joachimusers# tradução do kdiff3.po para Brazilian Portuguese # Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # # Paulo Henrique Alkmin da Costa , 2003. # Lisiane Sztoltz , 2003. # Lisiane Sztoltz Teixeira , 2004. # Diniz Fernando Bortolotto Ferreira , 2006. # Diniz Bortolotto , 2006, 2007, 2008. # André Marcelo Alvarenga , 2008, 2009, 2010, 2011. # Luiz Fernando Ranghetti , 2009. # Marcus Gama , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-18 20:18-0300\n" "Last-Translator: André Marcelo Alvarenga \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continuar" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancelar" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Sair" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Ajuda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Padrões" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Arquivo" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Editar" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Diretório" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Movimento" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Visão das D&iferenças" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Mesclar" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Janela" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Configurações" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "Aj&uda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Sobre" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "Agradecimen&tos" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operação de Mesclagem do Item Atual" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operação de Sincronismo do Item Atual" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Abrir" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Salvar" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Salvar Como..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimir..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Recortar" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copiar" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Colar" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Selecionar Tudo" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostrar a Barra de Ferramentas" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Mostrar barra de &status" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configurar %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Sobre" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Procurar" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Procurar o Seguinte" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Selecione a Fonte" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Você selecionou um tamanho de letra variável.\n" "\n" "Porque este programa não lida corretamente com tipos de letra\n" "de largura variável, você poderá ter problemas ao editar.\n" "\n" "Deseja continuar ou prefere selecionar outro tipo de letra." #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Fonte incompatível." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continuar por minha conta e risco" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Selecionar outra fonte" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Para mais documentação, veja o menu de ajuda ou o subdiretório doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Utilização do KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorar" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Sair" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" "A gravação de dados da área de transferência para o arquivo temporário " "falhou." #: diff.cpp:255 msgid "From Clipboard" msgstr "Da Área de Transferência" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Um espaço era esperado após as aspas de fecho." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Existem aspas sem correspondência." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Aspas inesperadas detectadas dentro do argumento." #: diff.cpp:503 msgid "No program specified." msgstr "Não foi indicado nenhum programa." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "O pré-processamento possivelmente falhou. Verifique este comando:\n" "\n" " %1\n" "\n" "O comando de pré-processamento vai ser desativado." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "O pré-processamento com procura de linhas possivelmente falhou. Verifique " "este comando:\n" "\n" " %1\n" "\n" "O comando de pré-processamento com procura de linhas vai ser desativado." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Erro de perda de dados:\n" "Se for reproduzível, por favor, contate o autor.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Erro Interno Grave" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mistura de links e arquivos normais." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Link: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Tamanho. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data e Tamanho: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "A criação da cópia temporária de %1 falhou." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "O acesso a %1 falhou." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Comparando arquivo..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Erro ao ler de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nome" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operação" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Não resolvido" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Resolvido" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Não vazio" #: directorymergewindow.cpp:359 msgid "White" msgstr "Branco" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Você está neste momento fazendo uma mesclagem de diretórios. Tem certeza que " "deseja interromper a mesclagem e analisar o diretório de novo?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Aviso" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Pesquisar de Novo" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continuar Mesclando" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Abertura de diretórios falhou:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Dir A \"%1\" não existe ou não é um diretório.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Dir B \"%1\" não existe ou não é um diretório.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Dir C \"%1\" não existe ou não é um diretório.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Erro na abertura do Diretório" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "O diretório de destino não pode ser o mesmo que A ou B quando são mesclados " "três diretórios.\n" "Verifique de novo antes de continuar." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Aviso de Parâmetro" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Pesquisando diretórios..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Lendo Diretório A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Lendo Diretório B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Lendo Diretório C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Alguns sub-diretórios não eram legíveis" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Verifique as permissões dos sub-diretórios." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Pronto." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status da Comparação de Diretório" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Número de sub-diretórios:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Número de arquivos iguais:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Número de arquivos diferentes:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Número de mesclagens manuais:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Isto afeta todas as operações de mesclagem." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Mudando Todas as Operações de Mesclagem" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Processando " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Fazer." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copiar A para B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copiar B para A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Apagar A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Apagar B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Apagar A e B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Mesclar com A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Mesclar com B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Mesclar com A e B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Apagar (se existir)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Mesclar" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Mesclar (manual)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Erro: Tipos de Arquivos em Conflito" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Erro: alterado e removido" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Erro: As datas são iguais mas os arquivos não." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Esta operação não é possível no momento." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operação Não Possível" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Isto nunca deve acontecer:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Se souber como reproduzir isto, contate por favor o autor do programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Erro no Programa" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Ocorreu um erro ao copiar.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Erro" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Erro na mesclagem" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Erro." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Concluído." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Não salvo." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operação de mesclagem desconhecida. (Isto nunca deve acontecer!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operação de mesclagem desconhecida." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "A mesclagem está para começar.\n" "\n" "Escolha \"Faça\" se você leu as instruções e sabe o que está fazendo.\n" "Escolhendo \"Simular\" você verá o que irá acontecer.\n" "\n" " Saiba que esse programa ainda está em fase beta, e NÃO HÁ GARANTIA alguma! " "Faça backups dos seus dados!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Iniciando Mesclagem" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Faça" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simular" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "O item selecionado tem um tipo diferente nos diferentes diretórios. " "Selecione o que fazer." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "As datas de modificação do arquivo são iguais mas os arquivos não são. " "Selecione o que fazer." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "O item selecionado foi alterado em um diretório e removido em outro. " "Selecione o que fazer." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Esta operação não é possível no momento porque uma mesclagem de diretório " "está em execução." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Houve um erro no último passo.\n" "Você quer continuar com o item que causou o erro ou prefere pular esse item?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continuar mesclagem após um erro" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continuar com o Último Item" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Pular Item" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Ignorado." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Em progresso..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operação de mesclagem completa." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Mesclagem completa." #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "A simulação de mesclagem terminou: Verifique se concorda com as operações " "propostas." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Ocorreu um erro. Pressione OK para ver informações detalhadas.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Erro: Ao tentar apagar %1: Criação da cópia de segurança falhou." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "apagar diretório recursivamente( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "apagar( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Erro: a operação de remoção de diretório falhou quando tentava ler o " "diretório." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Erro: rmdir( %1 ) operação falhou." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Erro: a operação de remoção falhou." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "mesclagem manual( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Nota: Após uma mesclagem manual o usuário deve continuar pressionando " "F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "Erro: cópia( %1 -> %2 ) falhou. Remoção do destino existente falhou." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copyLink( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Erro: copyLink falhou: Ligações remotas ainda não são suportadas." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Erro: copyLink falhou." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "cópia( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Erro durante renomear( %1 -> %2 ): Não é possível remover o destino " "existente." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "renomear( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Erro: Renomear falhou." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Erro durante makeDir de %1. Não foi possível remover o arquivo existente." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "makeDir( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Erro ao criar diretório." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Destino" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipo" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Tamanho" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atributos" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Última modificação" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Ligação-Destino" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Arquivo" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "não disponível" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Destino): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Destino): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Destino): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Destino: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Salvar o Estado da Mesclagem de Diretório Como..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Iniciar/Continuar Mesclagem de Diretório" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Executar Operação para o Item Atual" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Comparar Arquivo Selecionado" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Mesclar Arquivo Atual" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Mesclar\n" "Arquivo" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Fechar Todos Sub-diretórios" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Expandir Todos Sub-diretórios" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Selecionar Todos os Itens de A" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Selecionar Todos os Itens de B" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Selecionar Todos os Itens de C" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Escolher Automaticamente a Operação para Todos os Itens" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Nenhuma Operação para Todos os Itens" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostrar Arquivos Idênticos" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Arquivos\n" "Idênticos" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostrar os Arquivos Diferentes" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostrar Arquivos apenas em A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Arquivos\n" "apenas em A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostrar Arquivos apenas em B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Arquivos\n" "apenas em B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostrar Arquivos apenas em C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Arquivos\n" "apenas em C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Comparar Explicitamente os Arquivos Selecionados" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Mesclar Explicitamente os Arquivos Selecionados" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Não fazer nada" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Apagar A e B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Mesclar com A e B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorado. (definido pelo usuário.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Ferramenta para Comparação e Mesclagem de Arquivos e Diretórios" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Correção de erros, mantenedor do pacote Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instalador para o Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-help" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Correção da Área de Transferência" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Help" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Classe CvsIgnoreList do Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Classe StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Correção de Coloração da Igualdade de Diretórios" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Correção para inicialização lenta no Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Extensão Diff para o Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Testes intensivos, utilização e sugestões" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Suporte para Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Passagem para o KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Versão para o OS/2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Muito obrigado àqueles que relataram bugs e contribuíram com ideias!" #: main.cpp:196 msgid "Merge the input." msgstr "Mesclar a Entrada." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Arquivo base explícito. Para compatibilidade com certas ferramentas." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Arquivo de Saída. Implica -m. P.ex.: -o novoarquivo.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Arquivo de saída, novamente. (Para compatibilidade com certas ferramentas.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Sem interface se todos os conflitos são resolvidos automaticamente " "(necessita -o arquivo)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Não resolver conflitos automaticamente. (Para compatibilidade...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Substituição do nome visível para o arquivo de entrada 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Substituição do nome visível para o arquivo de entrada 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Substituição do nome visível para o arquivo de entrada 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Substituição alternativa do nome visível. Coloque apenas um para cada " "entrada." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Substitui uma opção de configuração. Use uma vez para todas as opções. P." "ex.: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Mostra uma lista das opções de configuração e os valores atuais." #: main.cpp:208 msgid "Use a different config file." msgstr "Usar um arquivo de configuração diferente." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "arquivo 1 abrindo (base, se não especificado via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "arquivo 2 abrindo" #: main.cpp:213 msgid "file3 to open" msgstr "arquivo 3 abrindo" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Número de conflitos não resolvidos: %1 (dos quais %2 são espaços em branco)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "A saída foi modificada.\n" "Se você continuar suas mudanças serão perdidas." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Todos os arquivos de entrada são iguais em nível binário." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Todos os arquivos de entrada contém o mesmo texto." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Os arquivos %1 e %2 são iguais em nível binário.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Arquivos %1 e %2 possuem texto igual.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Número total de conflitos: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Número de conflitos resolvidos automaticamente: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Número de conflitos não resolvidos: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflitos" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Nem todos os conflitos foram resolvidos.\n" "Arquivo não foi salvo.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflitos Restantes" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Existe um conflito de fins de linha. Escolha o estilo manualmente.\n" "O arquivo não foi salvo.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Criação do backup falhou. Arquivo não salvo." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Erro ao salvar arquivo" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Erro ao gravar." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Saída" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificado]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codificação da gravação" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Estilo de fim de linha:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflito" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codificador de" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Não encontrou arquivos para comparação." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Ao tentar fazer uma cópia de segurança, a remoção de uma cópia anterior " "falhou. \n" "Nome do Arquivo: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Ao tentar fazer uma cópia de segurança, a mudança de nome falhou. \n" "Nome dos Arquivos: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Obtendo status do arquivo: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Lendo arquivo: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Gravando arquivo: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Memória insuficiente" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Criando diretório: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Removendo diretório: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Removendo arquivo: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Criando link simbólico: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Renomeando arquivo: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Copiando arquivo: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Erro durante a operação de cópia de arquivo: Abertura de arquivo para " "leitura falhou. Nome do Arquivo: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Erro durante operação de cópia de arquivo: Abertura do arquivo para escrita " "falhou. Nome do Arquivo: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Erro durante operação de cópia de arquivo: Leitura falhou. Nome do Arquivo: " "%1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Erro durante operação de cópia de arquivo: Escrita falhou. Nome do Arquivo: " "%1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Lendo diretório: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Listando diretório: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancelar" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linha" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Linha não disponível" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codificação:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Linha de topo" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fim" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuração atual:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Erro da Opção de Configuração:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Opção --auto usada, mas nenhum arquivo de saída especificado." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Opção --auto ignorada para comparação de diretórios." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Falha ao salvar." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Abertura desses arquivos falhou:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Erro na abertura do arquivo" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Abre documentos para comparação..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Recarregar" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Salva o resultado da mesclagem. Todos os conflitos precisam ser resolvidos!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Salva o documento atual como..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Imprimir as diferenças" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Sai do aplicativo" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Corta a seção selecionada e a coloca na área de transferência" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia a seção selecionada para a área de transferência" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Cola o conteúdo da área de transferência na posição atual" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Seleciona tudo na janela atual" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Procura por um texto" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Procura de novo pelo texto" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Habilita/desabilita a barra de status" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configurar o KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Vá para o Delta Atual" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Delta\n" "Atual" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Vá para o Primeiro Delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Primeiro\n" "Delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Vá para o Último Delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Último\n" "Delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Ignora as diferenças de espaço em branco quando \"Mostrar os Espaços em " "Branco\" está desativado.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Não ignora as diferenças de espaço em branco mesmo quando \"Mostrar os " "Espaços em Branco\" está desativado.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Vá para o Delta Anterior" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Delta\n" "Anterior" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Vá para o Próximo Delta" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Delta\n" "Seguinte" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Vá para o Conflito Anterior" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflito\n" "Anterior" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Vá para o Próximo Conflito" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflito\n" "Seguinte" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Vá para o Conflito Não-Resolvido Anterior." #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Não Resolvido\n" "Anterior" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Vá para o Próximo Conflito Não-Resolvido" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Não Resolvido\n" "Seguinte" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Seleciona Linha(s) De A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Escolher\n" "o A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Seleciona Linha(s) De B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Escolher\n" "o B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Selecione Linha(s) De C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Escolher\n" "o C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Ir Automaticamente para o Próximo Conflito Não-Resolvido Após a Seleção da " "Fonte." #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Seguinte\n" "Automático" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Mostrar as Diferenças de Espaços e Tabulações" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Espaços\n" "em Branco" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostrar Espaços em Branco" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Diferenças\n" "em Branco" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostrar Números de Linha" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Números\n" "de Linha" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Escolher A em qualquer lugar" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Escolher B em qualquer lugar" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Escolher C em qualquer lugar" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Escolha A em Todos os Conflitos Não-Resolvidos" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Escolha B em Todos os Conflitos Não-Resolvidos" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Escolha C em Todos os Conflitos Não-Resolvidos" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Escolha A em Todos os Conflitos de Espaço em Branco Não-Resolvidos" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Escolha B em Todos os Conflitos de Espaço em Branco Não-Resolvidos" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Escolha C em Todos os Conflitos de Espaço em Branco Não-Resolvidos" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Resolva Conflitos Simples Automaticamente" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Defina Delta para Conflitos" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Executar Mesclagem Automática de Expressões Regulares" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Resolva Conflitos de Histórico Automaticamente" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Dividir Diferenças ao Selecionar" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Juntar Diferenças Selecionadas" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostrar Janela A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostrar Janela B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostrar Janela C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Foco na Próxima Janela" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Visão Normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Visão A vs. B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Visão A vs. C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Visão B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Quebrar Linha nas Janelas de Diferenças" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Adicionar Alinhamento Manual das Diferenças" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Limpar Todos Alinhamentos de Diferenças Manuais" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Foco na Janela Anterior" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Alterar Orientação da Divisão" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Janela Dividida de Diretórios e Texto" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Alternar entre visualização de Diretório e Texto" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "O resultado da Mesclagem não foi salvo." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Salvar e Sair" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Sair sem Salvar" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Falha ao salvar o resultado da mesclagem" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Você está fazendo uma mesclagem de diretórios. Tem certeza de que deseja " "cancelar?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Salvando arquivo...." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Salvando arquivo com um novo nome..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "A impressão não está implementada." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Imprimindo..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Seleção" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Impressão concluída." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Impressão cancelada." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Saindo..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Mudando Barra de Ferramentas..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Mudar a Barra de Status..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Arquivo..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Diretório..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Opcional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Trocar/Copiar Nomes..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Trocar %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copiar %1->Saída" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Trocar %1<->Saída" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Saída (opcional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configurar..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Texto da procura:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Diferenciar maiúsculas de minúsculas" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Procurar A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Procurar B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Procurar C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Resultado da procura" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Procurar" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Teste de Expressões Regulares" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Expressão regular de mesclagem automática:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Linha de mesclagem automática do exemplo:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Para testar a mesclagem automática, copie uma linha usada nos seus arquivos." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultado correspondente:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expressão regular do início do histórico:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Linha inicial do histórico do exemplo (com o comentário inicial):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copie uma linha inicial do histórico, como a usada nos seus arquivos,\n" "incluindo o comentário inicial." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expressão regular do início do item de histórico:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Ordem da chave do histórico:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Linha inicial do item do histórico do exemplo (sem o comentário inicial):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copie uma linha inicial do item de histórico, como a usada nos seus " "arquivos,\n" "mas omita o comentário inicial." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resultado da chave de ordenação:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Sucesso da correspondência." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "A correspondência falhou." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Os parênteses de abertura e fechamento não correspondem na expressão regular." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Mude isto se caracteres diferentes de ASCII não forem exibidos corretamente." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configurar" #: optiondialog.cpp:531 msgid "Font" msgstr "Fonte" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Fonte de saída do Editor e do Diff" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Fonte em Itálico para deltas" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Seleciona a versão em itálico da fonte para diferenças.\n" "Se a fonte não suportar caracteres em itálico, ele não fará nada." #: optiondialog.cpp:568 msgid "Color" msgstr "Cor" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Configuração de Cores" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Áreas do Editor e das Diferenças:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Cor do primeiro plano:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Cor do plano de fundo:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Cor do plano de fundo do diferenciador:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Cor A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Cor B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Cor C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Cor do conflito:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Cor de fundo do intervalo atual:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Cor de fundo da diferença do intervalo atual:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Cor dos intervalos de diferenças alinhados manualmente:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Área de Comparação de Diretório:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Cor do arquivo mais recente:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Mudar esta cor, só terá efeito quando iniciar a próxima comparação de " "diretório." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Cor do arquivo mais antigo:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Cor dos arquivos intermediários:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Cor dos arquivos faltantes:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportamento do Editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab insere espaços" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Ligado: Ao pressionar Tab o número apropriado de espaços é gerado.\n" "Desligado: Um caractere de Tab será inserido." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tamanho da tabulação:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Endentação automática" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Ligado: A endentação da linha anterior é usada para uma nova linha.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Auto copiar seleção" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Ligado: Qualquer seleção é imediatamente enviada para a Área de " "Transferência.\n" "Desligado: Você deve explicitamente copiar, p.ex. via Ctrl+C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "DOS/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Auto-detectar" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Configura os finais de linha para quando um arquivo editado for salvo.\n" "DOS/Windows: CR+LF; Unix: LF; com CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Configurações de Diff" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Trata como espaços em branco." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignorar Números" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignorar caracteres numéricos durante fase de combinação de linhas. (Similar " "a Ignorar espaços em branco.)\n" "Pode ajudar a comparar arquivos com dados numéricos." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignorar comentários de C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Trata comentários C/C++ como espaços em branco." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignorar caixa" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Tratar casos diferentes como mudanças de espaços em branco ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Comando do Pré-processador:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Pré-processamento definido pelo usuário. (Veja a documentação para detalhes.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Comando do Pré-processador para correspondência de linhas:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Esse pré-processador é usado somente durante correspondência de linhas.\n" "(Veja a documentação para detalhes.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Tentar com persistência (lento)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Habilita a opção --minimal para o diff externo.\n" "A análise dos arquivos grandes será muito mais lenta." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Alinhar o B e o C para 3 arquivos de entrada" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Tentar alinhar o B e o C ao comparar ou mesclar três arquivos de entrada.\n" "Não é recomendado para mesclar porque isto pode ser mais complicado.\n" "(Por padrão está desativado.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Configurações de Mesclagem" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Atraso no avanço automático (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Quando estiver no modo de Avanço Automático, o resultado da seleção atual é " "mostrado\n" "durante o período indicado, antes de saltar para o próximo conflito. " "Intervalo: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostrar os diálogos de informação" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostrar um diálogo com informações sobre o número de conflitos." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Mesclagem padrão de 2 arquivos com espaços em branco:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Escolha Manual" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Permite que o algoritmo de mesclagem selecione automaticamente uma entrada " "para mudanças somente em espaços em branco." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Mesclagem padrão de 3 arquivos com espaços em branco:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Expressão Regular de Mesclagem Automática" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "A expressão regular para linhas em que o KDiff3 deverá escolher " "automaticamente uma origem.\n" "Quando uma linha com um conflito corresponder à expressão regular então\n" "- se possível - será C, caso contrário B será escolhido." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Executar a mesclagem automática da expressão regular ao iniciar a mesclagem" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Executa a mesclagem para as expressões regulares de mesclagem automática\n" "imediatamente após o início de uma mesclagem.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Mesclagem do Histórico de Controle de Versões" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "A expressão regular para o início do item de histórico da mesclagem.\n" "Normalmente este valor contém a palavra chave \"$Log$\".\n" "Valor padrão: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Um item de histórico da mesclagem consiste em várias linhas.\n" "Indique a expressão regular usada para detectar a primeira linha (sem o " "comentário inicial).\n" "Use os parênteses para agrupar as chaves que deseja usar na ordenação.\n" "Se for deixado em branco, o KDiff3 assume que as linhas em branco separam os " "itens de histórico.\n" "Veja a documentação para detalhes." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordenação da mesclagem do histórico" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordenar o histórico do controle de versões por uma chave." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Ordem da chave de ordenação do início do item de histórico:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Cada um dos parênteses usados na expressão regular no item inicial do " "histórico\n" "agrupa uma chave que poderá ser usada na ordenação.\n" "Indique a lista de chaves (que são numeradas por ordem de ocorrência,\n" "começando com 1), usando ',' como separador (p.ex., \"4,5,6,1,2,3,7\").\n" "Se deixar em branco, nenhuma ordenação será efetuada.\n" "Veja a documentação para detalhes." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Mesclar o histórico do controle de versões ao iniciar a mesclagem" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Executar mesclagem automática do histórico de controle de versões ao iniciar " "a mesclagem." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Número máximo de itens do histórico:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Recortar após o número indicado. Usar -1 para um número infinito de " "elementos." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Testar suas expressões regulares" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Comando de mesclagem irrelevante:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Se for indicado, este script é executado após a mesclagem automática\n" "quando não forem detectadas mais alterações relevantes.\n" "É invocado com os parâmetros: arquivo1 arquivo2 arquivo3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Gravar automaticamente e sair na mesclagem sem conflitos" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Se o KDiff3 foi iniciado para uma mesclagem de arquivo a partir da linha de " "comando e todos os\n" "conflitos podem ser resolvidos sem interação do usuário e, após isso, salva " "e sai automaticamente.\n" "(Semelhante à opção de linha de comando \"--auto\".)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Diretório" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Diretórios Recursivos" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Decide analisar sub-diretórios ou não." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Padrão(ões) de Arquivo:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Padrão(ões) de arquivos a analisar.\n" "Caracteres especiais: '*' e '?'\n" "Podem ser indicados vários padrões usando o separador: ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Antipadrão(ões) de arquivo:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Padrão(ões) de arquivos a excluir da análise.\n" "Caracteres especiais: '*' e '?'\n" "Podem ser indicados vários padrões usando o separador: ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Antipadrão(ões) de diretório:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Padrão(ões) de diretórios a excluir da análise.\n" "Caracteres especiais: '*' e '?'\n" "Podem ser indicados vários padrões usando o separador: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Usar .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Estende o antipadrão para qualquer coisa que possa ser ignorada pelo CVS.\n" "Através de arquivos \".cvsignore\" locais isso pode ser específico para cada " "diretório." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Encontrar arquivos e diretórios ocultos" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Encontra arquivos e diretórios com o atributo oculto." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Encontrar arquivos e diretórios começando com '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Seguir as ligações de arquivos" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Ligado: Compara o arquivo para o qual a ligação aponta.\n" "Desligado: Compara as ligações." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Seguir ligações de diretório" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Ligado: Compara o diretório para o qual a ligação aponta.\n" "Desligado: Compara as ligações." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" "Comparação de nomes de arquivos com distinção entre maiúsculas e minúsculas" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "A comparação de diretório irá comparar os arquivos ou diretórios quando os " "seus nomes corresponderem.\n" "Configure esta opção se a caixa dos nomes deve corresponder. (O padrão para " "Windows é desligada; caso contrário ligada.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Modo de Comparação de Arquivo" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparação binária" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparação binária de cada arquivo. (Padrão)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Análise completa" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Fazer uma análise completa e mostrar informações estatísticas em colunas " "extra.\n" "(Mais lento que a comparação binária, muito mais lento para arquivos " "binários.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Confiar no tamanho e data de modificação (inseguro)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Assumir que os arquivos são iguais se a data de modificação e o tamanho do " "arquivo são iguais.\n" "Arquivos com conteúdos iguais mas datas de modificação diferentes irão " "aparecer como diferentes.\n" "Útil para diretórios grandes ou redes lentas." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Confiar no tamanho e data, mas usar comparação binária se a data não " "combinar (inseguro)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Assumir que os arquivos são iguais se a data de modificação e o tamanho do " "arquivo são iguais.\n" "Se a data não é igual mas os tamanhos são, usar comparação binária.\n" "Útil para diretórios grandes ou redes lentas." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Confiar no tamanho (inseguro)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Assumir que os arquivos são iguais se o seu tamanho é igual.\n" "Útil para diretórios grandes ou para redes lentas quando a data é modificada " "durante o download." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronizar diretórios" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Oferece-se para armazenar arquivos em ambos diretórios\n" "de modo que ambos fiquem iguais no fim.\n" "Funciona apenas ao comparar dois diretórios sem indicar um destino." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Diferenças de espaço em branco consideradas iguais" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Se os arquivos apenas diferem em espaço em branco considerá-los iguais.\n" "Isto está ativo apenas quando é escolhida a análise completa." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copiar mais novo ao invés de mesclar (inseguro)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Não analisa, apenas pega o arquivo mais novo.\n" "(Use somente se você sabe o que está fazendo!)\n" "Só é efetivo quando comparando dois diretórios." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Backup dos arquivos (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Se um arquivo for salvo sobre um arquivo antigo, o arquivo antigo\n" "será renomeado com uma extensão '.orig' ao invés de ser removido." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Configurações Regionais" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Idioma (é necessário reiniciar)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Escolha o idioma da interface gráfica ou \"Auto\".\n" "Para que a mudança de idioma tenha efeito, saia e reinicie o KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Utilizar a mesma codificação para tudo:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Ative isto para permitir modificar todas as codificações alterando apenas a " "primeira.\n" "Desative se forem necessárias opções individuais." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: A codificação local é " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codificação de Arquivo para A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Se estiver ativo, então a codificação Unicode (UTF-16 ou UTF-8) será " "detectada.\n" "Se o arquivo não for Unicode então a codificação selecionada será usada como " "alternativa.\n" "(A detecção de Unicode depende dos primeiros bytes de um arquivo.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Auto-Detectar o Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codificação de Arquivo para B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codificação de Arquivo para C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codificação de Arquivo para Mesclagem de Resultado e Gravação:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Seleção Automática" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Se estiver ativada, será usada a codificação dos arquivos de entrada.\n" "Em casos ambíguos, uma caixa de diálogo irá pedir ao usuário para escolher a " "codificação com que deseja gravar." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codificação de Arquivo dos Arquivos de Pré-processamento:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Idioma da Direita para a Esquerda" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Alguns idiomas são lidos da direita para esquerda.\n" "Esta opção muda o visualizador e editor apropriadamente." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integração" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Configuração de Integração" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opções da linha de comandos a ignorar:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Uma lista das opções da linha de comandos que deverão ser ignoradas, quando " "o KDiff3 for usado por outras ferramentas.\n" "Se desejar indicar vários valores, separe-os por ';'\n" "Isto irá eliminar o erro de \"Opção desconhecida\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Sair também com a tecla ESC" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Um método rápido para sair.\n" "Para os que estão acostumados a usar a tecla ESC." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integrar com o ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra com o Rational ClearCase da IBM.\n" "Modifica o arquivo \"map\" no subdiretório \"lib/mgrs\" do ClearCase\n" "(Ativo apenas quando o diretório \"bin\" do ClearCase está no path.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Remover a Integração com o ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Recupera o arquivo \"map\" usado antes de fazer a integração com o ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Fonte Incompatível" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continue por sua conta e risco" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Selecionar outra fonte" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Reinicia todas as opções. Não somente as desse tópico." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Comando do pré-processador: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" "A(s) seguinte(s) opção(ões) que você selecionou podem modificar os dados:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Muito provavelmente isso não é desejável durante uma mesclagem.\n" "Deseja desabilitar estas configurações, ou continuar com elas ativas?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opção Insegura para Mesclagem" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Usar Estas Opções Durante a Mesclagem" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Desativar Opções Inseguras" #: pdiff.cpp:300 msgid "Loading A" msgstr "Carregando A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Carregando B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diferenças: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Dif. Linhas: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Carregando C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diferenças: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diferenças: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Dif. Linhas: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Dif. Linhas: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Todos os arquivos de entrada contêm o mesmo texto, mas não são iguais em " "nível binário." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Os arquivos %1 e %2 têm texto igual, mas não são iguais em nível binário. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Alguns dos arquivos de entrada não parecem ser arquivos de texto puro.\n" "Lembre-se que a mesclagem do KDiff3 não foi pensada para dados binários.\n" "Continue por sua conta e risco." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Alguns caracteres de entrada não puderam ser convertidos para Unicode " "válido.\n" "Você poderá estar usando o codificador errado (p.ex. UTF-8 para arquivos não-" "UTF-8).\n" "Não salve o resultado se não tiver certeza. Prossiga por sua conta e risco.\n" "Os arquivos de entrada afetados estão em %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Cancelar" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Abrindo arquivos..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Erro ao abrir o arquivo" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Recortando seleção..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Copiando a seleção para a área de transferência..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Inserindo o conteúdo da área de transferência..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Salvar e Continuar" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continuar sem Salvar" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Procura terminada." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Procura Terminada" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Nada foi selecionado em nenhuma janela de entrada de diferenças." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Erro ao adicionar o intervalo manual de diferenças" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Não foi possível inicializar o componente KDiff3.\n" "Isso normalmente acontece devido a um problema na instalação. Leia o arquivo " "README no pacote de fontes para detalhes." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Diniz Bortolotto" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "diniz.bortolotto@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configurar o KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra de ferramentas principal" kdiff3-0.9.97/po/et/0000755000175100001440000000000011626145654013360 5ustar joachimuserskdiff3-0.9.97/po/et/kdiff3plugin.po0000644000175100001440000000572011626145607016307 0ustar joachimusers# translation of kdiff3plugin.po to Estonian # Copyright (C) 2008 This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Marek Laane , 2008, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-02 23:27+0300\n" "Last-Translator: Marek Laane \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Võrdle failiga %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Ühenda failiga %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Salvesta '%1' hilisemaks" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Kolme faili ühendamine baasiga" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Võrdle failiga..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Puhasta nimekiri" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Võrdle" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Kolme faili võrdlemine" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "KDiff3 menüüplugina info..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 menüüplugin: autoriõigus (C) 2008: Joachim Eibl\n" "KDiff3 kodulehekülg: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Kontekstimenüü laienduse kasutamine:\n" "Kahe valitud faili lihtsaks võrdlemiseks vali \"Võrdle\".\n" "Kui teine fail asub kuskil mujal, \"salvesta\" esimene fail hilisemaks " "kasutamiseks. See ilmub alammenüüsse \"Võrdle failiga...\" Seejärel kasuta " "teise faili jaoks käsku \"Võrdle failiga\".\n" "Kolme faili ühendamiseks \"salvesta\" kõigepealt baasfail, seejärel " "ühendatav variant ja vali \"Kolme faili ühendamine baasiga\" variandiga, " "mida kasutatakse sihtfailina.\n" "Sama käib kataloogide võrdlemise ja ühendamise kohta." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "KDiff3 menüüplugina teave" kdiff3-0.9.97/po/et/CMakeLists.txt0000644000175100001440000000016311626145607016116 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(et ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/et/kdiff3fileitemactionplugin.po0000644000175100001440000000602211626145607021220 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Marek Laane , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-06-22 19:44+0300\n" "Last-Translator: Marek Laane \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Võrdle failiga %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Ühenda failiga %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Salvesta '%1' hilisemaks" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Kolme faili ühendamine baasiga" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Võrdle failiga..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Puhasta nimekiri" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Võrdle" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Kolme faili võrdlemine" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "KDiff3 menüüplugina teave..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 failitoimingute plugin: autoriõigus (C) 2011: Joachim Eibl\n" "KDiff3 kodulehekülg: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Kontekstimenüü laienduse kasutamine:\n" "Kahe valitud faili lihtsaks võrdlemiseks vali \"Võrdle\".\n" "Kui teine fail asub kuskil mujal, \"salvesta\" esimene fail hilisemaks " "kasutamiseks. See ilmub alammenüüsse \"Võrdle failiga...\" Seejärel kasuta " "teise faili jaoks käsku \"Võrdle failiga\".\n" "Kolme faili ühendamiseks \"salvesta\" kõigepealt baasfail, seejärel " "ühendatav variant ja vali \"Kolme faili ühendamine baasiga\" variandiga, " "mida kasutatakse sihtfailina.\n" "Sama käib kataloogide võrdlemise ja ühendamise kohta." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "KDiff3 failitoimingute plugina teave" kdiff3-0.9.97/po/et/kdiff3.po0000644000175100001440000024172311626145607015075 0ustar joachimusers# translation of kdiff3.po to Estonian # Copyright (C) 2003 Free Software Foundation, Inc. # # Marek Laane , 2003-2009. # Marek Laane , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-06-22 19:40+0300\n" "Last-Translator: Marek Laane \n" "Language-Team: Estonian \n" "Language: et\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Jätka" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Loobu" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Välju" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Abi" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Vaikeväärtused" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Fail" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Redigeerimine" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Kataloog" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Liikumine" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Võrdlus&evaade" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Ü&hendamine" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "Ake&n" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Seadistused" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "A&bi" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Info" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Tänuavaldused" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Käesoleva elemendi ühendamisoperatsioon" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Käesoleva elemendi sünkroniseerimisoperatsioon" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Ava" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Salvesta" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Salvestamine..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Trüki..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Lõika" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopeeri" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Aseta" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Kustuta kõik" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Tööriistariba näitamine" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Olekuriba näitamine" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 seadistamine..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Info" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Otsi" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Otsi järgmine" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Fondi valik" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Valisid muutuva laiusega fondi.\n" "\n" "Kuna see rakendus ei käitle muutuva laiusega fonte\n" "korrektselt, võib redigeerimisel esineda probleeme.\n" "\n" "Kas soovid jätkata või valid uue fondi?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Sobimatu font." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Jätkan oma riskil" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Valin uue fondi" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Täpsemat teavet leiab abimenüüst või alamkataloogist doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3 kasutamine" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignoreeri" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Välju" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Lõikepuhvri andmete kirjutamine ajutisse faili nurjus." #: diff.cpp:255 msgid "From Clipboard" msgstr "Lõikepuhvrist" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Lõpetava jutumärgi järel oodati tühikut." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Jutumärgid ei sobi kokku." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Ootamatu jutumärk argumendi sees." #: diff.cpp:503 msgid "No program specified." msgstr "Programmi pole määratud." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Eeltöötlus ilmselt nurjus. Kontrolli käsku:\n" "\n" " %1\n" "\n" "Praegu lülitatakse eeltöötluse käsu rakendamine välja." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Reasobivuse eeltöötlus ilmselt nurjus. Kontrolli käsku:\n" "\n" " %1\n" "\n" "Praegu lülitatakse reasobivuse eeltöötluse käsu rakendamine välja." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Andmekaotuse viga:\n" "Kui see on korratav, võta palun ühendust autoriga.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Tõsine seesmine viga" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Viitade ja tavafailide segu." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Viit: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Suurus. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Kuupäev ja suurus: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "%1 ajutise koopia loomine nurjus." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1 avamine nurjus." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Faili võrdlemine..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Viga %1 lugemisel" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nimi" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operatsioon" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Staatus" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Lahendamata" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Lahendatud" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Mitte-tühimärk" #: directorymergewindow.cpp:359 msgid "White" msgstr "Tühimärk" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Sul on parajasti käsil kataloogi ühendamine. Kas tõesti ühendamine " "katkestada ja kataloog uuesti läbi uurida?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Hoiatus" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Uuri uuesti läbi" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Jätka ühendamist" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Kataloogide avamine nurjus:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Kataloogi A \"%1\" ei ole olemas või ei ole see kataloog.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Kataloogi B \"%1\" ei ole olemas või ei ole see kataloog.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Kataloogi C \"%1\" ei ole olemas või ei ole see kataloog.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Kataloogi avamise viga" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Sihtkataloog ei saa kolme kataloogi ühendamisel olla sama, mis A või B.\n" "Kontrolli seda asja enne jätkamist." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameetri hoiatus" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Kataloogide läbiuurimine..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Kataloogi A lugemine" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Kataloogi B lugemine" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Kataloogi C lugemine" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Mõned alamkataloogid ei olnud loetavad:" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Kontrolli alamkataloogide õigusi." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Valmis." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Kataloogi võrdlemise olek" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Alamkataloogide arv:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Võrdsete failide arv:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Erinevate failide arv:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Käsitsiühendamiste arv:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "See mõjutab kõiki ühendamisoperatsioone." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Kõigi ühendamisoperatsioonide muutmine" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Töödeldakse " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Veel tegemata." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Kopeeri A->B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Kopeeri B->A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Kustuta A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Kustuta B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Kustuta A ja B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Ühenda A-sse" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Ühenda B-sse" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Ühenda A-sse ja B-sse" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Kustuta (kui on olemas)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Ühenda" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Ühenda (käsitsi)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Viga: failitüüpide vastuolu" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Viga: muudetud ja kustutatud" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Viga: kuupäevad on samad, aga mitte failid." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "See operatsioon ei ole praegu võimalik." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operatsioon ei ole võimalik" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Seda ei peaks kunagi juhtuma: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Kui sa tead, kuidas seda korrata, anna sellest teada rakenduse autorile." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Rakenduse viga" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Kopeerimisel tekkis viga.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Viga" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Ühendamise viga" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Viga." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Tehtud." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Ei salvestatud." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Tundmatu ühendamisoperatsioon. (Seda ei peaks kunagi ette tulema!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Tundmatu ühendamisoperatsioon." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Kohe algab ühendamine.\n" "\n" "Vali \"Tee seda\", kui oled lugenud juhiseid ja tead täpselt, mida ette " "võtad.\n" "Vali \"Simuleeri\", kui soovid näha, mis juhtub.\n" "\n" "Arvesta, et rakendus on endiselt arendusjärgus ja pole MINGIT GARANTIID, et " "üldse midagi juhtub või et kõik õigesti juhtub! Tee kindlasti tähtsatest " "andmetest varukoopia!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Ühendamise alustamine" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Tee ära" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simuleeri" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Esiletõstetud element on erinevates kataloogides erineva tüübiga. Otsusta, " "mida teha." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Failide muutmise aeg on sama, aga failid ise mitte. Otsusta, mida teha." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Esiletõstetud elementi on muudetud ühes ja kustutatud teises kataloogis. " "Otsusta, mida teha." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "See operatsioon ei ole praegu võimalik, sest käib kataloogide ühendamine." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Viimasel sammul tekkis viga.\n" "Kas soovid jätkata elemendiga, mis vea põhjustas, või selle vahele jätta?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Jätka ühendamist pärast viga" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Jätka viimase elemendiga" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Jäta vahele" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Vahele jäetud." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Töös..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Ühendamisoperatsioon lõpetatud." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Ühendamine lõpetatud" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Ühendamise simulatsioon lõpetatud: märgi, kui oled pakutavate " "operatsioonidega nõus." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Tekkis viga. Lähema info saamiseks klõpsa 'OK'.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Viga %1 kustutamisel: varukoopia loomine nurjus." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "kustuta kataloog rekursiivselt( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "kustuta( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Viga: kataloogi kustutamine nurjus juba kataloogi lugemise katsel." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Viga: operatsioon rmdir( %1 ) nurjus." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Viga: kustutamisoperatsioon nurjus." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "käsitsi ühendamine( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr " Märkus: pärast käsitsi ühendamist tuleks jätkata klahviga F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Viga: kopeeri( %1 -> %2) nurjus, sest olemasoleva sihtkoha kustutamine " "nurjus." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "kopeeri viit( %1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Viga: viida kopeerimine nurjus, sest kaugviidad ei ole veel toetatud." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Viga: viida kopeerimine nurjus." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopeeri( %1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Viga operatsioonil 'nimeta ümber( %1 -> %2)': olemasoleva sihtkoha " "kustutamine nurjus." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "nimeta ümber( %1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Viga: ümbernimetamine nurjus." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Viga kataloogi %1 loomisel: olemasoleva faili kustutamine nurjus." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "loo kataloog( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Viga kataloogi loomisel." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Sihtkoht" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Kataloog" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tüüp" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Suurus" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atribuut" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Viimase muutmise aeg" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Viit-sihtkoht" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Fail" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "pole kättesaadav" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (sihtkoht): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (baas): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (sihtkoht): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (sihtkoht): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Sihtkoht: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Kataloogi ühendamisoleku salvestamine..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Alusta/jätka kataloogi ühendamist" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Käivita operatsioon käesoleva elemendiga" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Võrdle valitud faili" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Ühenda praegune fail" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Ühenda\n" "fail" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Ava kõik alamkataloogid" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Sule kõik alamkataloogid" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Vali A kõigile elementidele" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Vali B kõigile elementidele" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Vali C kõigile elementidele" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Automaatne valik kõigile elementidele" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Ei ühtki operatsiooni kõigile elementidele" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Näita identseid faile" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identsed\n" "failid" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Näita erinevaid faile" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Näita ainult A faile" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Ainult\n" "A failid" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Näita ainult B faile" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Ainult\n" "B failid" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Näita ainult C faile" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Ainult\n" "C failid" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Võrdle valitud faile" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Ühenda valitud failid" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ära tee midagi" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Kustuta A ja B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Ühenda A-sse ja B-sse" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignoreeritakse (kasutaja määratud)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Failide ja kataloogide võrdlemise ning ühendamise vahend" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011: Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Veaparandused, Deniabi paketi hooldaja" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windowsi installer" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Abi i18n juures" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Lõikepuhvri paik" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Abi KIO juures" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Cervisia klass CvsIgnoreList" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Klass StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Kataloogide võrdsuse värviga näitamise paik" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Aeglase käivitumise parandamine Windowsis" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext Windowsile" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensiivsed testid, kasutamine ja tagasiside" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Maci toetus" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE4 portimine" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "OS2 port" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ palju tänu kõigile, kes andsid teada vigadest ja pakkusid välja uusi " "mõtteid!" #: main.cpp:196 msgid "Merge the input." msgstr "Liidab sisendi." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Konkreetne põhifail (ühilduvuseks teatud tööriistadega)." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Väljundfail. Eeldab -m. Nt. -o usfail.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Taas väljundfail (ühilduvuseks teatud tööriistadega)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "GUI puudub, kui kõik konfliktid lahenevad ise (vajalik on -o fail)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Konflikte ei lahendata automaatselt (jälle ühilduvuse nimel...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Nähtava nime asendus sisendfailile 1 (baas)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Nähtava nime asendus sisendfailile 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Nähtava nime asendus sisendfailile 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Nähtava nime alternatiivne asendus. See tuleb anda kord iga sisendi jaoks." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Seadistusvõtme tühistamine. Tuleb kasutada iga võtme jaoks eraldi, nt. --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Seadistuste nimekirja ja võtmete kehtivate väärtuste näitamine." #: main.cpp:208 msgid "Use a different config file." msgstr "Muu seadistustefaili kasutamine." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "avatav fail1 (põhifail, kui --base teisiti ei määra)" #: main.cpp:212 msgid "file2 to open" msgstr "avatav fail2" #: main.cpp:213 msgid "file3 to open" msgstr "avatav fail3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Lahendamata konfliktide arv: %1 (neist %2 on tühimärgierinevused)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Väljundit on muudetud.\n" "Kui jätkad, lähevad sinu muudatused kaotsi." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Kõik sisendfailid on binaarselt võrdsed." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Kõik sisendfailid sisaldavad ühesugust teksti." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Failid %1 ja %2 on binaarselt võrdsed.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Failid %1 ja %2 on ühesuguse tekstiga. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Konfliktide koguarv: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Automaatselt lahendatud konfliktide arv: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Lahendamata konfliktide arv: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konfliktid" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<Ühendamise konflikt (ainult tühimärgid)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<Ühendamise konflikt>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Kõik konfliktid pole veel lahendatud.\n" "Faili ei salvestatud.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Järelejäänud konfliktid" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Tekkis realõpu stiili konflikt. Palun vali realõpu stiil käsitsi.\n" "Faili ei salvestatud.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Varukoopia loomine nurjus. Faili ei salvestatud." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Faili salvestamise viga" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Kirjutamise viga." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Väljund" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Muudetud]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Kodeering salvestamisel" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Realõpu stiil:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "UNIX" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Koodek" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Faile võrdlemiseks ei leitud." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3 komponent" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Varukoopia tegemisel nurjus vanema varukoopia kustutamine. \n" "Faili nimi: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Varukoopia tegemisel nurjus ümbernimetamine. \n" "Failide nimed: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Faili staatuse hankimine: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Faili lugemine: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Faili kirjutamine: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Mälu napib" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Kataloogi loomine: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Kataloogi eemaldamine: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Faili eemaldamine: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Nimeviida loomine: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Faili ümbernimetamine: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Faili kopeerimine: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Viga faili kopeerimise operatsioonil: faili avamine lugemiseks nurjus. " "Failinimi: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Viga faili kopeerimise operatsioonil: faili avamine kirjutamiseks nurjus. " "Failinimi: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Viga faili kopeerimise operatsioonil: lugemine nurjus. Failinimi: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Viga faili kopeerimise operatsioonil: kirjutamine nurjus. Failinimi: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Kataloogi lugemine: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Kataloogi uurimine: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Loobu" #: difftextwindow.cpp:403 msgid "Line" msgstr "Rida" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Rida pole kättesaadav" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kodeering:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Ülarida" #: difftextwindow.cpp:1769 msgid "End" msgstr "Lõpp" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Aktiivne seadistus:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Seadistusvõtme viga:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Kasutati võtit --auto, kuid väljundfail pole määratud." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Kataloogide võrdlemisel ignoreeriti võtit --auto." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Salvestamine nurjus." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Nende failide avamine nurjus:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Viga faili avamisel" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Avab dokumendid võrdlemiseks..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Laadi uuesti" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Salvestab ühendamise tulemuse. Kõik konfliktid peavad olema lahendatud!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Salvestab käesoleva dokumendi nimega..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Trükib erinevused" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Väljub rakendusest" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Valitud teksti lõikamine ja asetamine lõikepuhvrisse" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopeerib valitud lõigu lõikepuhvrisse" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Lõikepuhvri sisu asetamine praegusesse asukohta" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Kogu aktiivse akna sisu valimine" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Otsib stringi" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Otsib uuesti stringi" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Lülitab staatusriba sisse/välja" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 seadistamine..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Liigu praegusele erinevusele" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Praegune\n" "erinevus" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Liigu esimesele erinevusele" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Esimene\n" "erinevus" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Liigu viimasele erinevusele" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Viimane\n" "erinevus" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Jätab tühimärkide erinevused vahele, kui \"Tühimärkide näitamine\" ei ole " "sees.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Tühimärkide erinevusi näidatakse isegi siis, kui \"Tühimärkide näitamine\" " "ei ole sees.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Liigu eelmisele erinevusele" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Eelmine\n" "erinevus" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Liigu järgmisele erinevusele" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Järgmine\n" "erinevus" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Liigu eelmisele konfliktile" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Eelmine\n" "konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Liigu järgmisele konfliktile" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Järgmine\n" "konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Liigu eelmisele lahendamata konfliktile" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Eelmine\n" "lahendamata" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Liigu järgmisele lahendamata konfliktile" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Järgmine\n" "lahendamata" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Vali rida/read A-st" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Vali\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Vali rida/read B-st" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Vali\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Vali rida/read C-st" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Vali\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Pärast allikavalikut liigu automaatselt järgmisele lahendamata konfliktile" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automaatselt\n" "järgmine" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Näita erinevusi tühiku- ja tabeldusmärkides" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "Tühimärgid" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Näita tühimärke" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Tühimärkide\n" "erinevus" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Näita reanumbreid" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "Reanumbrid" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Vali A kõikjal" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Vali B kõikjal" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Vali C kõikjal" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Vali A kõigi lahendamata konfliktide korral" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Vali B kõigi lahendamata konfliktide korral" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Vali C kõigi lahendamata konfliktide korral" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Vali A kõigi lahendamata tühimärgikonkfliktide korral" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Vali B kõigi lahendamata tühimärgikonkfliktide korral" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Vali C kõigi lahendamata tühimärgikonkfliktide korral" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Lahenda automaatselt lihtsad konfliktid" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Määra erinevused konfliktideks" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Käivita regulaaravaldisega automaatühendamine" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Lahenda automaatselt ajalookonfliktid" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Jaga erinevused valiku juures" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Liida valitud erinevused" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Näita akent A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Näita akent B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Näita akent C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Fokuseeri järgmisele aknale" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normaalne ülevaade" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A-B ülevaade" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A-C ülevaade" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B-C ülevaade" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Reamurdmine võrdlusakendes" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Lisa käsitsi samasus" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Eemalda kõik käsitsi määratud samasused" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Fokuseeri eelmisele aknale" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Lülita poolitamissuund" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Kataloogi ja teksti poolitamisvaade" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Lülita kataloogi- ja tekstivaadet" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Ühendamise tulemust pole salvestatud." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Salvesta ja välju" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Välju salvestamata" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Ühendamise tulemuse salvestamine nurjus." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Sul on parajasti käsil kataloogide ühendamine. Kas tõesti katkestada?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Faili salvestamine..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Faili salvestamine uue nimega..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Trükkimine ei ole veel võimalik." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Trükkimine..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Valik" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Trükkimine lõpetatud." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Trükkimine katkestati" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Väljumine..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Tööriistariba lülitamine..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Olekuriba lülitamine..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (baas):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fail..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Kataloog..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (lisavõimalus):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Vaheta/kopeeri nimed..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Vaheta %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Kopeeri %1->väljund" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Vaheta %1<->väljund" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Väljund (lisavõimalus):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Seadista..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Otsitav tekst:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Tõstutundlik" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Otsi A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Otsi B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Otsi C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Otsingu väljund" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Otsi" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Regulaaravaldise test" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Automaatühendamise regulaaravaldis:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Automaatühendamise näidisrida:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "Kopeeri automaatühendamise testimiseks rida oma failist." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Sobivuse tulemus:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Ajaloo alguse regulaaravaldis:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Ajaloo alguse näidisrida (alustava kommentaariga):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopeeri oma failist ajaloo alguse rida,\n" "kaasa arvatud alustav kommentaar." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Ajalookirje alguse regulaaravaldis:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Ajaloo sortimisvõtme järjekord:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Ajalookirje alguse näidisrida (alustava kommentaarita):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopeeri oma failist ajalookirje alguse rida,\n" "kuid ilma alustava kommentaarita." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Sorteerimisvõtme tulemus:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Leiti sobivus." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Sobivust ei leitud." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "Regulaaravaldises ei sobi alustavad ja lõpetavad sulud." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode (8-bitine)" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Muuda, kui mitte-ASCII sümboleid ei näidata korrektselt." #: optiondialog.cpp:465 msgid "Configure" msgstr "Seadistamine" #: optiondialog.cpp:531 msgid "Font" msgstr "Font" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Redaktori ja erinevuse väljundi font" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kaldkiri erinevustele" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Valib fondi kaldkirjaversiooni erinevuste näitamiseks.\n" "Kui font ei toeta kaldkirja, ei tee midagi." #: optiondialog.cpp:568 msgid "Color" msgstr "Värv" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Värviseadistused" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Redaktori ja erinevuse vaated:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Esiplaani värv:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Tausta värv:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Erinevuse tausta värv:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Värv A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Värv B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Värv C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Konflikti värv:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Praeguse vahemiku tausta värv:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Praeguse vahemiku erinevuse tausta värv:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Käsitsi määratud samasuse vahemiku värv:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Kataloogi võrdlemise vaade:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Uusima faili värv:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Seda värvi muudetakse alles siis, kui alustad järgmist kataloogide " "võrdlemist." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Vanima faili värv:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Keskmise vanusega faili värv:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Puuduvate failide värv:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Redaktor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Redaktori käitumine" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "TAB lisab tühikud" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Sees: TAB klahvi vajutamine tekitab sobiva hulga tühikuid.\n" "Väljas: lisatakse tabeldusmärk." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "TABi suurus:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automaatne taandus" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Sees: uuel real kasutatakse eelmise rea taandust.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Valiku automaatne kopeerimine" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Sees: iga valik asetatakse otsekohe lõikepuhvrisse.\n" "Väljas: kopeerimiseks tuleb anda selge käsk, nt. CTRL+C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Automaatne tuvastamine" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Määrab realõpu stiili redigeeritud faili salvestamisel.\n" "DOS/Windows: CR+LF; Unix: LF; sealjuures CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Erinevused" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Erinevuse seadistused" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Käsitletakse tühimärkidena." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Numbreid ignoreeritakse" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Reasobivuse juures ignoreeritakse numbreid (sarnane tühimärkide " "ignoreerimisega).\n" "Võib olla abiks numbrilisi andmeid sisaldavate failide võrdlemisel." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ kommentaare ignoreeritakse" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ kommentaare käsitletakse tühimärkidena." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Tõstu ignoreeritakse" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Tõstuerinevusi käsitletakse tühimärgimuutustena. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Eeltöötluse käsk" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "Kasutaja määratud eeltöötlus (vaata lähemalt käsiraamatust)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Ridade sobivuse eeltöötluse käsk:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Seda eeltöötlusvahendit kasutatakse ainult ridade sobivuse leidmisel\n" "(vaata lähemalt käsiraamatust)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Karm uurimine (aeglane)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Lubab välise diff-rakenduse korral võtme --minimal.\n" "Suurte failide analüüs muutub palju aeglasemaks." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "B ja C joondamine 3 sisendfaili korral" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "B ja C võimalikult täpne joondamine kolme sisendfaili võrdlemisel või " "ühendamisel.\n" "Ei ole soovitatav ühendamise korral, sest ühendamine võib osutuda " "keeruliseks.\n" "(Vaikimisi on välja lülitatud.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Ühendamise seadistused" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Automaatse edasiliikumise viivitus (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Automaatse edasiliikumise režiimis näidatakse tulemust määratud aeg ning \n" "siis hüpatakse järgmisele konfliktile. Vahemik: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Infodialoogide näitamine" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Infodialoogi näitamine konfliktide arvu kohta." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Tühimärkide käsitlemine kahe faili ühendamisel:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Käsitsivalik" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Lubab ühendamisalgoritmil ainult tühimärkides seisneva erinevuse korral " "automaatselt valida sisendi." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Tühimärkide käsitlemine kolme faili ühendamisel:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Automaatühendamise regulaaravaldis" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regulaaravaldis ridadele, kus KDiff3 peab automaatselt valima ühe allika.\n" "Kui konflikti sisaldav rida sobib regulaaravaldisega, siis\n" "valitakse - kui võimalik - C, vastasel juhul B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Regulaaravaldisega automaatühendamine ühendamise alustamisel" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Regulaarühendusega automaatühendamine käivitatakse\n" "kohe ühendamise alustamisel.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Versioonikonrolli ajaloo ühendamine" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regulaaravaldis versioonikontrolli ajaloo kirje alguse jaoks.\n" "Tavaliselt leidub seal real võtmesõna \"$Log$\".\n" "Vaikimisi: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Versioonikontrolli ajaloo kirje koosneb mitmest reast.\n" "Siin saab määrata esimese rea (ilma alustava kommentaarita) tuvastamiseks " "mõeldud regulaaravaldise.\n" "Sulgudega saab rühmitada võtmeid, mida tahad kasutada sortimiseks.\n" "Kui see tühjaks jätta, eeldab KDiff3, et ajaloo kirjeid eraldavad tühjad " "read.\n" "Täpsemalt räägib sellest käsiraamat." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ajaloo ühendamise sortimine" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Versioonikontrolli ajaloo sortimine võtmete järgi." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Ajalookirje alguse sortimisvõtmete järjekord:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Kõik ajalookirjete alguse määramiseks mõeldud regulaaravaldistes\n" "kasutatud sulud rühmitavad võtmeid, mida saab tarvitada sortimiseks.\n" "Määra siin võtmete järjekord (need on siin järjekorras alates 1),\n" "kasutades eraldajana koma ',' (nt. \"4,5,6,1,2,3,7\").\n" "Kui see tühjaks jätta, siis midagi ei sordita.\n" "Täpsemalt räägib sellest käsiraamat." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Versioonikontrolli ajaloo ühendamine ühendamise alustamisel" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Versioonikontrolli ajaloo automaatühendamise käivitamine kohe ühendamise " "alustamisel." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Ajalookirjete maks. arv:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Kärpimine pärast määratud arvu. -1 tähendab piirangu puudumist." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Regulaaravaldiste test" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Ebaolulise ühendamise käsk:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Määramise korral käivitatakse see skript\n" "pärast automaatühendamist, kui muid muudatusi ei avastada.\n" "See kutsutakse välja parameetritega: failinimi1 failinimi2 failinimi3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Automaatne salvestamine ja väljumine konfliktideta ühendamisel" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Kui KDiff3 käivitatakse failide ühendamiseks käsurealt ja kõik konfliktid\n" "on lahendatavad kasutaja sekkumiseta, salvestatakse ja lõpetatakse töö\n" "automaatselt.\n" "(Samane käsurea võtmega \"--auto\")" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Kataloog" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Rekursiivsed kataloogid" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Kas analüüsida alamkatalooge või mitte." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Failimustrid:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Failide mustrid, mida analüüsida. \n" "Metamärgid: '*' ja '?'\n" "Mitme mustri määramisel kasuta eraldajana semikoolonit (;)" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Anti-failimustrid:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Failide mustrid, mida analüüsil välja jätta. \n" "Metamärgid: '*' ja '?'\n" "Mitme mustri määramisel kasuta eraldajana semikoolonit (;)" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Anti-kataloogimustrid:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Kataloogide mustrid, mida analüüsil välja jätta. \n" "Metamärgid: '*' ja '?'\n" "Mitme mustri määramisel kasuta eraldajana semikoolonit (;)" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore kasutamine" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Laiendab antimustrit kõigele, mida eiraks CVS.\n" "Kohalike \".cvsignore\" failide abil võib see olla kataloogipõhine." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Peidetud failide ja kataloogide otsimine" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Otsitakse peidetud faile ja katalooge." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Failide ja kataloogide otsimine, mille alguses seisab '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Failiviitade järgimine" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Sees: võrreldakse faili, mille viit osutab.\n" "Väljas: võrreldakse viitu." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Kataloogiviitade järgimine" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Sees: võrreldakse kataloogi, mille viit osutab.\n" "Väljas: võrreldakse viitu." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Tõstutundlik failinimede võrdlemine" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Kataloogide võrdlemisel võrreldakse failide või kataloogide nimesid.\n" "Selle valiku sisselülitamisel peab sobima ka nimede tähesuurus (Windowsis on " "see vaikimisi välja lülitatud, muidu sees)." #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Faili võrdlemise režiim" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binaarvõrdlus" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Iga faili binaarvõrdlus. (vaikimisi)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Täielik analüüs" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Tehakse täielik analüüs, statistikat näidatakse lisaveergudes.\n" "(Aeglasem kui binaarvõrdlus ja eriti aeglane binaarfailide korral.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Suuruse ja muutmiskuupäeva usaldamine (ebaturvaline)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Eeldatakse, et failid on võrdsed, kui muutmiskuupäev ja failipikkus on " "võrdsed.\n" "Ühesuguse sisu, kuid erineva muutmiskuupäevaga faile peetakse erinevaks.\n" "Mõttekas suurte kataloogide või aeglase võrgu korral." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Suuruse ja muutmiskuupäeva usaldamine, kuid muutmiskuupäeva erinemisel " "binaarvõrdluse kasutamine (pole turvaline)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Eeldatakse, et failid on võrdsed, kui muutmiskuupäev ja failipikkus on " "võrdsed.\n" "Kui kuupäevad ei ole võrdsed, aga suurus on, kasutatakse binaarvõrdlust.\n" "Mõttekas suurte kataloogide või aeglase võrgu korral." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Suuruse usaldamine (ebaturvaline)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Eeldatakse, et failid on võrdsed, kui failipikkus on võrdne.\n" "Mõttekas suurte kataloogide või aeglase võrgu korral, kui kuupäev võib " "allalaadimise käigus olla muutunud." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Kataloogide sünkroniseerimine" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Võimaldab salvestada failid mõlemasse kataloogi,\n" "nii et need näevad pärast seda välja ühesugused.\n" "Toimib ainult kahe kataloogi võrdlemisel ilma sihtkohta määramata." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Tühimärkide erinevust ei arvestata" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Kui failid erinevad ainult tühimärkide poolest, peetakse neid võrdseks.\n" "See valik on aktiivne ainult täieliku analüüsi korral." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Ühendamise asemel kopeeritakse uuem (ebaturvaline)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Sisse ei vaadata, võetakse lihtsalt uuem fail.\n" "(Kasuta ainult siis, kui tead, mida teed!)\n" "Toimib ainult kahe kataloogi võrdlemisel." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Failidest tehakse varukoopia (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Kui fail salvestatakse vana faili asemele, ei kustutata vana faili,\n" "vaid sellele antakse uus nimi laiendiga '.orig'." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Lokaale seadistused" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Keel (vajalik taaskäivitus)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Vali GUI stringide keel või \"Auto\".\n" "Keele tegelikuks muutmiseks tuleb KDiff3 sulgeda ja uuesti käivitada." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Kõikjal kasutatakse kodeeringut:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Lubab muuta kõiki kodeeringuid ainult esimest kodeeringut muutes.\n" "Kui vaja on erinevaid määratlusi, lülita välja." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Märkus: kohalik kodeering on " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "A kodeering:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Sisselülitamisel tuvastatakse Unicode (UTF-16 või UTF-8) kodeering.\n" "Kui fail ei ole Unicode kodeeringus, kasutatakse selle asemel valitud " "kodeeringut.\n" "(Unicode tuvastamine sõltub faili esimestest baitidest.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Unicode automaatne tuvastamine" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "B kodeering:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "C kodeering:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Kodeering ühendamisväljundil ja salvestamisel:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Automaatne valik" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Sisselülitamisel kasutatakse sisendfailide kodeeringut.\n" "Kahtluse korral ilmub dialoog, mis laseb kasutajal valida salvestamisel " "kasutatava kodeeringu." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Eelprotsessori failide kodeering:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Paremalt-vasakule keeled" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Mõningaid keeli loetakse ja kirjutatakse paremalt vasakule.\n" "Selle valikuga saab vastavalt muuta näitajat ja redaktorit." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integreerimine" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Integreerimisseadistused" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Ignoreeritavad käsurea võtmed:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Käsurea võtmete nimekiri, mida ignoreeritakse, kui KDiff3 kasutavad teised " "tööriistad.\n" "Mitme väärtuse andmisel tuleb need eraldada semikooloniga (;).\n" "See väldib vigu \"Tundmatu võti\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Väljumine ka klahviga Escape" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Kiire väljumisviis.\n" "Mõeldud neile, kellele on südamelähedane klahv Escape." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Lõimimine ClearCase'iga" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Lõimimine IBM-i Rational ClearCase'iga.\n" "Muudab seosefaili ClearCase'i alamkataloogis \"lib/mgrs\"\n" "(Saab sisse lülitada ainult siis, kui ClearCase'i kataloog \"bin\" asub " "otsinguteel)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Clearcase'i lõimimise tühistamine" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "Taastab vana seosefaili, mis kehtis enne ClearCase'iga lõimimist." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Sobimatu font" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Jätkan oma riskil" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Valin uue fondi" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "See lähtestab kõik valikud, mitte ainult praeguse teema omad." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Eeltöötluse käsk: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Järgmised valitud võimalused võivad muuta andmeid:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Peaaegu kindlasti ei ole see ühendamisel soovitav.\n" "Kas soovid need seadistused tühistada või siiski nendega jätkata?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Ebaturvaline valik ühendamisel" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Kasuta neid valikuid ühendamisel" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Keela ebaturvalised valikud" #: pdiff.cpp:300 msgid "Loading A" msgstr "A laadimine" #: pdiff.cpp:304 msgid "Loading B" msgstr "B laadimine" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Erinevus: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Reaerinevus: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "C laadimine" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Erinevus: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Erinevus: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Reaerinevus: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Reaerinevus: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Kõik sisendfailid sisaldavad ühesugust teksti, aga pole binaarselt võrdsed." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Failid %1 ja %2 sisaldavad ühesugust teksti, aga pole binaarselt võrdsed. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Paistab, et mõned sisendfailid ei ole puhtad tekstifailid.\n" "Arvesta, et KDiff3 ühendamine ei ole mõeldud binaarfailidele.\n" "Jätka oma riskil." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Mõningaid sisendmärke ei saa teisendada korrektseks Unicode'iks.\n" "Võib-olla kasutad vale koodekit (nt. UTF-8 mitte-UTF-8 failide puhul).\n" "Kui sa pole kindel, ära salvesta tulemust. Jätka omal vastutusel.\n" "Mõjutatud sisendfailid asuvad %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Katkesta" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Failide avamine..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Viga faili avamisel" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Valitud teksti lõikamine..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Valitud teksti kopeerimine lõikepuhvrisse..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Lõikepuhvri sisu sisestamine..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Salvesta ja jätka" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Jätka salvestamata" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Otsing lõpetatud." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Otsing lõpetatud" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Erinevuste sisendakendes pole midagi valitud." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Viga käsitsi määratud samasuse vahemiku lisamisel" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "KDiff3 komponenti ei leitud.\n" "Tavaliselt tähendab see paigaldusprobleemi. Palun loe lähtepaketi faili " "README." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Marek Laane" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "bald@smail.ee" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "KDiff&3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 seadistamine" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Peamine tööriistariba" #~ msgid "Directory Merge" #~ msgstr "Kataloogi ühendamine" #~ msgid "Enables/disables the toolbar" #~ msgstr "Lülitab tööriistariba sisse/välja" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "Failid A ja B on binaarselt võrdsed.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "Failid A ja C on binaarselt võrdsed.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "Failid A ja C on ühesuguse tekstiga. \n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "Failid B ja C on binaarselt võrdsed.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "Failid B ja C on ühesuguse tekstiga. \n" #~ msgid "Preserve carriage return" #~ msgstr "Säilitatakse reavahetus" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "Näidatakse kelgutagastusmärke '\\r', kui neid on.\n" #~ "See on abiks erinevatest operatsioonisüsteemidest pärit failide " #~ "võrdlemisel." kdiff3-0.9.97/po/kdiff3.pot0000644000175100001440000015336511626145606014654 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2008-12-08 10:27+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: kdiff3.cpp:167 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:172 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:217 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:366 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:402 msgid "Saving failed." msgstr "" #: kdiff3.cpp:437 pdiff.cpp:1080 pdiff.cpp:1151 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:446 msgid "File Open Error" msgstr "" #: kdiff3.cpp:474 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:476 msgid "Reload" msgstr "" #: kdiff3.cpp:479 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:481 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:483 msgid "Print the differences" msgstr "" #: kdiff3.cpp:485 msgid "Quits the application" msgstr "" #: kdiff3.cpp:487 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:489 msgid "Copies the selected section to the clipboard" msgstr "" #: kdiff3.cpp:491 msgid "Pastes the clipboard contents to actual position" msgstr "" #: kdiff3.cpp:493 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:495 msgid "Search for a string" msgstr "" #: kdiff3.cpp:497 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:502 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:506 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:527 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:527 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:529 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:529 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:531 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:531 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:533 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:534 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:535 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:535 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:537 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:537 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:539 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:539 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:541 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:541 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:543 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:543 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:545 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:545 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:547 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:547 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:548 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:548 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:549 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:549 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:550 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:550 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:552 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:552 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:553 msgid "Show White Space" msgstr "" #: kdiff3.cpp:553 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:555 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:555 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:556 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:557 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:558 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:559 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:560 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:561 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:562 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:563 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:564 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:568 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:570 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:572 msgid "Show Window A" msgstr "" #: kdiff3.cpp:573 msgid "Show Window B" msgstr "" #: kdiff3.cpp:574 msgid "Show Window C" msgstr "" #: kdiff3.cpp:575 kdiff3.cpp:586 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:577 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:578 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:579 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:580 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:581 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:582 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:583 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:588 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:589 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:591 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:593 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:615 kdiff3.cpp:707 kdiff3.cpp:732 kdiff3.cpp:1003 #: kdiff3.cpp:1024 pdiff.cpp:1098 pdiff.cpp:1170 pdiff.cpp:1208 pdiff.cpp:1224 #: pdiff.cpp:1254 pdiff.cpp:1265 directorymergewindow.cpp:739 msgid "Ready." msgstr "" #: kdiff3.cpp:649 pdiff.cpp:1753 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:650 kdiff3.cpp:660 kdiff3.cpp:672 pdiff.cpp:1016 pdiff.cpp:1754 #: pdiff.cpp:1764 directorymergewindow.cpp:407 mergeresultwindow.cpp:303 msgid "Warning" msgstr "" #: kdiff3.cpp:651 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:652 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:660 pdiff.cpp:1764 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:671 pdiff.cpp:1015 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:696 msgid "Saving file..." msgstr "" #: kdiff3.cpp:713 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:715 kreplacements/kreplacements.cpp:620 msgid "Save As..." msgstr "" #: kdiff3.cpp:974 msgid "Exiting..." msgstr "" #: kdiff3.cpp:987 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1008 msgid "Toggle the statusbar..." msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1237 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1361 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1495 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: diff.cpp:250 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:254 msgid "From Clipboard" msgstr "" #: diff.cpp:502 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:542 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1658 diff.cpp:1672 msgid "" "Data loss error:\n" "If it is reproducable please contact the author.\n" msgstr "" #: diff.cpp:1660 diff.cpp:1674 msgid "Severe Internal Error" msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:110 optiondialog.cpp:873 directorymergewindow.cpp:1893 #: directorymergewindow.cpp:1894 directorymergewindow.cpp:3011 msgid "Merge" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "" #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:940 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "For auto merge test copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:459 smalldialogs.cpp:496 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:966 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:452 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:470 optiondialog.cpp:976 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:478 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:486 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:488 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:503 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:510 msgid "OK" msgstr "" #: smalldialogs.cpp:514 kreplacements/kreplacements.h:103 #: kreplacements/kreplacements.cpp:164 kreplacements/kreplacements.cpp:195 msgid "Cancel" msgstr "" #: smalldialogs.cpp:554 smalldialogs.cpp:564 smalldialogs.cpp:585 msgid "Match success." msgstr "" #: smalldialogs.cpp:558 smalldialogs.cpp:568 smalldialogs.cpp:591 msgid "Match failed." msgstr "" #: smalldialogs.cpp:576 msgid "Opening and closing parentheses don't match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "" #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "" #: optiondialog.cpp:603 msgid "Background color:" msgstr "" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A Tab-character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: optiondialog.cpp:776 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:788 msgid "Diff" msgstr "" #: optiondialog.cpp:789 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:813 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:815 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:818 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:823 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:825 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:829 msgid "Ignore case" msgstr "" #: optiondialog.cpp:832 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:836 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:840 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:843 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:847 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:850 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:853 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:858 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:861 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:874 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:889 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:894 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:899 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:901 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:904 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:921 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:912 optiondialog.cpp:926 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:917 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:931 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:944 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:950 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:952 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:957 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:970 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\"-keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:988 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:996 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:998 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1008 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1012 msgid "" "Each parentheses used in the regular expression for the history start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1023 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1025 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1029 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1032 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1036 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1041 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1045 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1051 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1054 msgid "" "When KDiff3 was started for a file-merge from the commandline and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\"." msgstr "" #: optiondialog.cpp:1065 optiondialog.cpp:1066 msgid "Directory Merge" msgstr "" #: optiondialog.cpp:1079 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1081 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1083 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1088 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1094 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1099 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1105 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1110 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1116 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1119 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\"-files this can be directory specific." msgstr "" #: optiondialog.cpp:1124 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1127 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1129 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1133 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1136 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1141 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1144 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1160 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1163 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1167 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1173 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1174 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1177 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1178 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1182 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1183 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1188 msgid "" "Trust the size and date, but use binary comparison if date doesn't match " "(unsafe)" msgstr "" #: optiondialog.cpp:1189 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the date isn't equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1194 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1195 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1203 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1206 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1212 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1215 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1221 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1224 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1229 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1232 msgid "" "When a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig'-extension instead of being deleted." msgstr "" #: optiondialog.cpp:1328 optiondialog.cpp:1329 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1429 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1461 msgid "" "Choose the language of the GUI-strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1479 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1482 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1487 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1491 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1497 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1501 optiondialog.cpp:1510 optiondialog.cpp:1519 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1506 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1515 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1524 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1528 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1531 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1535 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1546 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1549 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1564 msgid "Integration" msgstr "" #: optiondialog.cpp:1565 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1579 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1584 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\"-error." msgstr "" #: optiondialog.cpp:1591 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1594 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape-key." msgstr "" #: optiondialog.cpp:1599 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1602 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase-subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1608 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1611 msgid "" "Restore the old \"map\" file from before doing the Clearcase integration." msgstr "" #: optiondialog.cpp:1692 kreplacements/kreplacements.cpp:794 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: optiondialog.cpp:1696 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1697 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1698 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1733 msgid "This resets all options. Not only those of the current topic." msgstr "" #: main.cpp:187 msgid "kdiff3" msgstr "" #: main.cpp:189 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:190 msgid "(c) 2002-2008 Joachim Eibl" msgstr "" #: main.cpp:197 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:198 msgid "Eike Sauer" msgstr "" #: main.cpp:198 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:199 msgid "Sebastien Fricker" msgstr "" #: main.cpp:199 msgid "Windows installer" msgstr "" #: main.cpp:200 msgid "Stephan Binner" msgstr "" #: main.cpp:200 msgid "i18n-help" msgstr "" #: main.cpp:201 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:201 msgid "Clipboard-patch" msgstr "" #: main.cpp:202 msgid "David Faure" msgstr "" #: main.cpp:202 msgid "KIO-Help" msgstr "" #: main.cpp:203 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:203 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:204 msgid "Andre Woebbeking" msgstr "" #: main.cpp:204 msgid "Class StringMatcher" msgstr "" #: main.cpp:205 msgid "Michael Denio" msgstr "" #: main.cpp:205 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:206 msgid "Manfred Koehler" msgstr "" #: main.cpp:206 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:207 msgid "Sergey Zorin" msgstr "" #: main.cpp:207 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:208 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:208 msgid "GNU-Diffutils" msgstr "" #: main.cpp:209 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:209 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:210 msgid "Michael Schmidt" msgstr "" #: main.cpp:210 msgid "Mac support" msgstr "" #: main.cpp:211 msgid "Valentin Rusu" msgstr "" #: main.cpp:211 main.cpp:212 msgid "KDE4 porting" msgstr "" #: main.cpp:212 msgid "Albert Astals Cid" msgstr "" #: main.cpp:214 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:220 msgid "Merge the input." msgstr "" #: main.cpp:221 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:222 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:223 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:224 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:225 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:226 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:227 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:228 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:229 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:230 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:231 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:232 msgid "Use a different config file." msgstr "" #: main.cpp:235 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:236 msgid "file2 to open" msgstr "" #: main.cpp:237 msgid "file3 to open" msgstr "" #: difftextwindow.cpp:388 directorymergewindow.cpp:2764 msgid "File" msgstr "" #: difftextwindow.cpp:390 msgid "Line" msgstr "" #: difftextwindow.cpp:392 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1721 msgid "Top line" msgstr "" #: difftextwindow.cpp:1731 msgid "End" msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:528 mergeresultwindow.cpp:828 msgid "All input files are binary equal." msgstr "" #: pdiff.cpp:530 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:532 pdiff.cpp:534 pdiff.cpp:536 mergeresultwindow.cpp:832 #: mergeresultwindow.cpp:834 mergeresultwindow.cpp:836 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: pdiff.cpp:533 pdiff.cpp:535 pdiff.cpp:537 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:547 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:1017 msgid "Abort" msgstr "" #: pdiff.cpp:1018 directorymergewindow.cpp:409 msgid "Continue Merging" msgstr "" #: pdiff.cpp:1024 pdiff.cpp:1112 msgid "Opening files..." msgstr "" #: pdiff.cpp:1089 pdiff.cpp:1160 msgid "File open error" msgstr "" #: pdiff.cpp:1192 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1213 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1229 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1755 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1756 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:1958 msgid "Search complete." msgstr "" #: pdiff.cpp:1958 msgid "Search Complete" msgstr "" #: pdiff.cpp:2192 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2192 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize our part!\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: directorymergewindow.cpp:154 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:161 msgid "Link: " msgstr "" #: directorymergewindow.cpp:169 msgid "Size. " msgstr "" #: directorymergewindow.cpp:182 directorymergewindow.cpp:192 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:202 directorymergewindow.cpp:208 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:219 directorymergewindow.cpp:227 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:231 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:241 directorymergewindow.cpp:247 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:376 msgid "Name" msgstr "" #: directorymergewindow.cpp:376 msgid "Operation" msgstr "" #: directorymergewindow.cpp:376 msgid "Status" msgstr "" #: directorymergewindow.cpp:377 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:377 msgid "Solved" msgstr "" #: directorymergewindow.cpp:377 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:377 msgid "White" msgstr "" #: directorymergewindow.cpp:406 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:408 directorymergewindow.cpp:2984 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:566 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:569 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:572 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:575 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:577 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:585 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:587 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:592 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:625 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:647 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:669 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:695 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:700 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:753 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:754 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:755 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:756 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:759 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:928 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:929 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1328 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1807 directorymergewindow.cpp:1813 msgid "To do." msgstr "" #: directorymergewindow.cpp:1881 directorymergewindow.cpp:3015 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1882 directorymergewindow.cpp:3016 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1883 directorymergewindow.cpp:3017 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1884 directorymergewindow.cpp:3018 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1885 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1886 directorymergewindow.cpp:3020 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1887 directorymergewindow.cpp:3021 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1888 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1892 directorymergewindow.cpp:3012 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1893 directorymergewindow.cpp:1894 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1895 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1896 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1922 directorymergewindow.cpp:1951 #: directorymergewindow.cpp:1976 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1922 directorymergewindow.cpp:1951 #: directorymergewindow.cpp:1976 directorymergewindow.cpp:2235 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:2015 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:2015 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:2026 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:2026 directorymergewindow.cpp:2095 #: directorymergewindow.cpp:2127 directorymergewindow.cpp:2175 #: directorymergewindow.cpp:2184 directorymergewindow.cpp:2435 msgid "Error" msgstr "" #: directorymergewindow.cpp:2027 directorymergewindow.cpp:2436 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:2032 directorymergewindow.cpp:2441 msgid "Error." msgstr "" #: directorymergewindow.cpp:2037 directorymergewindow.cpp:2333 #: directorymergewindow.cpp:2373 msgid "Done." msgstr "" #: directorymergewindow.cpp:2060 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2095 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2127 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2142 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2147 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2148 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2149 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2175 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2184 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2235 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2295 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2297 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2298 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2299 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2333 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2340 directorymergewindow.cpp:2554 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2388 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2388 directorymergewindow.cpp:2391 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2401 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2435 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2467 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2474 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2476 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2491 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2510 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2520 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2546 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2549 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2572 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2582 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2593 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2599 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2619 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2645 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2651 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2660 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2678 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2694 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2704 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2729 directorymergewindow.cpp:2839 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2733 directorymergewindow.cpp:2764 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2733 msgid "Type" msgstr "" #: directorymergewindow.cpp:2733 msgid "Size" msgstr "" #: directorymergewindow.cpp:2734 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2734 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2734 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2781 msgid "not available" msgstr "" #: directorymergewindow.cpp:2801 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2804 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2810 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2818 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2824 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2891 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2978 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2979 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2980 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2981 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2982 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2983 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2987 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2988 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2989 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2990 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2991 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2996 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2996 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2997 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2998 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2998 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2999 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2999 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:3000 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:3000 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:3004 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:3005 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:3007 directorymergewindow.cpp:3014 msgid "Do Nothing" msgstr "" #: directorymergewindow.cpp:3008 msgid "A" msgstr "" #: directorymergewindow.cpp:3009 msgid "B" msgstr "" #: directorymergewindow.cpp:3010 msgid "C" msgstr "" #: directorymergewindow.cpp:3019 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3022 msgid "Merge to A && B" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: kreplacements/kreplacements.h:102 msgid "Continue" msgstr "" #: kreplacements/kreplacements.h:104 kreplacements/kreplacements.cpp:637 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:183 kreplacements/kreplacements.cpp:345 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:187 kreplacements/kreplacements.cpp:721 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:191 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:302 rc.cpp:12 msgid "&File" msgstr "" #: kreplacements/kreplacements.cpp:303 msgid "&Edit" msgstr "" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:304 rc.cpp:15 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:307 rc.cpp:24 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:308 rc.cpp:27 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:309 rc.cpp:30 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:310 rc.cpp:33 msgid "&Window" msgstr "" #: kreplacements/kreplacements.cpp:311 msgid "&Settings" msgstr "" #: kreplacements/kreplacements.cpp:312 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:359 msgid "&About" msgstr "" #: kreplacements/kreplacements.cpp:375 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:389 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:494 kreplacements/kreplacements.cpp:503 #: rc.cpp:18 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:495 kreplacements/kreplacements.cpp:504 #: rc.cpp:21 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:603 msgid "Open" msgstr "" #: kreplacements/kreplacements.cpp:612 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:629 msgid "Print..." msgstr "" #: kreplacements/kreplacements.cpp:645 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:653 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:661 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:669 msgid "Select All" msgstr "" #: kreplacements/kreplacements.cpp:677 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:685 msgid "Show &Statusbar" msgstr "" #: kreplacements/kreplacements.cpp:693 #, kde-format msgid "&Configure %1..." msgstr "" #: kreplacements/kreplacements.cpp:705 kreplacements/kreplacements.cpp:713 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:728 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:736 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:756 msgid "Select Font" msgstr "" #: kreplacements/kreplacements.cpp:798 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:799 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:799 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1138 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1141 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1141 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1141 msgid "Exit" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:970 #: mergeresultwindow.cpp:984 mergeresultwindow.cpp:996 #: mergeresultwindow.cpp:1008 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:301 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:830 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:833 mergeresultwindow.cpp:835 #: mergeresultwindow.cpp:837 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:843 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:844 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:845 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:847 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1714 msgid "" msgstr "" #: mergeresultwindow.cpp:1722 msgid "" msgstr "" #: mergeresultwindow.cpp:1724 mergeresultwindow.cpp:2498 msgid "" msgstr "" #: mergeresultwindow.cpp:2706 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2708 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2720 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2720 mergeresultwindow.cpp:2761 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2761 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3091 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3103 mergeresultwindow.cpp:3256 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3110 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3203 mergeresultwindow.cpp:3205 #: mergeresultwindow.cpp:3207 msgid "Codec from" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:3 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:6 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:9 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:36 msgid "Main Toolbar" msgstr "" #: rc.cpp:37 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:38 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" kdiff3-0.9.97/po/eo/0000755000175100001440000000000011626145654013353 5ustar joachimuserskdiff3-0.9.97/po/eo/kdiff3plugin.po0000644000175100001440000000374411626145611016301 0ustar joachimusers# Translation of kdiff3plugin into esperanto. # Axel Rousseau , 2009. # msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-11-15 12:06+0100\n" "Last-Translator: Axel Rousseau \n" "Language-Team: esperanto \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: pology\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/eo/CMakeLists.txt0000644000175100001440000000016311626145611016104 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(eo ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/eo/kdiff3.po0000644000175100001440000016216611626145611015066 0ustar joachimusers# Translation of kdiff3 into esperanto. # Axel Rousseau , 2009. # msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-11-15 12:06+0100\n" "Last-Translator: Axel Rousseau \n" "Language-Team: esperanto \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: pology\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Daŭrigi" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Rezigni" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Forlasi" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Bone" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Helpo" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Aprioraĵoj" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Dosiero" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Redakti" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Dosierujo" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "Fe&nestro" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "A&gordo" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Helpo" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Pri" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "&Aŭtoro" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Dankon al" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Malfermi" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Konservi" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Konservi kiel..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Presi..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Eltondi" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopii" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Alglui" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Elekti ĉion" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Montri ilobreton" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Agordi %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Trovi" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Trovi sekvan" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Elekti tiparon" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignori" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Finu" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Eraro okazis dum legado de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nomo" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operacio" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stato" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Averto" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Reserĉi" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Preta." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Mergi" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Eraro" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Eraro." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Farita." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipo" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Grandeco" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Dosiero" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nenion fari" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 #, fuzzy #| msgid "Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Eligo" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikto" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Rezigni" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linio" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kodigo:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fino" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "Reŝargi" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Finas la programon" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Eltondos la elektaĵon kaj enpoŝigos ĝin" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopios la apartigatan regionon poŝen" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Elpoŝigos la poŝan enhavon al la aktuala pozicio" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "(Mal)ŝaltos la statbreton" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Konservante dosieron..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Konservante dosieron kun nova dosiernomo..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "Presante..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Elektaĵo" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Finante..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Inversigante ilobreton..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Inversigante la statobreton..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Dosiero..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Agordu..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&Bone" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Usklecodistinga" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Serĉi" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "Bone" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unikodo" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "Agordi" #: optiondialog.cpp:531 msgid "Font" msgstr "Tiparo" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Koloro" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Malfona koloro:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Fona koloro:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Redaktilo" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "Fe&nestro" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Dosierujo" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Ĉesigi" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Eltondanta elekton..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Kopianta elekton al tondujo..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Enmetanta tondujan enhavon..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Axel Rousseau" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "axel@esperanto-jeunes.org" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Ĉefa ilobreto" kdiff3-0.9.97/po/README0000644000175100001440000001531711626145606013634 0ustar joachimusersREADME for KDiff3-Internationalisation (i18n) ============================================= Author: Joachim Eibl 2004 This text is for you, if you might want to help translating KDiff3 or just want to learn how this i18n-thing works. grep "Language-Team" *.po az Azerbaijani ca LANGUAGE da Danish de Deutsch en_GB British English es espaniol et Estonian fr French hu Hungarian it Italian nl Nederlands pl Polish pt_BR Brazilian Portuguese pt Portuguese ro Romanian ru Russian sr Serbian sv Svenska ta tr Türkçe zh_CN zh_CN Thanks to all translators! The program was written with English as main language. But to allow automatic translation of messages, every translatable text in the program was written as i18n("translatable"). i18n() is a translator-function. If a translation table exists, at runtime the function looks for the given string in that table and returns the translation. The translation-table is created in 3 steps: 1. First a template-translation table kdiff3.pot should be created: Usually via xgettext --keyword=i18n --keyword=I18N_NOOP -C -o ../po/kdiff3.pot *.cpp *.h It contains all translatable strings of the program, but no translations. (xgettext is usually part of package gettext-devel) Better to get version from kde svn: wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/templates/messages/extragear-utils/kdiff3.pot wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/templates/messages/extragear-utils/kdiff3plugin.pot 2. Translators create a translation for a specific language. Because we don't want to modify the template now, we'll create a copy for each language. e.g.: cp kdiff3.pot de.po Using KBabel we can comfortably edit the translated strings. e.g.: kbabel de.po 3. The last step is to create a fast lookup-table (*.gmo) from the po-file via msgfmt, but this happens automatically during the build process. (If a new po-file was added: make -f Makefile.cvs; configure; make) Before starting to translate make sure nobody else is already doing it. It would be a pity, if your precious time is wasted. Look at http://i18n.kde.org/, send a message to the translation team coordinator for your language, and tell them that you want to translate KDiff3. He'll inform you if you should proceed. Also read the other docs on that site. ============ The following is for my own memory and for those who really want to learn dirty tricks and details: The script "update_po_dirs" does all in here automatically. Read on if you want details. The KDE-i18n team stores their results in SVN. But I would like to have an independent copy of all translations in the po-directory of the source package. Actually it's just copying and renaming, but simplified with these commands: First fetch all available translations from the SVN-repository (access via websvn and wget) wget http://websvn.kde.org/*checkout*/trunk/l10n/subdirs for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3.po -O $i.po; done This was the explanation for translations within KDE. But KDiff3 can also be compiled and run without KDE: Since Qt was used for KDiff3, the first part is quite the same: Only the fast lookup-table (*.qm-files) must be created with $QTDIR/bin/msg2qm (instead of msgfmt). ($QTDIR/tools/msg2qm in the "qt3-devel-tools"-package)) Still one detail isn't right: Some strings are not translated, because under KDE their translation is within KDE-libs or within Qt. But the translations are available: For Qt-strings in $QTDIR/translations (already as .qm-files) For KDE-libs in the SVN-repository, where we can reuse the previous trick to get all kdelibs*.po-files: for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/kdelibs/kdelibs4.po -O kdelibs_$i.po; done Finally the program must only read the correct translation tables: QTranslator kdiff3Translator( 0 ); kdiff3Translator.load( QString("kdiff3_")+QTextCodec::locale(), translationDir ); app.installTranslator( &kdiff3Translator ); QTranslator qtTranslator( 0 ); qtTranslator.load( QString("qt_")+QTextCodec::locale(), translationDir ); app.installTranslator( &qtTranslator ); QTranslator kdelibsTranslator( 0 ); kdelibsTranslator.load( QString("kdelibs_")+QTextCodec::locale(), translationDir ); app.installTranslator( &kdelibsTranslator ); This should do the job, if the translation-tables can be found. The difficult part is: Where to search for the files, because this depends on where the program was installed. (I didn't solve this puzzle yet.) Because it's too much effort to copy all kdelibs*.po-files along: Here is a little info about how to extract only the needed strings and to create the qm-files. Steps 1-3 are obsolete for translations that are up to date because kreplacements.pot is now in kde-svn-repository. 1. Only src/kreplacements/kreplacements.cpp contains strings, that were not covered by the normal translations. Hence a special pot-file is needed. xgettext --keyword=i18n --keyword=I18N_NOOP -C ../src/kreplacements/kreplacements.cpp -o kreplacements.pot (xgettext is usually part of package gettext-devel) 2. Take only needed strings and translations from kdelibs*.po: msgmerge --no-fuzzy-matching kdelibs_de.po kreplacements.pot >kreplacements_de.po ("msgmerge" and "msgcat" are part of the "gettext-tools"-package.) 3. Concatenate the normal de.po and kreplacements_de.po: msgcat --use-first de.po kreplacements_de.po >kdiff3_de.po The resulting file is huge, but most stuff is commented out. 4. Finally create the fast lookup table (msg2qm is from "qt3-devel-tools"-package): $QTDIR/bin/msg2qm kdiff3_de.po kdiff3_de.qm 5. The intermediate files can then be deleted. Creating the directory structure needed for KDE4 and cmake. for i in *.po; do echo $i; export j=`echo $i | sed s/.po//`; echo $j; md $j; cp $j.po $j/kdiff3.po; sed s/xx/$j/ CMakeLists_xx.txt >$j/CMakeLists.txt ; done (For each po-file create the subdir, copy outer po-file to subdir/kdiff3.po and create a CMakeLists.txt file.) ls */kdiff3.po | sed 's/\(.*\)\/.*/add_subdirectory(\1)/' >CMakeLists.txt kdiff3-0.9.97/po/sk/0000755000175100001440000000000011626145654013365 5ustar joachimuserskdiff3-0.9.97/po/sk/kdiff3plugin.po0000644000175100001440000000377111626145607016320 0ustar joachimusers# translation of kdiff3plugin.po to Slovak # Richard Fric , 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-04-26 14:31+0200\n" "Last-Translator: Richard Fric \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/sk/CMakeLists.txt0000644000175100001440000000016311626145607016123 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(sk ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/sk/kdiff3fileitemactionplugin.po0000644000175100001440000000420511626145607021226 0ustar joachimusers# translation of kdiff3fileitemactionplugin.po to Slovak # Richard Fric , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-08 13:12+0200\n" "Last-Translator: Richard Fric \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "" #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/sk/kdiff3.po0000644000175100001440000015731411626145607015104 0ustar joachimusers# translation of kdiff3.po to Slovak # Richard Fric , 2006, 2009. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2006-09-15 18:02+0200\n" "Last-Translator: Richard Fric \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "" #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "" #: directorymergewindow.cpp:358 msgid "Name" msgstr "" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "" #: directorymergewindow.cpp:358 msgid "Status" msgstr "" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "" #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "" #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "" #: directorymergewindow.cpp:2989 msgid "A" msgstr "" #: directorymergewindow.cpp:2990 msgid "B" msgstr "" #: directorymergewindow.cpp:2991 msgid "C" msgstr "" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 msgid "Line" msgstr "" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "" #: difftextwindow.cpp:1769 msgid "End" msgstr "" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "" #: kdiff3.cpp:479 msgid "Reload" msgstr "" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "" #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "" #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "" #: kdiff3.cpp:956 msgid "Selection" msgstr "" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "" #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "" #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "" #: smalldialogs.cpp:372 msgid "Search A" msgstr "" #: smalldialogs.cpp:377 msgid "Search B" msgstr "" #: smalldialogs.cpp:382 msgid "Search C" msgstr "" #: smalldialogs.cpp:387 msgid "Search output" msgstr "" #: smalldialogs.cpp:392 msgid "&Search" msgstr "" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "" #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "" #: optiondialog.cpp:603 msgid "Background color:" msgstr "" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" kdiff3-0.9.97/po/ro/0000755000175100001440000000000011626145654013370 5ustar joachimuserskdiff3-0.9.97/po/ro/kdiff3plugin.po0000644000175100001440000000475111626145605016320 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Sergiu Bivol , 2008. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2008-12-19 17:21+0200\n" "Last-Translator: Sergiu Bivol \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Compară cu %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Combină cu %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Salvează „%1” pentru mai tîrziu" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Combinare în 3 direcții cu bază" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Comparare cu..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Curăță lista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Compară" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparare în 3 direcții" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Despre modulul de meniu KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Modul de meniu KDiff3: Drept de autor (C) 2008 Joachim Eibl\n" "Pagina web KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 #, fuzzy #| msgid "About KDiff3 menu plugin ..." msgid "About KDiff3 Menu Plugin" msgstr "Despre modulul de meniu KDiff3..." kdiff3-0.9.97/po/ro/CMakeLists.txt0000644000175100001440000000016311626145605016124 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ro ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ro/kdiff3.po0000644000175100001440000017354111626145605015105 0ustar joachimusers# translation of @PACKAGE.po to @LANGUAGE # Copyright (C). # # Claudiu Costin , 2003. # Sergiu Bivol , 2008, 2009. msgid "" msgstr "" "Project-Id-Version: @PACKAGE\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2009-08-04 13:51+0300\n" "Last-Translator: Sergiu Bivol \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "20)) ? 1 : 2;\n" #: kreplacements/kreplacements.h:105 #, fuzzy msgid "Continue" msgstr "Continuare" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Renunță" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 #, fuzzy msgid "Quit" msgstr "Termină" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 #, fuzzy msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Ajutor" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Implicite" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy msgid "&File" msgstr "&Fișier" #: kreplacements/kreplacements.cpp:297 #, fuzzy msgid "&Edit" msgstr "&Editează" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 #, fuzzy msgid "&Directory" msgstr "Director" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 #, fuzzy msgid "&Merge" msgstr "combinație" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Fereastră" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "&Configurări" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Ajutor" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Despre" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Mulțumiri" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 #, fuzzy msgid "Open" msgstr "Deschidere" #: kreplacements/kreplacements.cpp:606 #, fuzzy msgid "Save" msgstr "Salvează" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Salvare ca..." #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "Tipărește..." #: kreplacements/kreplacements.cpp:639 #, fuzzy msgid "Cut" msgstr "Decupare" #: kreplacements/kreplacements.cpp:647 #, fuzzy msgid "Copy" msgstr "Copiere" #: kreplacements/kreplacements.cpp:655 #, fuzzy msgid "Paste" msgstr "Lipire" #: kreplacements/kreplacements.cpp:663 #, fuzzy msgid "Select All" msgstr "Selectează tot" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Afișează bara de unelte" #: kreplacements/kreplacements.cpp:679 #, fuzzy #| msgid "Show &Statusbar" msgid "Show &Status Bar" msgstr "Afișează bara de &stare" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configurează %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy msgid "About" msgstr "Despre:" #: kreplacements/kreplacements.cpp:722 #, fuzzy msgid "Find" msgstr "Caută" #: kreplacements/kreplacements.cpp:730 #, fuzzy msgid "Find Next" msgstr "Caută următorul" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Selectare font" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "Ignore" msgstr "Ignorat" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Ieșire" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "Din clipboard" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "" #: directorymergewindow.cpp:143 #, fuzzy msgid "Link: " msgstr "Legătură" #: directorymergewindow.cpp:151 #, fuzzy msgid "Size. " msgstr "Mărime " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "" #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Eroare la citirea din %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Denumire" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operație" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stare" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Nesoluționat" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Soluționat" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "" #: directorymergewindow.cpp:359 msgid "White" msgstr "Alb" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Avertisment" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Recitire" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Deschiderea directoarelor a eșuat:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Directorul A „%1” nu există sau nu este un director.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Directorul B „%1” nu există sau nu este un director.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Directorul C „%1” nu există sau nu este un director.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Eroare la deschiderea directorului" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Avertizare parametru" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Scanare directoare..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Citire director A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Citire director B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Citire director C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Verificați permisiunile subdirectoarelor." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Gata." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Starea comparării directoarelor" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Numărul de subdirectoare:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Numărul de fișiere egale:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Numărul de fișiere diferite:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Numărul de combinări manuale:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Aceasta afectează toate operațiile de combinare." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Procesare " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "De făcut." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copiază A în B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copiază B în A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Șterge A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Șterge B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Șterge A și B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Șterge (dacă există)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Combinație" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Combină (manual)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Această operație nu este posibilă momentan." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operație imposibilă" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Eroare program" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "A intervenit o eroare în timpul copierii.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Eroare" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Eroare de combinare" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Eroare." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Gata." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Nesalvat." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Execută" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulează" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "În curs..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "" #: directorymergewindow.cpp:2415 #, fuzzy, kde-format msgid "delete( %1 )" msgstr "Ș&terge" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "" #: directorymergewindow.cpp:2564 #, fuzzy, kde-format msgid "copy( %1 -> %2 )" msgstr "C&opiază" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, fuzzy, kde-format msgid "rename( %1 -> %2 )" msgstr "&Redenumire" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Eroare la crearea directorului." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Dest" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Dir" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tip" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Dimensiune" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atrib" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Ultima modificare" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destinație-legătură" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy msgid "File" msgstr "Fișier:" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "indisponibil" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Dest): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Bază): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Dest): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Dest): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Dest: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Compară fișierul ales" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Arată fișiere identice" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Fișiere\n" "identice" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Arată fișiere diferite" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nu fă nimic" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Suport Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portarea KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "fișier2 de deschis" #: main.cpp:213 msgid "file3 to open" msgstr "fișier3 de deschis" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" #: mergeresultwindow.cpp:853 #, fuzzy msgid "Conflicts" msgstr "conflicte" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 #, fuzzy msgid "Output" msgstr "Rezultat" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 #, fuzzy msgid "[Modified]" msgstr "Modificat" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy msgid "Conflict" msgstr "conflicte" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Se obține starea fișierului: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Se citește fișierul: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Se scrie fișierul: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Memorie insuficientă" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Se creează dosarul: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Se elimină dosarul: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Se elimină fișierul: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Se creează legătura simbolică: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Se redenumește fișierul: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Se copiază fișierul: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Se citește dosarul: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Se enumeră dosarul: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Renunță" #: difftextwindow.cpp:403 msgid "Line" msgstr "Linie" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Linia de vîrf" #: difftextwindow.cpp:1769 msgid "End" msgstr "Sfîrșit" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configurație actuală:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Eroare opțiune de configurare:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Opțiunea --auto utilizată, dar niciun fișier de ieșire specificat." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Opțiunea --auto ignorată pentru compararea directoarelor." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Salvarea a eșuat." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Deschiderea acestor fișiere a eșuat:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Eroare la deschiderea fișierului" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Deschide documente pentru comparare..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Reîncarcă" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Salvează rezultatul combinării. Toate conflictele trebuiesc rezolvate!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Salvează documentul actual ca..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Tipărește diferențele" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Iese din aplicație" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Taie secțiunea selectată și o pune în clipboard" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copiază secțiunea selectată în clipboard" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Lipește conținutul clipboard-ului la poziția curentă" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Selectează tot din fereastra curentă" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Caută un șir" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Activează/dezactivează bara de stare" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configurare KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Delta\n" "actuală" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Mergi la prima delta" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Prima\n" "delta" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Mergi la ultima delta" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Ultima\n" "delta" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Mergi la delta precedentă" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Delta\n" "prec." #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Mergi la delta următoare" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Delta\n" "următ." #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Mergi la conflictul precedent" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflict\n" "precedent" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Mergi la conflictul următor" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflict\n" "următor" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Mergi la conflictul nerezolvat precedent" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Nerezolvat\n" "precedent" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Mergi la conflictul nerezolvat următor" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Nerezolvat\n" "următor" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Alege liniile din A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Alege\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Alege liniile din B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Alege\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Alege liniile din C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Alege\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Mergi automat la următorul conflict nerezolvat după alegerea sursei" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Următor\n" "automat" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Arată caracterele de spațiere și tabulare pentru diferențe" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Caractere\n" "albe" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Arată spațiile albe" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Delta\n" "albe" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Arată numerele liniilor" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Numere\n" "de linii" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Alege A peste tot" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Alege B peste tot" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Alege C peste tot" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Alege A pentru toate conflictele nerezolvate" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Alege B pentru toate conflictele nerezolvate" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Alege C pentru toate conflictele nerezolvate" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Alege A pentru toate conflictele de spațiu alb nerezolvate" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Alege B pentru toate conflictele de spațiu alb nerezolvate" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Alege C pentru toate conflictele de spațiu alb nerezolvate" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Rezolvă automat conflictele simple" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Stabilește deltele la conflicte" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Desparte Diff la selecție" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Arată fereastra A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Arată fereastra B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Arată fereastra C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Focalizează fereastra următoare" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Sumar normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Sumar A vs. B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Sumar A vs. C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Sumar B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Focalizează fereastra precedentă" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Comută orientarea despărțirii" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Rezultatul combinării nu a fost salvat." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Salvează și ieși" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Ieși fără a salva" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Salvarea rezultatului combinării a eșuat." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Salvare fișier..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Se salvează fișierul cu un nume nou..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "Tipărire încheiată" #: kdiff3.cpp:815 msgid "Printing..." msgstr "Se tipărește..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selecție" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Tipărire încheiată" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Tipărire abandonată." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Ieșire..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Se comută bara de unelte..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Se comută bara de stare..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fișier..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, fuzzy, kde-format msgid "Swap %1<->%2" msgstr " Swap: %1 / %2 " #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configurare..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Căutare text:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Sensibil la registru" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Caută A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Caută B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Caută C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Caută în ieșire" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Caută" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicod" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "Configurează" #: optiondialog.cpp:531 msgid "Font" msgstr "Font" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "Culoare" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Culoare prim-plan:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Culoare fundal:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Culoare A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Culoare B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Culoare C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Culoare conflict:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportament editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 #, fuzzy msgid "Tab size:" msgstr "Mărime &TAB:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "&Fereastră" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "Selectare automată" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Alegere manuală" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy msgid "Directory" msgstr "Director" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronizează dosare" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Configurări regionale" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Selectare automată" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "Abandonează" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "" #: pdiff.cpp:1152 pdiff.cpp:1223 #, fuzzy msgid "File open error" msgstr "Eroare la deschiderea fișierului" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Tai selecția..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Copiez selecția în clipboard..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Inserez conținutul clipboard-ului..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "" #: pdiff.cpp:2018 msgid "Search complete." msgstr "" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Sergiu Bivol" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "sergiu@ase.md" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 #, fuzzy msgid "&KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 #, fuzzy msgid "Main Toolbar" msgstr "Bare de unelte" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Claudiu Costin" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "claudiuc@kde.org" kdiff3-0.9.97/po/ca/0000755000175100001440000000000011626145654013333 5ustar joachimuserskdiff3-0.9.97/po/ca/kdiff3plugin.po0000644000175100001440000000577411626145605016271 0ustar joachimusers# Translation of kdiff3plugin.po to Catalan # Copyright (C) 2011 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2 or later # # Joan Maspons , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-26 22:06+0200\n" "Last-Translator: Joan Maspons \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Compara amb %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Fusiona amb %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Desa «%1» per després" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Fusió a tres bandes amb base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Compara amb..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Neteja la llista" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Compara" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Comparació a 3 bandes" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Quant al connector del menú del KDiff3..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Connector del menú del KDiff3: Copyright (C) 2008 Joachim Eibl\n" "Lloc web del KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Ús de l'extensió de menú contextual:\n" "Per una comparació simple de dos fitxers seleccionats escolliu «Compara».\n" "Si l'altre fitxer és en algun altra lloc, «Desa» el primer fitxer per " "després i apareixerà al submenú «Compara amb...». Després, useu «Compara " "amb» al segon fitxer.\n" "Per una fusió a tres bandes, primer «Desa» el fitxer base, després la branca " "a fusionar, i després «Fusió a tres bandes» a l'altra branca que s'usarà com " "a destinació.\n" "El mateix també s'aplica a la comparació i fusió de directoris." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Quant al connector del menú del KDiff3" kdiff3-0.9.97/po/ca/CMakeLists.txt0000644000175100001440000000016311626145605016067 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ca ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ca/kdiff3fileitemactionplugin.po0000644000175100001440000000620011626145605021167 0ustar joachimusers# Translation of kdiff3fileitemactionplugin.po to Catalan # Copyright (C) 2011 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2 or later. # # Joan Maspons , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-29 00:17+0200\n" "Last-Translator: Joan Maspons \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Compara amb %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Fusiona amb %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Desa «%1» per després" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Fusió a tres bandes amb base" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Compara amb ..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Neteja la llista" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Compara" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Comparació a 3 bandes" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Quant al connector del menú del KDiff3 ..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Connector d'accions de fitxer del KDiff3: Copyright (C) 2011 Joachim Eibl\n" "Lloc web del KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Ús de l'extensió de menú contextual:\n" "Per una comparació simple de dos fitxers seleccionats escolliu «Compara».\n" "Si l'altre fitxer és en algun altra lloc, «Desa» el primer fitxer per " "després. Apareixerà al submenú «Compara amb ...». Després useu «Compara amb» " "al segon fitxer.\n" "Per una fusió a tres bandes, primer «Desa» el fitxer base, després la branca " "a fusionar i després «Fusió a tres bandes amb base» a l'altra branca que " "s'usarà com a destinació.\n" "El mateix també s'aplica a la comparació i fusió de directoris." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Quant al connector d'accions de fitxer del KDiff3" kdiff3-0.9.97/po/ca/kdiff3.po0000644000175100001440000024711711626145605015051 0ustar joachimusers# Translation of kdiff3.po to Catalan # Copyright (C) 2011 This_file_is_part_of_KDE # This file is distributed under the license LGPL version 2 or later # # Joan Maspons , 2011. # Josep Ma. Ferrer , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-26 22:05+0200\n" "Last-Translator: Joan Maspons \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continua" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Cancel·la" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Surt" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "D'acord" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Ajuda" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Valors per defecte" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Fitxer" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Edita" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Directori" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Moviment" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Vista de d&iferències" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Fusió" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Finestra" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "A&rranjament" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "A&juda" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Quant a" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Gràcies a" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operació de fusió de l'element actual" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operació de sincronització de l'element actual" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Obre" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Desa" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Desa com a..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Imprimeix..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Talla" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copia" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Enganxa" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Selecciona-ho tot" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostra barra d'eines" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Mostra la barra d'estat" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configura %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Quant a" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Cerca" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Cerca el següent" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Tria el tipus de lletra" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Heu seleccionat un tipus de lletra d'amplada variable.\n" "\n" "Com que aquest programa no usa correctament tipus de lletra\n" "d'amplada variable, podríeu experimentar problemes mentre editeu.\n" "\n" "Voleu continuar o seleccionar un altre tipus de lletra?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Tipus de lletra incompatible." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continua sota la meva responsabilitat" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Tria un altre tipus de lletra" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Per més documentació, vegeu el menú «Ajuda» o el subdirectori doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Ús del KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignora" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Surt" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Ha fallat l'escriptura de dades del porta-retalls al fitxer temporal." #: diff.cpp:255 msgid "From Clipboard" msgstr "Des del porta-retalls" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "S'esperava un espai després de tancar la marca de cometes." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Les marques de cometes no coincideixen." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Marca de cometes inesperada en l'argument." #: diff.cpp:503 msgid "No program specified." msgstr "No s'ha especificat cap programa." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Pot ser que el preprocessament hagi fallat. Comproveu aquesta ordre:\n" "\n" " %1\n" "\n" "L'ordre de preprocessament es deshabilitarà ara." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Pot ser que el preprocessament de l'encaix de línies hagi fallat. Comproveu " "aquesta ordre:\n" "\n" " %1\n" "\n" "Ara es deshabilitarà l'ordre de preprocessament d'encaix de línies." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Error de pèrdua de dades:\n" "Si us plau, si és replicable contacteu amb l'autor.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Error intern sever" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Barreja d'enllaços i fitxers normals." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Enllaç: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Mida. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data i mida: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Ha fallat la creació de la copia temporal de %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Ha fallat l'obertura de %1." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "S'està comparant el fitxer..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Error llegint des de %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nom" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operació" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Estat" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "No resolt" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Resolt" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "No blanc" #: directorymergewindow.cpp:359 msgid "White" msgstr "Blanc" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Actualment esteu fent una fusió de directoris. Segur que voleu interrompre " "la fusió i tornar a explorar el directori?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Atenció" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Torna a explorar" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continua fusionant" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Ha fallat l'obertura dels directoris:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "El directori A «%1» no existeix o no és un directori.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "El directori B «%1» no existeix o no és un directori.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "El directori C «%1» no existeix o no és un directori.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Error en obrir el directori" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Quan es fusionen tres directoris, el directori de destí ha de ser diferent " "que l'A o el B.\n" "Torneu-ho a comprovar avanç de continuar." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Alerta de paràmetres" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "S'estan explorant el directoris..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "S'està llegint el directori A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "S'està llegint el directori B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "S'està llegint el directori C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Alguns subdirectoris no eren llegibles a" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Comproveu els permisos dels subdirectoris." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Preparat." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Estat de la comparació de carpetes" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Nombre de subdirectoris:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Nombre de fitxers iguals:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Nombre de fitxers diferents:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Nombre de fusions manuals:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Això afecta totes les operacions de fusió." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "S'estan canviant totes les operacions de fusionat" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "S'està processant " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Pendent." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copia A a B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copia B a A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Esborra A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Esborra B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Esborra A i B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Fusiona a A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Fusiona a B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Fusiona a A i B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Esborra (si existeix)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Fusiona" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Fusiona (manualment)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Error: tipus de fitxer en conflicte" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Error: canviat i esborrat" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Error: les dates són iguals però els fitxers no." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Actualment aquesta opció no és possible." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operació no possible" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Això no hauria de passar mai: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Si us plau, si sabeu com replicar això contacteu amb l'autor del programa." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Error del programa" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Hi ha hagut un error en copiar.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Error" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Error de fusionat" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Error." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Fet." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "No desat." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operació de fusionat desconeguda. (Això no hauria de passar mai!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operació de fusionat desconeguda." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "La fusió està a punt de començar.\n" "\n" "Escolliu «Fes-ho» si heu llegit les instruccions i sabeu que esteu fent.\n" "Si escolliu «Simula-ho» veureu què passaria.\n" "\n" "Sigueu conscient que aquest programa encara està en fase de proves i no hi " "ha CAP GARANTIA! Feu copies de seguretat de les vostres dades vitals!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "S'està iniciant la fusió" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Fes-ho" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simula-ho" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "L'element ressaltat té un tipus diferent als diferents directoris. " "Seleccioneu què fer." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Les dates de modificació dels fitxers són iguals però els fitxers no ho són. " "Seleccioneu què fer." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "L'element ressaltat va ser canviat en un directori i esborrat a l'altre. " "Seleccioneu què fer." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Actualment aquesta operació no és possible perquè s'està a mig procés de " "fusió." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Hi ha hagut un error en l'últim pas.\n" "Voleu continuar amb l'element que ha causat l'error o voleu ometre'l?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Després d'un error continua fusionant" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continua amb l'últim element" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Omet l'element" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "S'ha omès." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "En curs..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operació de fusionat completada." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fusió completada" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Simulació de fusió completada: comproveu si esteu d'acord amb les operacions " "proposades." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Hi ha hagut un error. Per veure informació detallada premeu d'acord.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Error: en esborrar %1: ha fallat en crear una còpia de seguretat." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "esborra el directori recursivament( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "esborra( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Error: l'operació d'esborrar el directori ha fallat en intentar llegir-lo." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Error: ha fallat l'operació d'eliminar carpeta ( %1 )." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Error: ha fallat l'operació d'esborrat." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "fusió manual ( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Nota: avanç de fusionar manualment, l'usuari ha de continuar prement F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Error: ha fallat la copia ( %1 -> %2 ). L'esborrat de la destinació existent " "ha fallat." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copia enllaç ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Error: ha fallat la copia d'enllaç: els enllaços remots encara no estan " "implementats." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Error: ha fallat la copia d'enllaç." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copia( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Error en reanomenar( %1 -> %2 ): no es pot esborrar la destinació existent." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "reanomena( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Error: el canvi de nom ha fallat." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "Error en crear fitxer de %1. No es pot esborrar el fitxer existent." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "crea directori( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Error en crear el directori." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Destí" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Directori" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipus" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Mida" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Atributs" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Darrera modificació" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destí de l'enllaç" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Fitxer" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "no disponible" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Destí): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Destí): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Destí): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Destí: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Desa l'estat de fusió de directoris com a..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Comença/Continua la fusió de directoris" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Executa l'operació per l'element actual" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Compara el fitxer seleccionat" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Fusiona el fitxer actual" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Fitxer\n" "Fusionat" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Plega tots els subdirectoris" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Desplega tots els subdirectoris" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Tria A per tots els elements" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Tria B per tots els elements" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Tria C per tots els elements" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Tria automàticament l'operació per tots els elements" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "No hi ha cap operació per tots els elements" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostra els fitxers idèntics" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Fitxers\n" "Idèntics" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostra els fitxers diferents" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostra els fitxers que només són a A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Fitxers\n" "que només són a A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostra els fitxers que només són a B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Fitxers\n" "que només són a B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostra els fitxers que només són a C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Fitxers\n" "que només són a C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Compara els fitxers seleccionats explícitament" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Fusiona els fitxers seleccionats explícitament" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "No facis res" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Esborra A i B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Fusiona a A i B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorat. (Definit per l'usuari)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Eina per comparar i fusionar fitxers i directoris" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Correcció d'errades, mantenidor del paquet de Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Instal·lador de Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Ajuda amb l'i18n" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Pedaç del porta-retalls" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Ajuda amb KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Classe CvsIgnoreList del Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Classe StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Pedaç per acolorir les igualtats de directoris" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Solució a l'inici lent en Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext per Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Proves intensives, ús i comentaris" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Compatibilitat amb Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Adaptació al KDE 4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Port a OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Moltes gràcies a tothom qui ha informat d'errors i ha aportat idees!" #: main.cpp:196 msgid "Merge the input." msgstr "Fusiona l'entrada." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Fitxer base explicit. Per compatibilitat amb certes eines." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Fitxer de sortida. Implica -m P. ex.: -o fitxernou.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Fitxer de sortida, un altre cop. (Per compatibilitat amb certes eines)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Sense IGU si tots els conflictes es poden resoldre automàticament. (Cal -o " "fitxer)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "No resolguis els conflictes automàticament. (Per compatibilitat...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Reemplaçament de nom visible pel fitxer de sortida 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Reemplaçament de nom visible pel fitxer de sortida 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Reemplaçament de nom visible pel fitxer de sortida 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Reemplaçament de nom visible alternatiu. Proporcioneu-lo per cada sortida." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Sobreescriu l'arranjament de la configuració. Useu-ho per cada arranjament. " "P. ex.: --cs \"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Mostra una llista d'arranjaments de configuració i el valor actual." #: main.cpp:208 msgid "Use a different config file." msgstr "Usa un fitxer de configuració diferent." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "fitxer 1 a obrir (base, si no s'especifica via --base)" #: main.cpp:212 msgid "file2 to open" msgstr "fitxer 2 a obrir" #: main.cpp:213 msgid "file3 to open" msgstr "fitxer 3 a obrir" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Número de conflictes sense resoldre pendents: %1 (dels quals %2 són espais " "en blanc)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "S'ha modificat la sortida.\n" "Si continueu es perdran els canvis." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Tots els fitxers d'entrada són binàriament iguals." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Tots els fitxers d'entrada contenen el mateix text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Els fitxers %1 i %2 són binàriament iguals.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Els fitxers %1 i %2 tenen el mateix text.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Nombre total de conflictes: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Núm. de conflictes resolts automàticament: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Núm. de conflictes no resolts: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflictes" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Encara no s'han resolt tots els conflictes.\n" "El fitxer no s'ha desat.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflictes pendents" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Hi ha un conflicte d'estil de finals de línia. Escolliu manualment l'estil " "de salt de línia.\n" "El fitxer no s'ha desat.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Ha fallat la creació de la còpia de seguretat. El fitxer no s'ha desat." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Error en desar el fitxer" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Error en escriure." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Sortida" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificat]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codificació per desar" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Estil de salt de línia:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflicte" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Còdec de" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "No s'han trobat fitxers per comparar." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Ha fallat en esborrar una còpia de seguretat quan s'intentava fer-ne una de " "nova.\n" "Nom de fitxer: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Ha fallat el reanomenament en intentar fer una còpia de seguretat. \n" "Noms de fitxer: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "S'està obtenint l'estat del fitxer: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "S'està llegint el fitxer: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "S'està escrivint el fitxer: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Sense memòria" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "S'està creant el directori: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "S'està eliminant el directori: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "S'està eliminant el fitxer: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "S'està creant l'enllaç simbòlic: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "S'està reanomenant el fitxer: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "S'està copiant el fitxer: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per " "llegir-lo. Nom de fitxer: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en obrir el fitxer per " "escriure-hi. Nom de fitxer: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en llegir. Nom de " "fitxer: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Error durant l'operació de còpia de fitxer: ha fallat en escriure. Nom de " "fitxer: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "S'està llegint el directori: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "S'està llistant el directori: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Cancel·la" #: difftextwindow.cpp:403 msgid "Line" msgstr "Línia" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Línia no disponible" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codificació:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Línia superior" #: difftextwindow.cpp:1769 msgid "End" msgstr "Final" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configuració actual:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Error de l'opció de configuració:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "Heu usat l'opció --auto, però no heu especificat cap fitxer de sortida." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "L'opció --auto s'ignora en comparar directoris." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Ha fallat el desat." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Ha fallat en obrir aquests fitxers:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "S'ha produït un error en obrir el fitxer" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Obra documents per comparar-los..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Recarrega" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Desa el resultat de la fusió. S'han de resoldre tots els conflictes!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Desa el document actual com a..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Imprimeix les diferències" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Surt de l'aplicació" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Talla la secció seleccionada i la posa al porta-retalls" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia la secció seleccionada al porta-retalls" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Enganxa el contingut del porta-retalls a la posició actual" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Selecciona tot el què hi ha a la finestra actual" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Cerca una cadena" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Torna a cercar la cadena" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Habilita/deshabilita la barra d'estat" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configura el KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Vés a la diferència actual" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Diferència\n" "actual" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Vés a la primera diferència" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Primera\n" "diferència" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Vés a l'última diferència" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Última\n" "diferència" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Se salten les diferències d'espais en blanc quan «Mostra espais en blanc» " "està deshabilitat)." #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(No se salten les diferències d'espais en blanc quan «Mostra espais en " "blanc» està deshabilitat)." #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Vés a la diferència anterior" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Diferència\n" "anterior" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Vés a diferència següent" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Diferència\n" "següent" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Vés al conflicte anterior" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflicte\n" "anterior" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Vés al conflicte següent" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflicte\n" "següent" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Vés al conflicte no resolt anterior" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "No resolt\n" "anterior" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Vés al conflicte no resolt següent" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "No resolt\n" "següent" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Selecciona línies d'A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Escull\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Seleccion línies de B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Escull\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Seleccion línies de C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Escull\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Vés automàticament al conflicte no resolt següent després de seleccionar una " "font" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automàticament\n" "al següent" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" "Mostra com a diferències els caràcters d'espai en blanc i els de tabulador " #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Caràcters\n" "en blanc" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostra els espais en blanc" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Diferències\n" "d'espais" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostra els números de les línies" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Números\n" "de línia" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Escull A a tot arreu" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Escull B a tot arreu" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Escull C a tot arreu" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Escull A a tots els conflictes no resolts" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Escull B a tots els conflictes no resolts" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Escull C a tots els conflictes no resolts" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Escull A a tots els conflictes d'espais en blanc no resolts" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Escull B a tots els conflictes d'espais en blanc no resolts" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Escull C a tots els conflictes d'espais en blanc no resolts" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Resol automàticament els conflictes senzills" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Estableix les diferències com a conflictes" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Executa la fusió automàtica d'expressions regulars" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Resol automàticament els conflictes cronològics" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Divideix les diferències a la selecció" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Uneix les diferències seleccionades" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostra la finestra A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostra la finestra B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostra la finestra C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Focus a la finestra següent" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Resum normal" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Resum d'A contra B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Resum d'A contra C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Resum de B contra C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Ajusta les línies de les finestres de diferències" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Afegeix alineació manual de les diferències" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Treu totes les alineacions manuals de les diferències" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Focus a la finestra anterior" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Commuta l'orientació de les divisions" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Vista de pantalla dividida en text i directoris" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Commuta entre la vista de directoris i text" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "El resultat de la fusió no s'ha desat." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Desa i surt" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Surt sense desar" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Ha fallat en desar el resultat de la fusió." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Actualment esteu fent una fusió de directoris. Segur que la voleu " "interrompre?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "S'està desant el fitxer..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "S'està desant el fitxer amb un nom nou..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Impressió no implementada." #: kdiff3.cpp:815 msgid "Printing..." msgstr "S'està imprimint..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selecció" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Impressió completada." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "S'ha interromput la impressió." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "S'està sortint..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "S'està commutant la barra d'eines..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Commuta la barra d'estat..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Fitxer..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Directori..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (opcional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Intercanvia/Copia els noms..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Intercanvia %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copia %1 ->Sortida" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Intercanvia %1<->Sortida" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Sortida (opcional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configura..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&D'acord" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Cerca el text:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Sensible a majúscules" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Cerca A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Cerca B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Cerca C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Cerca la sortida" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Cerca" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Provador d'expressions regulars" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Fusiona automàticament les expressions regulars:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Exemple de línia de fusió automàtica:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Per testar la fusió automàtica, copieu una línia com les dels vostres " "fitxers." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultat coincident:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Expressió regular d'inici d'historial:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Exemple de línia d'inici d'historial (amb el comentari inicial):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copieu una línia d'inici d'historial com les dels vostres fitxers,\n" "incloent el comentari inicial." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Expressió regular d'inici d'entrada d'historial:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Criteri d'ordenació de les claus de l'historial:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Exemple d'inici de línia d'entrada d'historial (sense el comentari inicial):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copieu una entrada de línia d'inici d'historial com les dels vostres " "fitxers,\n" "sense incloure el comentari inicial." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resultat de la clau d'ordenació:" # PERFER: alineament? #: smalldialogs.cpp:508 msgid "OK" msgstr "D'acord" # PERFER: alineament? #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Encaix correcte." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Ha fallat l'encaix. " #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "L'obertura i tancament de parèntesis no encaixa en l'expressió regular." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bits" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Canvia això si els caràcters no ASCII no es mostren correctament." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configura" #: optiondialog.cpp:531 msgid "Font" msgstr "Tipus de lletra" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Tipus de lletra de l'editor i sortida de diferències" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Tipus de lletra cursiva per les diferències" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Per les diferències, selecciona la versió en cursiva del tipus de lletra.\n" "Si el tipus de lletra no implementa caràcters en cursiva, això no tindrà " "efecte." #: optiondialog.cpp:568 msgid "Color" msgstr "Color" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Arranjament de colors" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "vistes de l'editor i diferències:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Color de primer pla:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Color de fons:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Color de fons de les diferències:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Color A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Color B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Color C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Conflicte de color:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Color de fons del rang actual:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Color de fons de les diferències del rang actual:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Color pels rangs de diferències alineades manualment:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Vista de la comparació de directoris:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Color del fitxer més nou:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "El canvi d'aquest color només serà efectiu quan es comenci la propera " "comparació de directoris." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Color del fitxer més antic:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Color del fitxer d'edat intermèdia:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Color dels fitxer no disponibles:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportament de l'editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "El tabulador insereix espais" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Activat: en prémer el tabulador es generaran el nombre apropat d'espais en " "blanc.\n" "Desactivat: s'inserirà un caràcter de tabulació." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Mida de la tabulació:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Sagnat automàtic" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Activat: s'usarà el sagnat de la línia prèvia per les línies noves.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Copia la selecció automàticament" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Activat: totes les seleccions es desaran al porta-retalls.\n" "Desactivat: haureu de copiar explícitament, p. ex. mitjançant Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Autodetecta" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Estableix els finals de línia quan es desin els fitxers editats.\n" "Dos/Windows: CR+LF; UNIX: LF; amb CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diferència" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Arranjament de les diferències " #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Tracta-ho com a espais en blanc." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignora els números" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignora els caràcters numèrics durant la fase de d'encaix de línies. " "(Semblant a ignorar espais en blanc).\n" "Pot ajudar a comparar fitxers amb dades numèriques." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignora els comentaris de C/C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Tracta els comentaris de C/C++ com si fossin espais en blanc." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignora majúscules/minúscules" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Tracta les diferències de caixa com si fossin canvis d'espais en blanc(«a» " "<=> «A»)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Ordre del preprocessador:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Preprocessament definit per l'usuari. (Vegeu la documentació pels detalls)." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Ordre del preprocessador d'encaix de línies:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Aquest preprocessador només s'usa durant l'encaix de línies.\n" "(Per més detalls vegeu la documentació)." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Esforçat-hi (més lent)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Habilita l'opció --minimal pel diff extern.\n" "L'anàlisi de fitxers grans serà encara més lenta." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Alinea B i C per 3 fitxers d'entrada" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Intenta alinear B i C quan es comparin o fusionin tres fitxers d'entrada.\n" "No recomanat per fusionar ja que pot ser més complicat.\n" "(Deshabilitat per defecte)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Arranjaments de fusió" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Retard de l'avanç automàtic (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Quan el mode d'avanç automàtic estigui activat es mostrarà el resultat de la " "selecció \n" "actual durant el temps especificat, avanç de saltar al conflicte següent. " "Rang: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostra els diàlegs d'informació" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostra un diàleg amb informació sobre el nombre de conflictes." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Selecció manual" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Permet que l'algoritme de fusió seleccioni automàticament una entrada pels " "canvis d'espais en blanc." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Opció per defecte dels espais en blanc en la fusió de 2 fitxers:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Fusió automàticament les expressions regulars" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Expressió regular per les línies en què el KDiff3 hauria d'escollir una font " "automàticament.\n" "Quan una línia amb un conflicte concorda amb l'expressió regular aleshores\n" "- si està disponible - s'escollirà C, si no, B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Executa la fusió automàtica d'expressions regulars a l'inici de la fusió" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Fusiona automàticament les expressions regulars\n" "just en començar la fusió.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fusió d'historial del control de versions" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Expressió regular per l'inici de les entrades de l'historial del control de " "versions.\n" "Normalment aquesta línia conté la paraula clau «$Log$».\n" "Valor per defecte: «.*\\$Log.*\\$.*»" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Les entrades de l'historial del control de versions consten de varies " "línies.\n" "Especifiqueu l'expressió regular per detectar la primera línia (sense el " "comentari inicial).\n" "Useu parèntesis per agrupar les claus que vulgueu usar per ordenar-les.\n" "Si es deixa en blanc, el KDiff3 assumeix que les línies en blanc separen les " "entrades de l'historial.\n" "Per més detalls, vegeu la documentació." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordenació de la fusió d'historials" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordena l'historial del control de versions per una clau." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" "Criteri d'ordenació de les claus de l'inici de les entrades d'historial:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Cada parell de parèntesis usats en l'expressió regular per l'inici de " "l'entrada de l'historial\n" "agrupa una clau que es pot usar per ordenar.\n" "Especifica la llista de claus (que estan numerades en ordre d'ocurrència\n" "començant per 1) usant «,» com a separador (p. ex. «4,5,6,1,2,3,7»).\n" "Si es deixa en blanc, no s'ordenarà.\n" "Per més detalls, vegeu la documentació." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Fusiona l'historial del control de versions quan es comenci a fusionar" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Executa la fusió automàtica de l'historial del control de versions quan es " "comenci a fusionar." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Nombre màxim d'entrades d'historial:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Talla a partir d'un número especificat. Useu -1 per un nombre infinit " "d'entrades." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Comproveu les vostres expressions regulars" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Ordre de fusió irrellevant:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Si s'especifica, aquest script s'executarà després de la fusió automàtica\n" "quan no s'hagin detectats altres canvis apropiats.\n" "Cridat amb els paràmetres: nomdefitxer1 nomdefitxer2 nomdefitxer3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "En les fusions sense conflictes desa i surt automàticament" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Si el KDiff3 s'inicia des de la línia d'ordres per fusionar fitxers i tots\n" "els conflictes es poden resoldre sense la interacció de l'usuari, desa i " "surt.\n" "(Similar a l'opció de la línia de comandes «--auto»)." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Directori" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Directoris recursius" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Si analitzar els subdirectoris o no" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Patró dels fitxers:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patró dels fitxers a analitzar.\n" "Comodins: «*» i «?»\n" "Es poden especificar diversos patrons separant-los amb: «;»" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Negatiu del patró dels fitxers:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patró dels fitxers a excloure de l'anàlisi. \n" "Comodins: «*» i «?»\n" "Es poden especificar diversos patrons separant-los amb: «;»" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Negatiu del patró dels directoris:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patró dels directoris a excloure de l'anàlisi. \n" "Comodins: «*» i «?»\n" "Es poden especificar diversos patrons separant-los amb: «;»" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Usa .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Estén el negatiu del patró a tot el què ignora el CVS.\n" "Per mitjà dels fitxers «.cvsignore» locals això pot ser específic de cada " "directori." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Cerca fitxers i directoris ocults" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Cerca fitxers i directoris l'atribut ocult." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Cerca fitxers i directoris que comencin amb «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Segueix els enllaços de fitxer" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Activat: compara el fitxer al què apunta l'enllaç.\n" "Desactivat: compara els enllaços." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Segueix els enllaços de directori" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Activat: compara el directori al què apunta l'enllaç.\n" "Desactivat: compara els enllaços." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Comparació de noms de fitxers sensible a majúscules i minúscules" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "La comparació de directoris compararà fitxers o directoris que coincideixin " "en nom.\n" "Activeu aquesta opció si la caixa dels noms ha de coincidir. (Per defecte en " "Windows està desactivat, en altres entorns està activat)." #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Mode de comparació de fitxers" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Comparació binària" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Comparació binària de cada fitxer. (Per defecte)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Anàlisi complet" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Fes un anàlisi complet i mostra informació estadística en columnes " "addicionals.\n" "(Més lent que una comparació binària, més lent encara per fitxers binaris)." #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Confia en la mida i la data de modificació (insegur)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Assumeix que els fitxers són iguals si la data de modificació i la mida del " "fitxer coincideixen.\n" "Els fitxers amb continguts iguals però diferents dates de modificació es " "mostraran com si fossin diferents.\n" "Útil per directoris grans o xarxes lentes." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Confia en la mida i data dels fitxers però compara binàriament si les dates " "no concorden (insegur)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Assumeix que els fitxers són iguals si les dates de modificació i les mides " "dels fitxers coincideixen.\n" "Si les dates no són iguals però les mides si, usa la comparació binària.\n" "Útil per directoris grans o xarxes lentes." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Confia en la mida (insegur)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Assumeix que els fitxers són iguals si la mida dels fitxer coincideixen.\n" "Útil per directoris grans o xarxes lentes quan la data es modifica durant la " "descarrega." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronitza directoris" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Ofereix emmagatzemar fitxers als dos directoris de manera que\n" "després els dos directoris siguin iguals.\n" "Només funciona quan es comparen dos directoris sense especificar una " "destinació." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Les diferències d'espais en blanc no es consideren" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Si els fitxers difereixen en només un espai en blanc considera'ls iguals.\n" "Això només és actiu quan s'escull l'anàlisi complet." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copia el més nou en comptes de fusionar-los (insegur)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "No miris dins, simplement tria el fitxer més nou.\n" "(Useu això només si sabeu el què esteu fent).\n" "Només és efectiu quan es comparen dos directoris." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Fitxers de la còpia de seguretat (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Si un fitxer es guarda sobre un fitxer més antic, llavors el fitxer antic\n" "es reanomenara amb una extensió «.orig» en comptes de ser esborrat." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Arranjament regional" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Idioma (cal reiniciar)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Escull l'idioma de les cadenes de la IGU o «Automàtic».\n" "Per què el canvi d'idioma tingui efecte, sortiu i reinicieu el KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Usa la mateixa codificació a tot arreu:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Habilitar això permet canviar totes les codificacions canviant només la " "primera.\n" "Deshabiliteu-ho si necessiteu arranjaments diferents per cada fitxer." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: la codificació local és " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codificació pel fitxer A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Si està habilitat es detectaran les codificacions Unicode (UTF-16 o UTF-8).\n" "Si el fitxer no és Unicode s'usarà la codificació seleccionada com a " "alternativa\n" "(la detecció de l'Unicode depèn dels primers bytes dels fitxers)." #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Detecta automàticament l'Unicode" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codificació pel fitxer B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codificació pel fitxer C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codificació des fitxers de sortida d'una fusió i en desar:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Selecciona automàticament" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Si està habilitat s'usarà la codificació dels fitxers d'entrada.\n" "En els casos ambigus un diàleg demanarà a l'usuari que esculli la " "codificació a usar per desar." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codificació dels fitxers del preprocessador:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Idioma de dreta a esquerra" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Alguns idiomes es llegeixen de dreta a esquerra.\n" "Aquest arranjament canviarà el visor i l'editor per adaptar-s'hi." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integració" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Arranjaments d'integració" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opcions de la línia d'ordres a ignorar:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Llista d'opcions de la línia d'ordres que s'ignoraran quan el KDiff3 sigui " "usat per altres eines.\n" "Es poden especificar varis valors separant-los amb «;».\n" "Això solucionarà l'error «Opció desconeguda»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Surt també en prémer la tecla d'escapada" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Mètode ràpid per sortir.\n" "Pels qui estigueu acostumats a usar la tecla d'escapada." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integra amb ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra amb Rational ClearCase d'IBM.\n" "Modifica el fitxer «map» del subdirectori de ClearCase «lib/mgrs»\n" "(només s'activa quan directori «bin» de ClearCase estigui al camí)." #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Elimina la integració amb ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Restaura el fitxer «map» antic d'avanç de fer la integració de ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Tipus de lletra incompatible" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continua sota la meva responsabilitat" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Tria un altre tipus de lletra" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Això restableix totes les opcions, no només les del tema actual." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "OrdreDePreprosessador: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Les següents opcions que heu seleccionat poden canviar dades:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Probablement, durant una fusió no voldreu això.\n" "Voleu deshabilitar aquests arranjaments o continuar amb aquests arranjaments " "activats?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opció insegura per fusionar" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Usa aquestes opcions en fusionar" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Deshabilita les opcions insegures" #: pdiff.cpp:300 msgid "Loading A" msgstr "S'està carregant A" #: pdiff.cpp:304 msgid "Loading B" msgstr "S'està carregant B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Dif: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Diferència de línia: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "S'està carregant C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Dif: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Dif: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Diferència de línia: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Diferència de línia: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Tots els fitxers d'entrada contenen el mateix text però no són binàriament " "iguals." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Els fitxers %1 i %2 tenen el mateix text, però binàriament no són iguals. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Alguns fitxers d'entrada no semblen fitxers de text pur.\n" "Noteu que la fusió del KDiff3 no està pensada per dades binàries.\n" "Continueu sota la vostra responsabilitat." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Alguns caràcters d'entrada no es poden convertir a caràcters unicode " "vàlids.\n" "Deveu estar usant un còdec equivocat (ex. UTF-8 per fitxers no UTF-8).\n" "No deseu el resultat si no n'esteu segurs. Continueu sota la vostra " "responsabilitat.\n" "Els fitxers d'entrada afectats són a %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Interromp" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "S'estan obrint els fitxers..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "S'ha produït un error en obrir el fitxer" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "S'està retallant la selecció..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "S'està copiant la selecció al porta-retalls..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "S'està inserint el contingut del porta-retalls..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Desa i continua" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continua sense desar" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Cerca completa." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Cerca completa" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "No hi ha res seleccionat en cap de les finestres de diferències." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Error en afegir un rang manual de diferències" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "No s'ha pogut inicialitzar el component KDiff.\n" "Això sol ser degut a problemes d'instal·lació. Per més detalls, llegiu el " "fitxer README del paquet de codi." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Joan Maspons Ventura" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "joanmaspons@gmail.com" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configura el KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra d'eines principal" kdiff3-0.9.97/po/it/0000755000175100001440000000000011626145654013364 5ustar joachimuserskdiff3-0.9.97/po/it/kdiff3plugin.po0000644000175100001440000000555111626145605016313 0ustar joachimusers# translation of kdiff3_plugin.po to Italian # # Federico Zenith , 2006, 2007, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3_plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-15 15:46+0200\n" "Last-Translator: Federico Zenith \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Confronta con %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Fondi con %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "Memorizza «%1»" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "Fusione a tre con base" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Confronta con..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Pulisci elenco" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Confronta" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "Confronto a tre" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Informazioni sull'estensione KDiff3 per menu..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Estensione KDiff3 per menu: copyright 2008 di Joachim Eibl\n" "Pagina Web di KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Usare l'estensione del menu contestuale:\n" "Per un semplice confronto tra due file selezionati scegli «Confronta».\n" "Se l'altro file è da qualche altra parte, «Memorizza» il primo, e apparirà " "nel sottomenu «Confronta con...». Quindi, usa «Confronta con» sul secondo " "file.\n" "Per una fusione a tre, prima «Memorizza» il file di base, quindi il ramo da " "fondere, e poi scegli «Fusione a tre con base» sul ramo di destinazione.\n" "Lo stesso vale per il confronto e la fusione tra cartelle." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Informazioni sull'estensione KDiff3 per menu" kdiff3-0.9.97/po/it/CMakeLists.txt0000644000175100001440000000016311626145605016120 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(it ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/it/kdiff3fileitemactionplugin.po0000644000175100001440000000605711626145605021232 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Federico Zenith , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-15 21:53+0200\n" "Last-Translator: Federico Zenith \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Confronta con %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Fondi con %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "Memorizza «%1»" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "Fusione a tre con base" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Confronta con..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Pulisci elenco" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Confronta" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "Confronto a tre" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Informazioni sull'estensione KDiff3 per menu..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "Estensione KDiff3 per azioni su file: copyright 2011 di Joachim Eibl\n" "Pagina Web di KDiff3: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "Usare l'estensione del menu contestuale:\n" "Per un confronto semplice di due file selezionati, seleziona «Confronta».\n" "Se l'altro file è da un'altra parte, «Memorizza» il primo file: apparirà nel " "sottomenu «Confronta con...». Usa quindi «Confronta con» su un secondo " "file.\n" "Per una fusione a tre «Salva» prima il file di base, quindi il ramo da " "fondere e seleziona «Fusione a tre con base» sull'altro ramo che verrà usato " "come destinazione.\n" "Lo stesso vale per il confronto e la fusione tra cartelle." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Informazioni sull'estensione KDiff3 per azioni sui file" kdiff3-0.9.97/po/it/kdiff3.po0000644000175100001440000024673711626145605015111 0ustar joachimusers# translation of kdiff3.po to Italian # Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. # # Andrea Celli , 2003, 2004, 2005. # Marcello Anni , 2006, 2007. # Giovanni Venturi , 2006. # Federico Zenith , 2009, 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-15 15:44+0200\n" "Last-Translator: Federico Zenith \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Continua" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Annulla" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Esci" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Aiuto" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Valori predefiniti" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&File" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Modifica" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Cartella" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "Mo&vimento" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "V&ista di confronto" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "F&ondi" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "Fi&nestra" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "Imp&ostazioni" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "Ai&uto" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "&Informazioni" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utore" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Ringraziamenti" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Operazione di fusione dell'elemento attuale" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Operazione di sincronizzazione dell'elemento attuale" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Apri" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Salva" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Salva come..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Stampa..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Taglia" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Copia" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Incolla" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Seleziona tutto" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Mostra la barra degli strumenti" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "Mostra la barra di &stato" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "&Configura %1..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Informazioni" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Trova" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Trova successivo" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Seleziona carattere" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Hai selezionato un carattere a ampiezza variabile.\n" "\n" "Siccome questo programma non gestisce correttamente questo\n" "tipo di caratteri, potresti avere problemi a modificare i file.\n" "\n" "Vuoi continuare o preferisci cambiare carattere?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Carattere non compatibile." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Continuo a mio rischio" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Seleziona un altro carattere" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Per maggiore documentazione, vedi il menu «Aiuto» o la sottocartella doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "Uso di KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignora" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Esci" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "La copia da appunti a file temporaneo non è riuscita." #: diff.cpp:255 msgid "From Clipboard" msgstr "Dagli appunti" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Atteso spazio dopo virgolette di chiusura." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Virgolette corrisponenti mancanti." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Virgolette inattese in argomento." #: diff.cpp:503 msgid "No program specified." msgstr "Nessun programma specificato" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "La pre-elaborazione non sembra riuscita. Controlla questo comando:\n" "\n" " %1\n" "\n" "Il comando di pre-elaborazione verrà ora disabilitato." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "La pre-ricerca di righe simili non sembra riuscita. Controlla questo " "comando:\n" "\n" " %1\n" "\n" "Il comando di pre-ricerca di righe simili verrà ora disabilitato." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Errore: perdita dati\n" "Se è riproducibile, sei pregato di segnalarlo all'autore.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Grave errore interno" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Insieme di collegamenti e file normali." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Collegamento: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Dimensione. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Data e dimensione: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Creazione di una copia temporanea di %1 non riuscita." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Apertura di %1 non riuscita." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Confronto del file..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Errore nella lettura di %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Nome" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Operazione" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Stato" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Non risolto" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Risolto" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Non vuoto" #: directorymergewindow.cpp:359 msgid "White" msgstr "Vuoto" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Stai fondendo delle cartelle. Sei sicuro di voler interrompere la fusione e " "riesaminare la cartella?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Avviso" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Riesamina" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Continua la fusione" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Apertura di cartelle non riuscita:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "La cartella A «%1» non esiste o non è una cartella.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" "La cartella B «%1» non esiste o non è una cartella.\n" ".\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "La cartella C «%1» non esiste o non è una cartella.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Errore nell'apertura di una cartella" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "La cartella di destinazione non può essere la stessa di A o B quando si " "fondono tre cartelle.\n" "Ricontrolla prima di continuare." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Attenzione ai parametri" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Esame delle cartelle..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Lettura della cartella A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Lettura della cartella B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Lettura della cartella C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Alcune sottocartelle non erano leggibili" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Controlla i permessi per le sottocartelle." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Pronto." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Stato del confronto tra cartelle" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Numero di sottocartelle:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Numero di file uguali:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Numero di file diversi:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Numero di fusioni manuali:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Questo riguarda tutte le operazioni di fusione." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Modifica di tutte le operazioni di fusione" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Elaborazione in corso " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Da fare." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Copia A su B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Copia B su A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Elimina A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Elimina B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Elimina A e B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Fondi con A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Fondi con B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Fondi con A e B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Elimina (se esiste)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Fondi" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Fondi (manuale)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Errore: tipi di file in conflitto" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Errore: modificato ed eliminato." #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Errore: le date coincidono ma i file sono diversi." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Questa operazione non è attualmente possibile." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Operazione non possibile" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Questo non dovrebbe mai succedere:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Se sai come riprodurlo, per favore comunicalo all'autore del programma." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Errore nel programma" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Si è verificato un errore durante la copia.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Errore" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Errore di fusione" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Errore." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Fatto." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Non salvato." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Operazione di fusione sconosciuta (non deve mai succedere)." #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Operazione di fusione sconosciuta." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "La fusione sta per iniziare.\n" "\n" "Scegli «Procedi» se hai letto le istruzioni e sai cosa stai facendo.\n" "\n" "Scegli «Simula» per vedere cosa succederebbe.\n" "\n" "Stai attento perché questo programma è ancora una «beta» e non c'è " "nessuna garanzia che funzioni! Fai una copia di sicurezza dei tuoi " "dati importanti!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Inizio della fusione" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Procedi" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simula" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "L'elemento evidenziato è di diverso tipo nelle diverse cartelle. Scegli cosa " "fare." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Le date di modifica dei file sono uguali ma i file sono diversi. Scegli cosa " "fare." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "L'elemento evidenziato è stato modificato in una cartella ed eliminato " "nell'altra. Scegli cosa fare." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Attualmente non si può effettuare questa operazione perché è in corso una " "fusione tra cartelle." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Si è verificato un errore nell'ultimo passaggio.\n" "Vuoi continuare con l'elemento che ha provocato l'errore o vuoi saltarlo?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Continua la fusione dopo un errore" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Continua con l'ultimo" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Saltalo" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Saltato." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "In esecuzione..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Operazione di fusione completata." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Fusione completata" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Fusione simulata completata: controlla se ti vanno bene le operazioni " "proposte." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Si è verificato un errore. Premi OK per maggiori informazioni.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Errore: nell'eliminare %1: impossibile creare una copia di sicurezza." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "elimina cartella ricorsivamente (%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "elimina (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Errore: eliminazione della cartella non riuscita durante la sua lettura." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Errore: operazione di rimozione di una cartella (%1) non riuscita." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Errore: eliminazione non riuscita." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "fusione manuale (%1, %2,%3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Nota: dopo una fusione manuale l'utente dovrebbe premere F7 per " "continuare." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Errore: copia (%1 -> %2) non riuscita. Eliminazione della destinazione " "esistente non riuscita." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "copia collegamento (%1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Errore: copia di collegamento non riuscita: i collegamenti remoti non sono " "ancora supportati." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Errore: copia di collegamento non riuscita." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "copia (%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Errore nella rinomina (%1 -> %2): impossibile eliminare la destinazione " "esistente." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "rinomina (%1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Errore: rinomina non riuscita." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Errore durante la creazione della cartella %1. Impossibile eliminare un file " "esistente." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "crea cartella (%1)" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Errore nella creazione di una cartella." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Destinazione" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Cartella" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Tipo" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Dimensione" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attributo" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Ultima modifica" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Destinazione del collegamento" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "File" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "non disponibile" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (destinazione): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (base): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (destinazione): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (destinazione): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Destinazione: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Salva lo stato di fusione tra cartelle come..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Avvia o continua fusione tra cartelle" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Esegui operazione sull'elemento attuale" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Confronta il file selezionato" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Fondi il file attuale" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Fondi\n" "file" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Chiudi tutte le sottocartelle" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Apri tutte le sottocartelle" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Scegli A per tutti gli elementi" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Scegli B per tutti gli elementi" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Scegli C per tutti gli elementi" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Operazione di scelta automatica per tutti gli elementi" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Nessuna operazione per tutti gli elementi" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Mostra file identici" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "File\n" "identici" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Mostra file diversi" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Mostra file solo in A" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "File\n" "solo in A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Mostra file solo in B" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "File\n" "solo in B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Mostra file solo in C" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "File\n" "solo in C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Confronta file selezionati esplicitamente" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Fondi file selezionati esplicitamente" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Non fare nulla" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "Elimina A e B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Fondi con A e B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignorato. (definito dall'utente)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Strumento per il confronto e la fusione di file e cartelle" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Correzioni, responsabile del pacchetto di Debian" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Installatore per Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "Aiuto per la localizzazione" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Correzione per gli appunti" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "Aiuto per KIO" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Classe CvsIgnoreList da Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Classe StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Correzione per la colorazione delle cartelle identiche" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Correzione per l'avvio lento su Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Estensione per le differenze su Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "Diffutils di GNU" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Molte prove, uso e segnalazioni" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Supporto su Macintosh" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Trasferimento su KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Trasferimento su OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "E grazie mille a chi ha segnalato errori o fornito idee!" #: main.cpp:196 msgid "Merge the input." msgstr "Fondi l'ingresso." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "File di base esplicito. Per compatibilità con certi programmi." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "File di uscita. Implica «-m». Per esempio: -o file_nuovo.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "File di uscita, di nuovo. Per compatibilità con certi programmi." #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Senza interfaccia se ogni conflitto è risolvibile automaticamente. Serve «-o " "file»." #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Non risolvere i conflitti automaticamente. Per compatibilità." #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Mostra sostituzione del nome per il file di ingresso 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Mostra sostituzione del nome per il file di ingresso 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Mostra sostituzione del nome per il file di ingresso 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Sostituzione del nome visibile alternativo. Da specificare una volta per " "ogni ingresso." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Ignora un'impostazione di configurazione. Usa una volta per ogni " "impostazione. Per esempio: «--cs \"AutoAdvance=1\"»" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" "Mostra la lista delle impostazioni di configurazione e i valori attuali." #: main.cpp:208 msgid "Use a different config file." msgstr "Usa un file di configurazione diverso." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "File1 da aprire (base, se non specificato con «--base»)" #: main.cpp:212 msgid "file2 to open" msgstr "File2 da aprire" #: main.cpp:213 msgid "file3 to open" msgstr "File3 da aprire" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "Numero di conflitti non ancora risolti: %1 (di cui %2 sono di spazi)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "L'uscita è stata modificata.\n" "Se continui le modifiche andranno perse." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Tutti i file di ingresso sono uguali a livello binario." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Tutti i file di ingresso contengono lo stesso testo." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "I file %1 e %2 sono uguali a livello binario.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "I file %1 e %2 hanno lo stesso testo.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Numero totale di conflitti: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Nº di conflitti risolti automaticamente: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Nº di conflitti non risolti: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflitti" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Non sono ancora risolti tutti i conflitti.\n" "File non salvato.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Conflitti rimanenti" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "C'è un conflitto di stili di fine riga. Seleziona manualmente lo stile.\n" "File non salvato.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Creazione della copia di sicurezza non riuscita. File non salvato." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Errore nel salvataggio del file" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Errore in scrittura." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Uscita" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Modificato]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codifica per il salvataggio" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Tipo di fine riga:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflitto" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codec da" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Impossibile trovare i file da confrontare." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Cercando di creare una copia di sicurezza, non è stato possibile rimuoverne " "una precedente.\n" "Nome del file: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Cercando di creare una copia di sicurezza, non è riuscita la rinomina.\n" "Nomi dei file: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Recupero informazioni sullo stato del file: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Lettura del file: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Scrittura del file: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Memoria esaurita" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Creazione della cartella: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Rimozione della cartella: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Rimozione del file: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Creazione del collegamento simbolico: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Rinomina del file: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Copia del file: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Errore durante la copia di un file: apertura del file in lettura non " "riuscita. Nome del file: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Errore durante la copia di un file: l'apertura del file in scrittura non " "riuscita. Nome del file: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Errore durante la copia di un file: lettura non riuscita. Nome del file: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Errore durante la copia di un file: Scrittura non riuscita. Nome del file: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Lettura della cartella: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Elenco della cartella: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Annulla" #: difftextwindow.cpp:403 msgid "Line" msgstr "Riga" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Riga non disponibile" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codifica:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Riga superiore" #: difftextwindow.cpp:1769 msgid "End" msgstr "Fine" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Configurazione attuale:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Errore nelle opzioni di configurazione:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "Opzione --auto inserita, ma non è stato indicato nessun del file di uscita." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Opzione --auto ignorata nel confronto di cartelle." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Salvataggio non riuscito." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Apertura di questi file non riuscita:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Errore nell'apertura di un file" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Apre documenti per confrontarli..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Ricarica" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "Salva il risultato della fusione. Tutti i conflitti vanno risolti!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Salva il documento attuale come..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Stampa le differenze" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Esce dall'applicazione" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Taglia la sezione selezionata e la mette negli appunti" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Copia la sezione selezionata negli appunti" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Incolla il contenuto degli appunti nella posizione attuale" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Seleziona tutto nella finestra attuale" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Cerca una stringa" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Cerca di nuovo la stringa" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Abilita o disabilita la barra di stato" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Configura KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Vai alla differenza attuale" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Differenza\n" "attuale" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Vai alla prima differenza" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Prima\n" "differenza" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Vai all'ultima differenza" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Ultima\n" "differenza" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Ignora le differenze di soli spazi quando «Mostra spazi» è disattivato)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Non salta le differenze di soli spazi bianchi anche quando «Mostra spazi» è " "disattivato)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Vai alla differenza precedente" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Differenza\n" "precedente" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Vai alla differenza successiva" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Differenza\n" "successiva" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Vai al conflitto precedente" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Conflitto\n" "precedente" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Vai al conflitto successivo" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Conflitto\n" "successivo" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Vai al conflitto non risolto precedente" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Non risolto\n" "precedente" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Vai al conflitto non risolto successivo" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Non risolto\n" "successivo" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Seleziona righe da A" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Scegli\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Seleziona righe da B" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Scegli\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Seleziona righe da C" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Scegli\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Vai automaticamente al conflitto non risolto successivo dopo aver " "selezionato la fonte" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Successivo\n" "automatico" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Mostra spazi e tabulazioni nelle differenze" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "Spazi" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Mostra spazi" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Differenze\n" "di spazi" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Mostra numeri di riga" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Numeri\n" "di riga" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Scegli A ovunque" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Scegli B ovunque" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Scegli C ovunque" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Scegli A per tutti i conflitti non risolti" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Scegli B per tutti i conflitti non risolti" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Scegli C per tutti i conflitti non risolti" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Scegli A per tutti i conflitti di spazi non risolti" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Scegli B per tutti i conflitti di spazi non risolti" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Scegli C per tutti i conflitti di spazi non risolti" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Risolvi automaticamente i conflitti semplici" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Imposta le differenze a conflitti" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Esegui la fusione automatica con espressioni regolari" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Risolvi automaticamente i conflitti di cronologia" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Dividi differenze alla selezione" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Unisci le differenze selezionate" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Mostra finestra A" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Mostra finestra B" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Mostra finestra C" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Attiva la finestra successiva" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Riassunto normale" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Riassunto tra A e B" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Riassunto tra A e C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Riassunto tra B e C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "A capo automatico nelle finestre delle differenze" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Aggiungi allineamento manuale delle differenze" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Cancella tutti gli allineamenti manuali delle differenze" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Attiva la finestra precedente" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Inverti l'orientamento di divisione" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Vista separata di cartelle e testi" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Cambia tra vista di testi e di cartelle" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Il risultato della fusione non è stato salvato." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Salva ed esci" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Esci senza salvare" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Il salvataggio della fusione non è riuscito." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "È in corso una fusione di cartelle. Sei sicuro di voler interrompere?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Salvataggio del file..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Salvataggio del file con un nuovo nome..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Stampa non implementata." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Stampa..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selezione" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Stampa completata." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Stampa interrotta." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Uscita..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Commutazione della barra degli strumenti..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Commutazione della barra di stato..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Base):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "File..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Cartella..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Opzionale):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Scambia e copia nomi..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "Scambia %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "Copia %1->Uscita" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "Scambia %1<->Uscita" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Uscita (opzionale):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Configura..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Testo da cercare:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Distingui le maiuscole" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Cerca in A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Cerca in B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Cerca in C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Cerca nell'uscita" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Cerca" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Tester delle espressioni regolari" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Espressione regolare di fusione automatica:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Esempio di riga di fusione automatica:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "Per provare la fusione automatica, copia una riga così com'è nei file." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Risultato di corrispondenza:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Espressione regolare dell'inizio di cronologia:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Esempio di riga di inizio di cronologia (con commento iniziale):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Copia una riga di inizio di cronologia così com'è nei file,\n" "incluso il commento iniziale." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Espressione regolare di inizio dell'elemento di cronologia:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Ordine della chiave d'ordinamento cronologico:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Esempio di riga di inizio di un elemento di cronologia (senza commento " "iniziale):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Copia una riga di inizio di un elemento di cronologia così com'è nei file,\n" "ma ometti il commento iniziale." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Risultato della chiave di ordinamento:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Confronto riuscito." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Confronto non riuscito." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Le parentesi aperte e chiuse nell'espressione regolare non corrispondono." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Cambialo se i caratteri non-ASCII non vengono mostrati correttamente." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configura" #: optiondialog.cpp:531 msgid "Font" msgstr "Carattere" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Carattere per l'editor e per l'uscita delle differenze" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Carattere corsivo per le differenze" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Seleziona la versione corsiva del carattere per le differenze.\n" "Se il carattere non supporta il corsivo, non succede nulla." #: optiondialog.cpp:568 msgid "Color" msgstr "Colore" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Impostazioni dei colori" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Editor e visore delle differenze:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Colore di primo piano:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Colore di sfondo:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Colore di sfondo per le differenze:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Colore per A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Colore per B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Colore per C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Colore per i conflitti:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Colore di sfondo per l'intervallo attuale:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Colore di sfondo per le differenze dell'intervallo attuale:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Colore per intervalli di differenze allineate manualmente:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Vista di confronto delle cartelle:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Colore del file più recente:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Il cambiamento di questo colore sarà effettivo quando si avvierà un nuovo " "confronto tra cartelle." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Colore del file più vecchio:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Colore del file di età media:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Colore per file mancanti:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Comportamento dell'editor" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Il tabulatore inserisce spazi" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Attivo: premere il tabulatore è come inserire l'appropriato numero di " "spazi.\n" "Non attivo: viene inserito un carattere di tabulazione." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Dimensione della tabulazione:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Rientro automatico" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "Attivo: la nuova riga avrà lo stesso rientro della riga precedente.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Copia automaticamente la selezione" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Attivo: ogni selezione è immediatamente copiata negli appunti.\n" "Non attivo: devi esplicitamente copiarla, per esempio con Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "DOS/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Riconoscimento automatico" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Imposta il fine riga da usare quando salvi un file modificato:\n" "DOS/Windows: CR+LF; Unix: LF; dove CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Differenze" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Impostazioni delle differenze" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Tratta come spazio." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Ignora i numeri" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Ignora i caratteri numerici durante il confronto (simile a «Ignora spazi»).\n" "Può essere utile per confrontare file con dati numerici." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "Ignora i commenti C e C++" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "Tratta i commenti C e C++ come spazi." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignora le maiuscole" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Tratta le differenze tra maiuscole e minuscole come modifiche di spazi " "(«a»<=>«A»)." #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Comando per il preprocessore:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Preprocessore definito dall'utente; vedi il manuale per maggiori dettagli." #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Preprocessore per il confronto di righe:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Questo preprocessore viene utilizzato solo\n" "per verificare la corrispondenza di righe;\n" "vedi il manuale per maggiori dettagli." #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Ricerca approfondita (lenta)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Abilita l'opzione --minimal del comando «diff» esterno.\n" "L'analisi di grandi file sarà molto più lenta." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Allinea B e C per tre file di ingresso" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Cerca di allineare B e C quando si confrontano o fondono tre file di " "ingresso.\n" "Non è raccomandato per la fusione perché potrebbe divenire più complicata.\n" "Come impostazione predefinita è disattivato." #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Impostazioni di fusione" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Ritardo nell'avanzamento automatico (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Quando si è in modalità di avanzamento automatico, il risultato della\n" "selezione attuale viene mostrato per il tempo specificato, prima di\n" "passare al conflitto successivo. Valori ammessi: 0-2000 ms." #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Mostra finestre informative" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Mostra una finestra con informazioni sul numero di conflitti." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Trattamento predefinito degli spazi nel fondere due file:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Scelta manuale" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Consenti all'algoritmo di fusione di selezionare automaticamente un ingresso " "per le modifiche di soli spazi." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Trattamento predefinito degli spazi nel fondere tre file:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Espressione regolare di fusione automatica" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Espressione regolare per le righe dove Kdiff3 dovrebbe scegliere " "automaticamente una fonte.\n" "Quando una riga con un conflitto corrisponde all'espressione regolare,\n" "sarà scelto (se disponibile) C, altrimenti B." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Esegui la fusione automatica con espressioni regolari all'avvio della fusione" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Esegui la fusione per le espressioni regolari di fusione\n" "automatica all'avvio dell'operazione.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Fusione della cronologia del controllo di versione" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Espressione regolare per l'inizio dell'elemento di cronologia del controllo " "di versione.\n" "Di solito questa riga contiene la parola chiave «$Log$».\n" "Valore predefinito: «.*\\$Log.*\\$.*»." #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Un elemento di cronologia del controllo di versione consiste di diverse " "linee.\n" "Specifica l'espressione regolare per individuarne la prima (senza il " "commento iniziale).\n" "Usa le parentesi per raggruppare le chiavi che vuoi usare per " "l'ordinamento.\n" "Se la parte sinistra è mancante, KDiff3 assume che siano delle linee vuote a " "separare gli elementi della cronologia.\n" "Vedi la documentazione per i dettagli." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Ordinamento della fusione della cronologia" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Ordina la cronologia del controllo di versione secondo una chiave." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" "Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Ogni coppia di parentesi usata nell'espressione regolare per la voce di " "inizio\n" "della cronologia raggruppa una chiave che può essere usata per " "l'ordinamento.\n" "Specifica l'elenco delle chiavi (numerate in ordine di occorrenza a\n" "partire da 1) usando «,» come separatore (per esempio «4,5,6,1,2,3,7»).\n" "Se viene lasciato vuoto, non verrà effettuato nessun ordinamento.\n" "Consulta la documentazione per i ulteriori dettagli." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Fondi la cronologia del controllo di versione all'inizio della fusione" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Esegui la fusione automatica della cronologia del controllo di versione " "all'inizio della fusione." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Numero massimo di elementi nella cronologia:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Taglia al numero specificato. Usa -1 per un numero infinito di voci." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Prova le espressioni regolari" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Comando di fusione irrilevante:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Se specificato questo script viene eseguito dopo la fusione\n" "automatica quando non sono rilevati altri cambiamenti rilevanti.\n" "Chiamato con i parametri: nome_file1 nome_file2 nome_file3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Salvataggio automatico e uscita in caso di fusione senza conflitti" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Quando KDiff3 viene avviato per una fusione di file dalla riga di comando\n" "e tutti i conflitti sono risolvibili senza azione da parte dell'utente,\n" "salva automaticamente ed esci.\n" "È simile all'opzione da riga di comando «--auto»." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Cartella" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Cartelle ricorsive" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Se analizzare o meno anche le sottocartelle." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Schemi di file:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Schemi di file da analizzare.\n" "Caratteri jolly: «*» e «?».\n" "Si possono specificare più schemi con il separatore «;»." #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Schemi di file da escludere:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Schemi di file da escludere dall'analisi.\n" "Caratteri jolly: «*» e «?».\n" "Si possono specificare più schemi con il separatore «;»." #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Schemi di cartelle da escludere:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Schemi di cartelle da escludere dall'analisi.\n" "Caratteri jolly: «*» e «?».\n" "Si possono specificare più schemi con il separatore «;»." #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "Usa .cvsignore" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Estendi l'esclusione a tutto quello che sarebbe ignorato da CVS.\n" "Si possono usare dei file «.cvsignore» diversi per ogni cartella." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Trova file e cartelle nascosti" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Trova file e cartelle con l'attributo «nascosto»." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Trova file e cartelle che iniziano con «.»." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Segui i collegamenti dei file" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Attivo: confronta il file a cui punta il collegamento.\n" "Non attivo: confronta i collegamenti." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Segui i collegamenti delle cartelle" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Attivo: confronta la cartella a cui punta il collegamento.\n" "Non attivo: confronta i collegamenti." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Distingui le maiuscole nel confronto dei nomi dei file" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Il confronto tra cartelle confronterà file o cartelle quando i loro nomi " "coincideranno.\n" "Imposta questa opzione se le lettere maiuscole e minuscole devono essere " "considerate diverse. L'opzione predefinita per Windows è disattivo, " "altrimenti è attivo." #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Modalità di confronto dei file" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Confronto binario" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Confronto binario per ogni file (predefinito)." #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Analisi completa" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Fai un'analisi completa e mostra informazioni statistiche in nuove colonne.\n" "È più lento di un confronto binario e lentissimo su file binari." #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Fidati della grandezza e della data di modifica (non sicuro)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Assumi che i file sono uguali se hanno la stessa data di modifica e " "dimensione.\n" "I file con contenuti identici ma diverse date di modifica risulteranno " "diversi.\n" "Utile per confrontare cartelle grandi o per connessioni lente." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Fidati della grandezza e della data, ma usa il confronto binario se la data " "non corrisponde (non sicuro)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Assumi che i file sono uguali se hanno la stessa data di modifica e " "dimensione.\n" "Se le date non sono uguali ma la dimensione sì, usa il confronto binario.\n" "Utile per confrontare cartelle grandi o per connessioni lente." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Fidati della dimensione (non sicuro)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Assumi che i file sono uguali se hanno la stessa dimensione.\n" "Utile per confrontare cartelle grandi o per connessioni lente,\n" "dove la data viene modificata nello scaricamento." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Sincronizza cartelle" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Permette di memorizzare i file in entrambe le cartelle,\n" "in modo che poi risultino uguali.\n" "Funziona solo quando si confrontano due cartelle\n" "senza specificare una destinazione." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Differenze di spazi considerate uguali" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Se i file differiscono solo per degli spazi, considerali uguali.\n" "Funziona solo quando si effettua un'analisi completa." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Copia il più recente invece di fondere (non sicuro)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Non guardare i contenuti, prendi il più recente e basta.\n" "Usalo solo se sai quello che stai facendo!\n" "Funziona solo quando si confrontano due cartelle." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Copie di sicurezza (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Quando un file sarebbe stato salvato sovrascrivendone su un altro\n" "quest'ultimo verrà rinominato con l'estensione «.orig» invece di\n" "essere cancellato." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Impostazioni locali" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Lingua (riavvio necessario)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Scegli la lingua dell'interfaccia grafica o «Auto».\n" "Per cambiare la lingua devi uscire e riavviare KDiff3." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Usa la stessa codifica per tutto:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Permette di cambiare tutte le codifiche cambiando solo la prima.\n" "Disattivala se servono impostazioni differenziate." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Nota: la codifica locale è " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Codifica per il file A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Se abilitato, verrà rilevata la codifica Unicode (UTF-16 o UTF-8).\n" "Se il file non è in Unicode, la codifica selezionata sarà usata come " "ripiego.\n" "La rilevazione di Unicode dipende dai primi byte di un file." #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Rileva Unicode automaticamente" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Codifica per il file B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Codifica per il file C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Codifica per il file fuso e il salvataggio:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Seleziona automaticamente" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Se abilitato viene usata la codifica dei file di ingresso.\n" "Nei casi ambigui una finestra chiederà all'utente di scegliere la codifica " "per il salvataggio." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Codifica per i file del preprocessore:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Lingue scritte da destra a sinistra" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Alcune lingue si leggono da destra a sinistra.\n" "Questa opzione cambia in tal senso l'editor e la visualizzazione." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integrazione" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Impostazioni di integrazione" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Opzioni da riga di comando da ignorare:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Lista delle opzioni da riga di comando che dovrebbero essere ignorate quando " "KDiff3 viene usato da altri strumenti.\n" "Si possono specificare diversi valori se separati con «;»\n" "Questo eliminerà l'errore «Opzione sconosciuta»." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Esci anche con il tasto Esc" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Metodo di uscita veloce.\n" "Per chi è abituato a usare il tasto Esc." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integra con ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integra con Rational ClearCase di IBM.\n" "Modifica il file «map» nella sottocartella di ClearCase «lib/mgrs»\n" "(abilitato solo quando la cartella «bin» di ClearCase è nel percorso)." #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "Rimuovi l'integrazione con ClearCase" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Ripristina il vecchio file «map» com'era prima dell'integrazione con " "ClearCase." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Carattere non compatibile" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Continua a tuo rischio" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Scegli un altro carattere" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Questo ripristina tutte le opzioni, non solo quelle dell'argomento attuale." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Comando del preprocessore: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" "Le opzioni seguenti che hai selezionato potrebbero modificare dei dati:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Di solito questo non è quello che si vuole in una fusione.\n" "Vuoi disabilitare queste opzioni o continuare mantenendole in funzione?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Opzioni non sicure per la fusione" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Usa queste opzioni nella fusione" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Disattiva le opzioni non sicure" #: pdiff.cpp:300 msgid "Loading A" msgstr "Caricamento di A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Caricamento di B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Differenze: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Differenze per righe: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Caricamento di C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Differenze: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Differenze: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Differenze per righe: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Differenze per righe: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Tutti i file di ingresso contengono lo stesso testo, ma non sono uguali a " "livello binario." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "I file %1 e %2 contengono lo stesso testo, ma non sono uguali a livello " "binario. \n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Alcuni file di ingresso non sembrano essere file puramente di testo.\n" "Tieni conto che la fusione di KDiff3 non è fatta per i file binari.\n" "Se vuoi continuare, lo fai a tuo rischio e pericolo." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Non si è potuto convertire alcuni caratteri in ingresso in Unicode.\n" "Forse usi la codifica sbagliata (per esempio UTF8 per file non UTF8).\n" "Non salvare i risultati se non sei sicuro. Continua a tuo rischio e " "pericolo.\n" "I file di ingresso in questione sono in %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Interrompi" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Apertura dei file..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Errore nell'apertura del file" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Taglio della selezione..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Copia della selezione negli appunti..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Inserimento dei contenuti degli appunti..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Salva e continua" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Continua senza salvare" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Ricerca completata." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Ricerca completata" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" "Non è selezionato niente in nessuna delle finestre di ingresso delle " "differenze." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Errore nell'aggiunta di intervalli di differenze manuali" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Impossibile inizializzare il componente KDiff3.\n" "Questo di solito accade per problemi di installazione. Per maggiori dettagli " "leggi il file README nel pacchetto del codice sorgente." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Federico Zenith,Marcello Anni,Andrea Celli" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "federico.zenith@member.fsf.org,," #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "Configura KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Barra degli strumenti principale" #~ msgid "Directory Merge" #~ msgstr "Fusione di directory" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Andrea Celli, Marcello Anni" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "andrea.celli@libero.it, marcello.anni@alice.it" #~ msgid "Enables/disables the toolbar" #~ msgstr "Mostra/nascondi la barra degli strumenti" kdiff3-0.9.97/po/CMakeLists_xx.txt0000644000175100001440000000016311626145606016224 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(xx ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/tg/0000755000175100001440000000000011626145654013362 5ustar joachimuserskdiff3-0.9.97/po/tg/CMakeLists.txt0000644000175100001440000000016311626145610016112 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(tg ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/tg/kdiff3.po0000644000175100001440000023112311626145610015062 0ustar joachimusers# translation of kdiff3.po to Tajik # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # 2004, infoDev, a World Bank organization # 2004, Khujand Computer Technologies, Inc. # 2004, Youth Opportunities, NGO # Akmal Vatanshoev , 2004. # Akbar Vatanshoev , 2004. # Victor Ibragimov , 2004. # Victor Ibragimov , 2005. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2005-09-17 13:29+0500\n" "Last-Translator: Victor Ibragimov \n" "Language-Team: Tajik\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.10\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "&Давом додан" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 #, fuzzy msgid "&Directory" msgstr "Хониши каталоги А" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 #, fuzzy msgid "&Merge" msgstr "Пайваст кардан" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 #, fuzzy msgid "&Window" msgstr "Нишон диҳед Тирезаи С-ро" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "Воситаи муқоиса ва якҷоя кардан" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 #, fuzzy msgid "Current Item Merge Operation" msgstr "Тағйироти ҳамаи якҷошавиҳо" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "Амал" #: kreplacements/kreplacements.cpp:606 #, fuzzy #| msgid "Solved" msgid "Save" msgstr "Иҷозат дода шуда" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "Баромад..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Delete A" msgid "Select All" msgstr "Нест кардани А" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format msgid "&Configure %1..." msgstr "Танзимоти KDiff3..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy msgid "Select Font" msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 #, fuzzy msgid "Select another font" msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy msgid "KDiff3-Usage" msgstr "KDiff3Part" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Дар силули мухобиротӣ навиштани таърих ва суръати файл." #: diff.cpp:255 msgid "From Clipboard" msgstr "Аз буфери иваз" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Пеш-коркардкуни мумкин ,ки аз кор монд. Санҷед ин фармонро:\n" "\n" " %1\n" "\n" "Фармони пеш-коркардкуни ҳоло аз кор мемонад." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Хати-ҷамъ кунии- пешкоркардкуни мумкин нашуд.Санҷед ин фармонро:\n" "\n" " %1\n" "\n" "\n" "Хати-ҷамъ кунии- пешкоркардкунии фармон ҳоло аз кор мемонад." #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Маълумотҳои гумкарда:\n" "Агар ин зиёд карда шавад илтимос бо муаллиф алоқа кунед.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Хатогии даруни" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Мувофиқкунии ишораҳо бо файлҳои оддӣ." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Алоқа: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Андоза. " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Таърихи рӯз ва андоза: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Наметавонам нусхаи яквақтаро эҷод кунам %1." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Кушодан %1 нашуд." #: directorymergewindow.cpp:213 #, fuzzy msgid "Comparing file..." msgstr "Нигоҳ доштани файл ..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Хатогӣ дар вақти хониш аз %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Ном" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Амал" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Вазъият" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Иҷозат дода нашуд" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Иҷозат дода шуда" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Сиёҳ" #: directorymergewindow.cpp:359 msgid "White" msgstr "Сафед" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Ҳоло барнома дар тартиби якҷошавии каталогҳо кор мекунад. Оё шумо дар " "ҳақиқат мехоҳед, ки ҳамаи тағйиротҳоро нест кунед ва таркиби каталогро ан " "нав кунед?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Дигар кардан" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Давом додан" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Наметавонам каталогҳоро кушоям:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Каталоги А \"%1\" вуҷуд надорад.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Каталоги В \"%1\" вуҷуд надорад.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Каталоги C \"%1\" вуҷуд надорад.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Хатогӣ дар вақти хониши каталог" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Директорияи муаёянкуни бояд бошад мисли А ё В вақте,ки се директорияҳо якҷо " "шуданд.\n" "Санҷед бори дигар пеш аз давомкуни." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Параметри нодуруст" #: directorymergewindow.cpp:574 #, fuzzy msgid "Scanning directories..." msgstr "Мушоҳидакунии каталогҳо..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Хониши каталоги А" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Хониши каталоги В" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Хониши каталоги С" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Наметавонам баъзе зеркаталогҳоро хонам дар" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Ҳуқуқҳои ин каталогҳоро тафтиш кунед." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Тайёр аст." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Ҳолати муқоисакунии каталогҳо" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Миқдори зеркаталогҳо:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Миқдори файлҳои якхела:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Миқдори файлҳои ҳархела:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Миқдори якҷошавии дастӣ:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Ин ба ҳамаи якҷошавӣ таъсир мерасонад." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Тағйироти ҳамаи якҷошавиҳо" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Коркард " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Кардан." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "Нусха кардан А ба В" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "Нусха кардан В ба А" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "Нест кардани А" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "Нест кардани В" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "Нест кардани А ва В" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Пайваст кардан ба A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Пайваст кардан ба В" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Пайваст кардан ба A & В" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Нест кардан (агар вуҷуд дорад)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Пайваст кардан" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Пайваст кардан (дастӣ)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Хатогӣ: Якҷоянашавандаи шакли файлҳо" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Хатогӣ: Вақт мувофиқ аст, лекин файлҳо нет." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Ҳоло номумкин аст." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Пайваст кардан" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "mergeResultSaved: m_pMFI=0\n" "Агар шумо сабабро донед, ба муаллиф муроҷиат кунед." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Хатогии барнома" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Хатогии нусхакунӣ.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "Хатогӣ." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Хатогии якҷояшавӣ" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Хатогӣ." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Тайёр аст." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Захира нашуд." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Пайвастшавии номаълум" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Пайвастшавии номаълум." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Ҳоло якҷояшавӣ сар мешавад.\n" "\n" "Баъди хондани дастур, \"Ҳал кардан\"-ро пахш кунед.\n" "Барои нигоҳ кардани воқеа, \"Моделсозӣ\"-ро пахш кунед.\n" "\n" "Мо малиҳат медиҳем, ки доимо пеш аз якҷояшавӣ нусхаҳои захиравиро кунед!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Оғози якҷояшавӣ" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Ҳал кардан" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Моделсозӣ" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Файли интихобшуда дар ҳар каталог шкли гуногун дорад. Чӣ кор карданро " "интихоб кунед." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Маълумотҳои охирини тағйироти файлҳо якхела ҳастанд, вале таркиб нест. Чӣ " "кор карданро интихоб кунед." #: directorymergewindow.cpp:2123 #, fuzzy #| msgid "" #| "The highlighted item has a different type in the different directories. " #| "Select what to do." msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Файли интихобшуда дар ҳар каталог шкли гуногун дорад. Чӣ кор карданро " "интихоб кунед." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "Ҳоло якҷояшавии каталогҳо ҳал карда мешавад." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Дар этапи ҷорӣ хатогие ба амал омад.\n" "Давом додан ё сар додан?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Давом додан баъди хатогӣ" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Давом додан" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Сар додан" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Са дода шуд." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "Кор рафта истодааст..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Якҷояшавӣ ба анҷом расид." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Якҷояшавӣ ба анҷом расид" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "Якҷояшавӣ ба анҷом расид. Оё шумо бо тағйиротҳои додашуда розӣ ҳастед?" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Хатогӣ ба амал омад. Барои ахбороти илова OK-ро пахш кунед.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Хатогӣ: Наметавонам нусхаи захираро эҷод кунам %1." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "нест кардани каталог рекурсивӣ( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "нест кардан( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "Хатогӣ: наметавонам каталогро нест кунам." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Хатогӣ: хатогии rmdir( %1 )." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Хатогӣ: наметавонам нест кунам." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "якҷояшавии дастӣ( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr " Қайд: Баъди анҷоми якҷояшавии дастӣ F7-ро пахш кунед." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Хатогӣ: наметавонам( %1 -> %2 ) нусха кунам. Нест кардани муайяни вуҷулшуда " "муяссар карда нашуд." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "бадарғаи нишонавӣ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "Хатогӣ: Бадарғаҳои нестшуда пуштибонӣ карда намешаванд." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Хатогӣ: наметавонам бадарғаро эҷод кунам." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "нусха кардани ( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Хатогӣ дар вақти тағйири ном( %1 -> %2 ): Наметавонам муайяни вуҷудшударо " "нест кунам." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "тағйири ном( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Хатогӣ: Наметавонам тағйири номро кунам." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Хатогӣ дар вақти эҷод кардани каталоги %1. Файли вуҷудшуда нест карда " "намешавад." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "эҷоди каталог( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Хатогӣ дар вақти эҷод кардани каталог." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Муайяншуда" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Каталог" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Шакл" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Андоза" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Хусусиятҳо" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Тағйироти охирон" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Бадарғаи-объект" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "дастрас нест" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (муайяншуда): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (баромад): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (муайяншуда): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (муайяншуда): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Муаяйншуда: " #: directorymergewindow.cpp:2836 #, fuzzy msgid "Save Directory Merge State As..." msgstr "Хатогӣ дар вақти хониши каталог" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Сар кардан/давом додани якҷояшаии каталогҳо" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Ба кор даровардан барои нуқтаи ҷорӣ" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Муқоисаи файли интихобшуда" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Якҷоя кардани файли ҷорӣ" #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "Пайваст кардан" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Дохили ҳамаи зеркаталогҳо" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Дохилнашудаи ҳамаи зеркаталогҳо" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Интихоби A барои ҳама" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Интихоби B барои ҳама" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Интихоби C барои ҳама" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Худ-интихобкунии шакли амал барои ҳама" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Гирифтани амалҳо барои ҳама" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 #, fuzzy msgid "Show Different Files" msgstr "Миқдори файлҳои ҳархела:" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 #, fuzzy msgid "Compare Explicitly Selected Files" msgstr "Муқоисаи файли интихобшуда" #: directorymergewindow.cpp:2986 #, fuzzy msgid "Merge Explicitly Selected Files" msgstr "Муқоисаи файли интихобшуда" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Ягон чиз" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 #, fuzzy msgid "Delete A && B" msgstr "Нест кардани А ва В" #: directorymergewindow.cpp:3003 #, fuzzy msgid "Merge to A && B" msgstr "Пайваст кардан ба A & В" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy msgid "kdiff3" msgstr "KDiff3Part" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "Аз буфери иваз" #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy #| msgid "Directory Comparison Status" msgid "Directory Equality-Coloring patch" msgstr "Ҳолати муқоисакунии каталогҳо" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy #| msgid "Merge Error" msgid "Sergey Zorin" msgstr "Хатогии якҷояшавӣ" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "Ягон чиз" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" #: main.cpp:196 msgid "Merge the input." msgstr "Якҷоя даровардан." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" "Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Баромади файл.Тахмин кардани мавҷуд ҳамчун-m. Мисли: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Барориши файл.(Барои мутобиқ бо асбобҳои монанд.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "Миқдори файлҳои ҳархела:" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" #: main.cpp:212 msgid "file2 to open" msgstr "" #: main.cpp:213 msgid "file3 to open" msgstr "" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "" #: mergeresultwindow.cpp:850 #, fuzzy msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро" #: mergeresultwindow.cpp:851 #, fuzzy msgid "" "\n" "Nr of unsolved conflicts: " msgstr "Равед ба Ҷанҷоли Дар пеш интизори Ҳалнашуда" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 #, fuzzy msgid "" msgstr "Якҷояшавӣ ба анҷом расид" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 #, fuzzy msgid "" msgstr "Якҷояшавӣ ба анҷом расид" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 #, fuzzy msgid "File Save Error" msgstr "Хатогӣ дар кушодани файл" #: mergeresultwindow.cpp:2792 #, fuzzy msgid "Error while writing." msgstr "Хатогӣ дар вақти эҷод кардани каталог." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy msgid "Conflict" msgstr "Якҷояшавӣ ба анҷом расид" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Файл барои муқоиса ёфт нашуд." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Наметавонам нусхаи кӯҳнаи захираро нест кунам. \n" "Номи файл: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Наметавонам номгузориро ҳал кунам. \n" "Номи файлҳо: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Гирифтани ҳолати файл: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Хониши файл: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Навишти файл: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Аз хотира" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Эҷоди каталогҳо : %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Дур кардани директория: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Дур кардани файл: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Сохтани пайвасти рамзӣ: %1-> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Аз нав номгузории файл: %1-> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Нусха бардошатани: %1-> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Хато дар вақти амалиёти нусхабардории файл: Кушодани файл барои хондан нашуд." "Номи Файл: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Хато дар вақти амалиёти нусхабардории файл: Кушодани файл барои хондан нашуд." "Номи Файл: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Хато дар вақти амалиёти нусхабардории файл: Хондани нашуд.Номи Файл: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Хато дар вақти амалиёти нусхабардории файл: Навиштан нашуд.Номи Файл: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Хондани директория: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Нигоҳ кардани директория: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy #| msgid "Link: " msgid "Line" msgstr "Алоқа: " #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "дастрас нест" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 #, fuzzy msgid "Top line" msgstr "Сатри яккум%1" #: difftextwindow.cpp:1769 msgid "End" msgstr "Охир" #: kdiff3.cpp:169 #, fuzzy msgid "Current Configuration:" msgstr "Тағйироти ҳамаи якҷошавиҳо" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "Хатогӣ дар кушодани файл" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Интихоб --худ истифода шуда, аммо ягон файли хуруҷ муайян карда нашуд." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Интихоб --худ аҳамият надиҳи барои муқоисаи директория." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Нигоҳ куни нашуд." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Кушодани ин файлҳо нашуд:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Хатогӣ дар кушодани файл" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Мекушояд документҳоро барои муқоиса..." #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "Тайёр аст." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Нигоҳ медорад натиҷаи якҷошавиро. Ҳамаи ҷанҷолҳо бояд ҳал карда шаванд!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Нигоҳ медорад документи ҷориро мисли..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Маҳкам мекунад аризаро" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Мебурад қисми интихоб карда шударо ва меандозад онро ба клипборд" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Нусха мебардорад қисми интихоб карда шударо ба клипборд" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "Мечаспонад таркиботҳои клибордро ба ҷойгиршавии амалӣ" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Ковтукови ришта" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Бори дигар ковтуков барои ришта" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Пайраҳаи ҳолати фаъол/ғайри фаъолро созед" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "Танзимоти KDiff3..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Равед ба Делтаи Ҷори" #: kdiff3.cpp:532 #, fuzzy #| msgid "Go to Current Delta" msgid "" "Current\n" "Delta" msgstr "Равед ба Делтаи Ҷори" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Равед ба Делтаи Аввала" #: kdiff3.cpp:534 #, fuzzy #| msgid "Go to First Delta" msgid "" "First\n" "Delta" msgstr "Равед ба Делтаи Аввала" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Равед ба Делтаи Охирон" #: kdiff3.cpp:536 #, fuzzy #| msgid "Go to Last Delta" msgid "" "Last\n" "Delta" msgstr "Равед ба Делтаи Охирон" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Равед ба Делтаи Пешангӣ" #: kdiff3.cpp:540 #, fuzzy #| msgid "Go to Previous Delta" msgid "" "Prev\n" "Delta" msgstr "Равед ба Делтаи Пешангӣ" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Равед ба Делтаи Дар пеш интизор" #: kdiff3.cpp:542 #, fuzzy #| msgid "Go to Next Delta" msgid "" "Next\n" "Delta" msgstr "Равед ба Делтаи Дар пеш интизор" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Равед ба Ҷанҷоли Пешангӣ" #: kdiff3.cpp:544 #, fuzzy msgid "" "Prev\n" "Conflict" msgstr "Якҷояшавӣ ба анҷом расид" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Равед ба Ҷанҷоли Дар пеш интизор " #: kdiff3.cpp:546 #, fuzzy #| msgid "Go to Next Conflict" msgid "" "Next\n" "Conflict" msgstr "Равед ба Ҷанҷоли Дар пеш интизор " #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Равед ба Ҷанҷоли Пешангии Ҳалнашуда" #: kdiff3.cpp:548 #, fuzzy #| msgid "Unsolved" msgid "" "Prev\n" "Unsolved" msgstr "Иҷозат дода нашуд" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Равед ба Ҷанҷоли Дар пеш интизори Ҳалнашуда" #: kdiff3.cpp:550 #, fuzzy #| msgid "Unsolved" msgid "" "Next\n" "Unsolved" msgstr "Иҷозат дода нашуд" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Интихоб кунед Рах(ҳо)-ро Аз А" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Интихоб кунед Рах(ҳо)-ро Аз В" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Зуд равед ба ҷанҷоли пешангии ҳалнашуда баъди интихоби сарчашма" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Нишон диҳед фосиларо && Феълҳои табулятори барои гуногуниҳо" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Нишон диҳед фосиларо" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Нишон диҳед рахи рақамҳоро" #: kdiff3.cpp:560 #, fuzzy #| msgid "Show Line Numbers" msgid "" "Line\n" "Numbers" msgstr "Нишон диҳед рахи рақамҳоро" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Интихоб кунед А-ро дар ҳамаҷой" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Интихоб кунед В-ро дар ҳамаҷой" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Интихоб кунед В-ро дар ҳамаҷой" #: kdiff3.cpp:564 #, fuzzy msgid "Choose A for All Unsolved Conflicts" msgstr "Интихоб кунед А-ро барои ҳамаи ҷанҷолҳои ҳалнашуда" #: kdiff3.cpp:565 #, fuzzy msgid "Choose B for All Unsolved Conflicts" msgstr "Интихоб кунед В-ро барои ҳамаи ҷанҷолҳои ҳалнашуда" #: kdiff3.cpp:566 #, fuzzy msgid "Choose C for All Unsolved Conflicts" msgstr "Интихоб кунед С-ро барои ҳамаи ҷанҷолҳои ҳалнашуда" #: kdiff3.cpp:567 #, fuzzy msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Интихоб кунед А-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда" #: kdiff3.cpp:568 #, fuzzy msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Интихоб кунед В-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда" #: kdiff3.cpp:569 #, fuzzy msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Интихоб кунед С-ро барои фосилаи ҳамаи ҷанҷолҳои ҳалнашуда" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Танзим кунед делтаҳоро ба ҷанҷолҳо" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 #, fuzzy msgid "Automatically Solve History Conflicts" msgstr "Зуд ҳал мекунад ҷанҷолҳои оддиро" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 #, fuzzy msgid "Join Selected Diffs" msgstr "Муқоисаи файли интихобшуда" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Нишон диҳед Тирезаи А-ро" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Нишон диҳед Тирезаи В-ро" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Нишон диҳед Тирезаи С-ро" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Активация кардани дигар тиреза" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Оддӣ аз назар гузарондан" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "Аз назар гузарондани A vs. B " #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "Аз назар гузарондани A vs. C" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "Аз назар гузарондани B vs. C" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Калимаи печидаи тирезаҳои гуногун" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Активация кардани тирезаи гузашта" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Дигаркунӣ ва тақсимкунии ҷои исти худ" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "аппп" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Дигаркунӣ байни феҳристҳо && намоиши матн" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Натиҷаи иттиҳодия нигоҳ надоштагӣ." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Нигоҳ доштан && баромадан" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Бе нигоҳдорӣ баромадан" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Натиҷаи якҷоя кардан,нигоҳ дошта нашуд." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "Якҷояшавии каталогро нигоҳ дорем.Оё,шумо дилпур мехоҳед, баровардан?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Нигоҳ доштани файл..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Бо номи нав нигоҳ доштани файл..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "Якҷояшавӣ ба анҷом расид." #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "Баромад..." #: kdiff3.cpp:956 #, fuzzy msgid "Selection" msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "Якҷояшавӣ ба анҷом расид." #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "Якҷояшавӣ ба анҷом расид." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Баромад..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Тасвир кардан/панели асбобҳои пинҳонӣ..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Тасвир кардан/вазъияти панели пинҳонӣ..." #: smalldialogs.cpp:58 #, fuzzy msgid "A (Base):" msgstr "A (баромад): " #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 #, fuzzy msgid "Dir..." msgstr "Каталог" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "" #: smalldialogs.cpp:168 #, fuzzy msgid "Configure..." msgstr "Танзимоти KDiff3..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 #, fuzzy msgid "Search text:" msgstr "Пайдо кардан:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Ба ҳисоб гирифтани рӯйхат" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Ҷустуҷуи A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Ҷустуҷуи B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Ҷустуҷуи C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Ҷустуҷу дар ҷамъбаст" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Ҷустуҷӯ" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 #, fuzzy msgid "Match failed." msgstr "Нигоҳ куни нашуд." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 #, fuzzy msgid "Configure" msgstr "Танзимоти KDiff3..." #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "" #: optiondialog.cpp:603 msgid "Background color:" msgstr "" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 #, fuzzy msgid "Directory Comparison View:" msgstr "Ҳолати муқоисакунии каталогҳо" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy msgid "Dos/Windows" msgstr "Нишон диҳед Тирезаи С-ро" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "KDiff3Part" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "Воситаи муқоиса ва якҷоя кардан" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "Воситаи муқоиса ва якҷоя кардан" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 #, fuzzy #| msgid "Show Window A" msgid "Show info dialogs" msgstr "Нишон диҳед Тирезаи А-ро" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "Миқдори зеркаталогҳо:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy msgid "Directory" msgstr "Хониши каталоги А" #: optiondialog.cpp:1075 #, fuzzy msgid "Recursive directories" msgstr "Мушоҳидакунии каталогҳо..." #: optiondialog.cpp:1077 #, fuzzy msgid "Whether to analyze subdirectories or not." msgstr "Ҳуқуқҳои ин каталогҳоро тафтиш кунед." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 #, fuzzy msgid "Binary comparison" msgstr "Ҳолати муқоисакунии каталогҳо" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 #, fuzzy msgid "Synchronize directories" msgstr "Мушоҳидакунии каталогҳо..." #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "Амал" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 #, fuzzy msgid "Select Another Font" msgstr "Интихоб кунед Рах(ҳо)-ро Аз С" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "" #: pdiff.cpp:304 msgid "Loading B" msgstr "" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "" #: pdiff.cpp:1087 pdiff.cpp:1175 #, fuzzy msgid "Opening files..." msgstr "Кушодан %1 нашуд." #: pdiff.cpp:1152 pdiff.cpp:1223 #, fuzzy msgid "File open error" msgstr "Хатогӣ дар кушодани файл" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "" #: pdiff.cpp:1276 #, fuzzy msgid "Copying selection to clipboard..." msgstr "Нусха мебардорад қисми интихоб карда шударо ба клипборд" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "" #: pdiff.cpp:1814 #, fuzzy msgid "Save && Continue" msgstr "Нигоҳ доштан && баромадан" #: pdiff.cpp:1815 #, fuzzy msgid "Continue Without Saving" msgstr "Бе нигоҳдорӣ баромадан" #: pdiff.cpp:2018 #, fuzzy msgid "Search complete." msgstr "Ҷустуҷу дар ҷамъбаст" #: pdiff.cpp:2018 #, fuzzy msgid "Search Complete" msgstr "Якҷояшавӣ ба анҷом расид" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "Хатогӣ дар вақти эҷод кардани каталог." #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not find our part!\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Қисми мо ёфт нашуд!\n" "Ин масъала одатан дар вақти аниқ рӯй медиҳад.Файли README-ро хонед, ҷой ва " "калидро ба тафсил баён кунед." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 #, fuzzy msgid "&KDiff3" msgstr "KDiff3Part" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 #, fuzzy msgid "Configure KDiff3" msgstr "Танзимоти KDiff3..." #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 #, fuzzy msgid "KDiff3" msgstr "KDiff3Part" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #, fuzzy #~ msgid "Directory Merge" #~ msgstr "Хатогӣ дар вақти хониши каталог" #~ msgid "C&ontinue" #~ msgstr "&Давом додан" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "" #~ "Tajik KDE Teams: Марина Колючева, Виктор Ибрагимов, Курбанова Гулноз " #~ "Акмал Ватаншоев, Эркинҷон Пулатов, Довудӣ Гулшод" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "youth_opportunities@tajik.net erkin_pulatov@mail.ru" #~ msgid "Enables/disables the toolbar" #~ msgstr "Пайраҳаи асбоби фаъол/ғайри фаъолро созед" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "Воситаи муқоиса ва якҷоя кардан" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "Хатогӣ дар вақти хониши каталог" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "Хатогӣ дар вақти хониши каталог" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "Мушоҳидакунии каталогҳо..." #, fuzzy #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "" #~ "Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда." #, fuzzy #~ msgid "For compatibility with certain tools." #~ msgstr "" #~ "Эзоҳ додани маълумоти файл.Барои мутобиқ будан бо асбобҳои муқаррар- шуда." kdiff3-0.9.97/po/create_qm_files0000644000175100001440000000344712010276204016005 0ustar joachimusers# Copyright (C) 2009 by Joachim Eibl # Licence: GPL V2 # GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA # # For details see file "COPYING". # create_qm_files: # Create translation files needed by qt-only version. # Requirements: lconvert from qt4 (Thanks to Richard Hoyle for that tip) export LANG=en_US.UTF-8 echo "Create qm files (KDiff3 translation files for the qt-only version)" if [ "$1" = "local" ]; then if ["$2" = ""]; then path=. else path=$2 fi echo "destination: $path" for i in `ls ` ; do if [ -s $i/kdiff3.po ]; then echo Creating ./kdiff3_$i.qm lconvert -if po -of qm -o $path/kdiff3_$i.qm $i/kdiff3.po fi done elif [ "$1" = "install" ]; then for i in `ls` ; do if [ -s $i/kdiff3.po ]; then echo Installing /usr/share/locale/$i/LC_MESSAGES/kdiff3.qm sudo lconvert -if po -of qm -o /usr/share/locale/$i/LC_MESSAGES/kdiff3.qm $i/kdiff3.po fi done else echo "Usage 1: sh create_qm_files local (if empty current is used)" echo "Usage 2: sh create_qm_files install" fi kdiff3-0.9.97/po/zh_TW/0000755000175100001440000000000011626145654014003 5ustar joachimuserskdiff3-0.9.97/po/zh_TW/kdiff3plugin.po0000644000175100001440000000563011626145605016730 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Frank Weng (a.k.a. Franklin) , 2009. # Franklin Weng , 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-12 11:15+0800\n" "Last-Translator: Franklin Weng \n" "Language-Team: Chinese Traditional \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "與 %1 比較" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "與 %1 合併" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "將 %1 儲存起來備用" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "三方與基底合併" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "比較對象:" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "清除清單" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "比較" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "三方比較" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "關於 KDiff3 選單外掛程式" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 選單外掛程式:Copyright (C) 2008 Joachim Eibl\n" "KDiffe 首頁:http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "使用內文選單延伸:\n" "選擇「比較」簡單比較兩個選取的檔案。\n" "若是另一個檔案在別處,請先「儲存」第一個檔案稍後使用,然後它會出現「比較對" "象:」的子選單。再用它選擇第二個檔案。\n" "要做三方的合併,先儲存基底檔,然後是要合併的分支,然後在做為目標的分支中選擇" "「三方與基底合併」。\n" "這些延伸對目錄的比較與合併也有效。" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "關於 KDiff3 選單外掛程式" kdiff3-0.9.97/po/zh_TW/CMakeLists.txt0000644000175100001440000000016611626145605016542 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(zh_TW ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/zh_TW/kdiff3fileitemactionplugin.po0000644000175100001440000000567211626145605021653 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Franklin Weng , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-12 11:15+0800\n" "Last-Translator: Franklin Weng \n" "Language-Team: Chinese Traditional \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "與 %1 比對" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "與 %1 合併" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "先儲存 %1" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "與基底做三方合併" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "比較對象..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "清除清單" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "比較" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "三方比對" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "關於 KDiff3 選單外掛程式..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 檔案項目動作外掛程式:Copyright (C) 2011 Joachim Eibl\n" "KDiff3 首頁:http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "使用內文選單延伸:\n" "選擇「比較」簡單比較兩個選取的檔案。\n" "若是另一個檔案在別處,請先「儲存」第一個檔案稍後使用,然後它會出現「比較對" "象:」的子選單。再用它選擇第二個檔案。\n" "要做三方的合併,先儲存基底檔,然後是要合併的分支,然後在做為目標的分支中選擇" "「三方與基底合併」。\n" "這些延伸對目錄的比較與合併也有效。" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "關於 KDiff3 檔案項目動作外掛程式" kdiff3-0.9.97/po/zh_TW/kdiff3.po0000644000175100001440000017332711626145605015522 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Frank Weng (a.k.a. Franklin) , 2009. # Franklin Weng , 2010. # Franklin Weng , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-12 11:19+0800\n" "Last-Translator: Franklin Weng \n" "Language-Team: Chinese Traditional \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=1; plural=0;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "繼續" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "取消" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "離開" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "確定" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "說明" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "預設值" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "檔案(&F)" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "編輯(&E)" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "目錄(&D)" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "移動(&M)" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "差異檢視(&I)" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "合併(&M)" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "視窗(&W)" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "設定(&S)" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "說明(&H)" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "關於(&A)" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "作者(&U)" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "感謝(&T)" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "目前項目合併操作" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "目前項目同步操作" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "開啟" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "儲存" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "另存新檔..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "列印..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "剪下" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "複製" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "貼上" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "全部選擇" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "顯示工具列" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "顯示狀態列(&S)" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "設定 %1(&C)..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "關於" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "尋找" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "尋找下一個" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "選擇字型" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "忽略" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "離開" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "" #: diff.cpp:255 msgid "From Clipboard" msgstr "從剪貼簿" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "資料遺失錯誤:\n" "如果這個問題可重複發生,請與作者聯繫。\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "嚴重內部錯誤" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "連結與一般檔案混合。" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "連結:" #: directorymergewindow.cpp:151 msgid "Size. " msgstr "大小。" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "日期與大小:" #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "建立 %1 的暫存複本失敗。" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "開啟 %1 失敗。" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "比較檔案中..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "從 %1 讀取時發生錯誤" #: directorymergewindow.cpp:358 msgid "Name" msgstr "名稱" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "操作" #: directorymergewindow.cpp:358 msgid "Status" msgstr "狀態" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "未解決" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "已解決" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "非白" #: directorymergewindow.cpp:359 msgid "White" msgstr "白" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "警告" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "重新掃描" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "繼續合併" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "開啟目錄失敗:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "目錄 A \"%1\" 不存在,或不是目錄。\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "目錄 B \"%1\" 不存在,或不是目錄。\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "目錄 C \"%1\" 不存在,或不是目錄。\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "目錄開啟時發生錯誤" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "參數警告" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "掃描目錄中..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "讀取目錄 A 中" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "讀取目錄 B 中" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "讀取目錄 C 中" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "此目錄裡的某些子目錄無法讀取:" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "請檢查子目錄的權限。" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "已就緒。" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "目錄比較狀態" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "子目錄數量:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "相同檔案數量:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "不同檔案數量:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "手動合併數量:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "這會影響所有的合併操作。" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "變更所有合併操作" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "處理中" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "待辦。" #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "將 A 複製到 B" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "將 B 複製到 A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "刪除 A" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "刪除 B" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "刪除 A 與 B" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "合併到 A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "合併到 B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "合併到 A 與 B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "刪除(若存在)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "合併" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "合併(手動)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "錯誤:衝突的檔案型態" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "錯誤:已變更與刪除" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "錯誤:日期相同,但檔案不同。" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "此操作目前無法運作。" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "無法進行操作" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "這個錯誤不應發生:\n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "若是您知道怎麼重現此錯誤,請與程式作者聯繫。" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "程式錯誤" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "複製時發生錯誤。\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "錯誤" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "合併錯誤" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "錯誤。" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "完成。" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "未儲存。" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "未知的合併操作。(此問題不應該發生!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "未知的合併操作。" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "準備開始合併。\n" "\n" "若是您已經讀完說明並知道自己在做什麼,就選擇「做吧!」\n" "您也可以先選擇「先模擬一次」來看看結果。\n" "\n" "要注意,這個程式仍然在測試階段,不保證結果是否有問題。請先備份您的重要資料!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "開始合併" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "做吧!" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "先模擬一次" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "在錯誤之後繼續合併" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "繼續上一個項目" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "跳過項目" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "已跳過。" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "進行中..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "合併操作完成。" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "合併完成" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "模擬合併完成:請檢查是否同意此合併結果。" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "發生錯誤。按「確定」看詳細資訊。\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "錯誤:刪除 %1 時建立備份失敗。" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "遞迴刪除目錄(%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "刪除(%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "複製連結( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "錯誤:複製連結失敗。尚未支援遠端連結。" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "錯誤:複製連結失敗。" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "複製(%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "重新命名(%1->%2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "目標" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "方向" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "型態" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "大小" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "屬性" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "上次變更" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "連結目標" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "檔案" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "無" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A(目標):" #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A(基底):" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B(目標):" #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C(目標):" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "目標:" #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "不做任何事" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "刪除 A 與 B" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "合併到 A 與 B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "已忽略。(使用者定義)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "修正錯誤,Debian 套件維護" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows 安裝器" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "協助國際化" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "剪貼簿修補" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-協助" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "從 Cervisia 提供 Class CvsIgnoreList" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Class StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "目錄比對顏色修補" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "修正 Windows 下啟動緩慢的問題" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Windows 的差異延伸" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU 差異比對工具" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "測試、使用與回饋" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac 支援" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE4 移植" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "並且感謝許多回報錯誤與貢獻主意的朋友們。" #: main.cpp:196 msgid "Merge the input." msgstr "合併輸入。" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 msgid "Use a different config file." msgstr "" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "要開啟的檔案 1(若未指定 --base 則以此為基底)" #: main.cpp:212 msgid "file2 to open" msgstr "要開啟的檔案 2" #: main.cpp:213 msgid "file3 to open" msgstr "要開啟的檔案 3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "輸出已被變更。\n" "若您繼續,您的變更將會遺失。" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "所有輸入檔都有相同的內容。" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "所有輸入檔都有相同的文字內容。" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "檔案 %1 與 %2 內容完全相同。\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "檔案 %1 與 %2 內容文字完全相同。\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "總衝突數:" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "自動解決衝突數:" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "未解決衝突數:" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "衝突" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "檔案儲存錯誤" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "輸出" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[已修改]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "儲存的編碼" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "行結尾樣式:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "衝突" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "編解碼器" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "找不到要比較的檔案。" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "正在讀取檔案:%1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "正在寫入檔案:%1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "記憶體不足" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "產生目錄中:%1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "移除目錄中:%1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "移除檔案中:%1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "建立符號連結中:%1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "重新命名檔案中:%1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "正在複製檔案中:%1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "取消(&C)" #: difftextwindow.cpp:403 msgid "Line" msgstr "行號" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "無法取得行號" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "編碼:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "頂端行" #: difftextwindow.cpp:1769 msgid "End" msgstr "結束" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "目前設定:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "儲存失敗。" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "開啟這些檔案失敗:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "檔案開啟失敗" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "開啟要比較的文件..." #: kdiff3.cpp:479 msgid "Reload" msgstr "重新載入" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "" #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "離開應用程式" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "剪下所選取的部分並放到剪貼簿" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "複製所選取的部分並放到剪貼簿" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "貼上剪貼簿內容到目前位置" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "啟動/關閉狀態列" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "顯示行號" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "離開但不儲存" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "正在儲存檔案..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "正在用新檔名儲存檔案..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "" #: kdiff3.cpp:815 msgid "Printing..." msgstr "正在列印..." #: kdiff3.cpp:956 msgid "Selection" msgstr "選擇" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "正在離開..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "切換工具列..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "切換狀態列..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "檔案..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "方向..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (選擇性):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "交換 %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "複製 %1 -> 輸出" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "交換 %1 <-> 輸出" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "輸出 (選擇性):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "設定..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "確定(&O)" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "搜尋文字:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "區分大小寫" #: smalldialogs.cpp:372 msgid "Search A" msgstr "搜尋 A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "搜尋 B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "搜尋 C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "搜尋輸出" #: smalldialogs.cpp:392 msgid "&Search" msgstr "搜尋(&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "正規表示式測試器" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "自動合併正規表示式:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "確定" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "萬國碼" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" #: optiondialog.cpp:465 msgid "Configure" msgstr "設定" #: optiondialog.cpp:531 msgid "Font" msgstr "字型" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" #: optiondialog.cpp:568 msgid "Color" msgstr "顏色" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "前景顏色:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "背景顏色:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "" #: optiondialog.cpp:620 msgid "Color A:" msgstr "" #: optiondialog.cpp:628 msgid "Color B:" msgstr "" #: optiondialog.cpp:636 msgid "Color C:" msgstr "" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "編輯器" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "定位字元寬度:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "視窗(&W)" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" #: optiondialog.cpp:784 msgid "Diff" msgstr "比較" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Diff 設定" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "目錄" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr "" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "區域設定" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 msgid "Integration" msgstr "整合" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "" #: pdiff.cpp:300 msgid "Loading A" msgstr "載入 A 中" #: pdiff.cpp:304 msgid "Loading B" msgstr "載入 B 中" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "" #: pdiff.cpp:338 msgid "Loading C" msgstr "載入 C 中" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "所有輸入檔都有相同的文字內容,但檔案內容卻不完全相同。" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "檔案 %1 與 %2 內容文字完全相同,但檔案內容不完全相同。\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "中止" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "開啟檔案中..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "檔案開啟失敗" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "正在剪下所選取的項目..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "正在複製所選取的項目到剪貼簿..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "正在插入剪貼簿內容..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "儲存並繼續" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "不儲存但繼續" #: pdiff.cpp:2018 msgid "Search complete." msgstr "搜尋完成。" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "搜尋完成" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "新增手動比對範圍時發生錯誤" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Frank Weng (a.k.a. Franklin)" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "franklin at goodhorse dot idv dot tw" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "KDiff3(&K)" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "設定 KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "主工具列" kdiff3-0.9.97/po/update_po_dir0000644000175100001440000001024711626145607015513 0ustar joachimusers# Copyright (C) 2008 by Joachim Eibl # Licence: GPL V2 # GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA # # For details see file "COPYING". # update_po_dir: # automatically fetch the most recent translations from the websvn.kde.org server # and update all files for translations # Requirements: wget, gettext-tools, qt3-devel-tools export getFiles=1 export rmFiles=1 while getopts ":g:r:" opt; do case $opt in g) getFiles=$OPTARG ;; r) rmFiles=$OPTARG ;; \?) echo "Invalid option: -$OPTARG" >&2 ;; esac done echo "Remove temp files: $rmFiles" echo "Get files: $getFiles" export LANG=en_US.UTF-8 # extract extra strings xgettext --keyword=i18n --keyword=I18N_NOOP -C ../src-QT4/kreplacements/kreplacements.cpp -o kreplacements.pot sed -i /add_subdirectory/d CMakeLists.txt if [ $getFiles -eq 1 ]; then wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/subdirs -O subdirs fi for i in `cat subdirs` ; do # Many languages don't have translations so don't worry about errors too much. if [ $getFiles -eq 1 ]; then wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3.po -O $i.po # if file exists and has size greater than zero if [ $i != "x-test" -a -s $i.po ]; then if [ -s $i.po ]; then # if directory exists delete it recursively and recreate it if [ -d $i ]; then rm -R $i fi mkdir $i mv $i.po $i/kdiff3.po fi fi if [ -e $i.po ]; then rm $i.po # possibly empty file fi fi if [ -s $i/kdiff3.po ]; then echo $i sed s/xx/$i/ CMakeLists_xx.txt >$i/CMakeLists.txt if [ $getFiles -eq 1 ]; then # Same for the kdiff3plugin.po-file wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3plugin.po -O $i/kdiff3plugin.po if [ ! -s $i/kdiff3plugin.po ]; then rm $i/kdiff3plugin.po fi # Same for the kdiff3fileitemactionplugin.po-file wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/extragear-utils/kdiff3fileitemactionplugin.po -O $i/kdiff3fileitemactionplugin.po if [ ! -s $i/kdiff3fileitemactionplugin.po ]; then rm $i/kdiff3fileitemactionplugin.po fi # Create qm-files # The qm files are only needed for the qt-only version, not for the KDE-version. wget http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/messages/kdelibs/kdelibs4.po -O kdelibs_$i.po fi # (msgmerge and msgcat are from "gettext-tools"-package.) msgmerge --no-fuzzy-matching kdelibs_$i.po kreplacements.pot >kreplacements_$i.po msgcat --use-first $i/kdiff3.po kreplacements_$i.po >kdiff3_$i.po # (msg2qm is from "qt3-devel-tools"-package.) #/usr/lib/qt3/bin/msg2qm kdiff3_$i.po kdiff3_$i.qm # lconvert is from qt4 (libqt4-devel) sed -i "/#~/d;/#,/d" kdiff3_$i.po lconvert -if po -of qm -o kdiff3_$i.qm kdiff3_$i.po if [ $rmFiles -eq 1 ]; then rm kdelibs_$i.po kdiff3_$i.po kreplacements_$i.po fi echo add_subdirectory\($i\) >>CMakeLists.txt fi done # Print some info echo Translated items per language: for i in `cat subdirs` ; do if [ -s $i/kdiff3.po ]; then echo $i `grep msgstr $i/kdiff3.po | grep -v \"\" | wc -l` fi done if [ $rmFiles -eq 1 ]; then rm subdirs rm kreplacements.pot fi kdiff3-0.9.97/po/ta/0000755000175100001440000000000011626145654013354 5ustar joachimuserskdiff3-0.9.97/po/ta/CMakeLists.txt0000644000175100001440000000016311626145606016111 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ta ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ta/kdiff3.po0000644000175100001440000032075111626145606015067 0ustar joachimusers# translation of kdiff3.po to # translation of kdiff3.po to # translation of kdiff3.po to # translation of kdiff3.po to Tamil # Copyright (C) 2004 Free Software Foundation, Inc. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # , 2004. # Ambalam , 2004. # root , 2004. # msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2004-08-24 04:28+0530\n" "Last-Translator: I. Felix \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 #, fuzzy #| msgid "C&ontinue" msgid "Continue" msgstr "தொடர்தல்" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 #, fuzzy #| msgid "File..." msgid "&File" msgstr "கோப்பு" #: kreplacements/kreplacements.cpp:297 #, fuzzy #| msgid "Editor" msgid "&Edit" msgstr "திருத்தியவர்" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "அடைவு" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "நகர்த்துவது " #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "வித்தியாச பார்வை" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "ஒன்றாகச்சேர்" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "சாளரங்கள்" #: kreplacements/kreplacements.cpp:305 #, fuzzy msgid "&Settings" msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "" #: kreplacements/kreplacements.cpp:353 #, fuzzy #| msgid "Abort" msgid "&About" msgstr "விடுதல்" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "நடப்பு உருப்படி ஒற்றிணை செயற்பாடு " #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "நடப்பு உருப்படி இசைவு செயற்பாடு" #: kreplacements/kreplacements.cpp:597 #, fuzzy #| msgid "Operation" msgid "Open" msgstr "இயக்கம்." #: kreplacements/kreplacements.cpp:606 #, fuzzy #| msgid "Solved" msgid "Save" msgstr "Solved" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "" #: kreplacements/kreplacements.cpp:623 #, fuzzy msgid "Print..." msgstr "வெளியேறுதல்..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "" #: kreplacements/kreplacements.cpp:663 #, fuzzy #| msgid "Delete A" msgid "Select All" msgstr " A ஐ நீக்கு" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "" #: kreplacements/kreplacements.cpp:687 #, fuzzy, kde-format #| msgid "Configure..." msgid "&Configure %1..." msgstr "அமை" #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 #, fuzzy #| msgid "Abort" msgid "About" msgstr "விடுதல்" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "" #: kreplacements/kreplacements.cpp:750 #, fuzzy #| msgid "Select Another Font" msgid "Select Font" msgstr "மற்றொரு எழுத்துருவை தேர்தெடு" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "நீங்கள் மாற்றக்கூடிய அகல எழுத்துருவை தேர்தெடுத்துள்ளீர்கள்\n" "இதற்கு காரணம் இந்த நிரல் மாற்றக் கூடிய அகலமான எழுத்துருவை கையாளாது. திருத்தங்கள் " "செய்யும் பொழுதுப் பிரச்சனைகளை சந்தித்ருக்கலாம், சரியாக நீங்கள் தொடர வேண்டுமா அல்லது, வேறு " "எழுத்துருவை தேர்ந்தெடுக்கிறீர்களா." #: kreplacements/kreplacements.cpp:792 #, fuzzy #| msgid "Incompatible Font" msgid "Incompatible font." msgstr "கச்சிதமில்லாத எழுத்துரு" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Continue at Own Risk" msgid "Continue at my own risk" msgstr "உங்களுடைய சொந்த ஆபத்தில் தொடரவும்" #: kreplacements/kreplacements.cpp:793 #, fuzzy #| msgid "Select Another Font" msgid "Select another font" msgstr "மற்றொரு எழுத்துருவை தேர்தெடு" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "KDiff3" msgid "KDiff3-Usage" msgstr "KDiff3" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Ignore case" msgid "Ignore" msgstr "Ignore case" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "Editor" msgid "Exit" msgstr "திருத்தியவர்" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "க்ளிப்போர்டின் எழுத்தின் தரத்தில் உள்ள டெம்ப் கோப்பு தவறு." #: diff.cpp:255 msgid "From Clipboard" msgstr "கிளிப் போர்டிலிருந்து." #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "முன்செயலிகள் தவறு. கட்டளையை சரிப்பார்:\n" "\n" " %1\n" "\n" "முன்செயலிகள் கட்டளையை இப்பொழுதே முடக்கு," #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "முன்செயலிகள் தவறு. கட்டளையை சரிப்பார்:\n" "\n" " %1\n" "\n" "வரிசெல்களின் கட்டளையை இப்பொழுதே முடக்கு," #: diff.cpp:1776 diff.cpp:1790 #, fuzzy #| msgid "" #| "Data loss error:\n" #| "If it is reproducable please contact the author.\n" msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "தகவல் தவறானது.\n" "மீண்டும் உற்பத்தியானால் ஆசிரியரை அணுகவும்.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "கடுமையான உள்சார்ந்த தவறு." #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "இணைப்புகள் மற்றும் கோப்புகள் கலந்து உள்ளன." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "இணைப்பு." #: directorymergewindow.cpp:151 msgid "Size. " msgstr "அளவு." #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "தேதி மற்றும் அளவு." #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "வார்ப்புரு படியெடு உருவாக்குவது %1 இயலவில்லை." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "திறப்பதற்கு %1 இயலவில்லை." #: directorymergewindow.cpp:213 #, fuzzy msgid "Comparing file..." msgstr "கோப்பினை ஒப்பிடுகிறது...." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1னிலிருந்து படிக்கும் பிழை" #: directorymergewindow.cpp:358 msgid "Name" msgstr "பெயர்." #: directorymergewindow.cpp:358 msgid "Operation" msgstr "இயக்கம்." #: directorymergewindow.cpp:358 msgid "Status" msgstr "நிலை." #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Unsolved" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Solved" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Nonwhite" #: directorymergewindow.cpp:359 msgid "White" msgstr "White" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "நீங்கள் தற்பொழுது ஒன்றாக சேர்க்கப்பட்ட அடைவை பயன்படுத்திக் கொண்டிருக்கிறீர்கள். நீங்கள் நிச்சயமாக " "ஒன்று சேர்ப்பதை நிறுத்திவிட்டு அடைவை மறுவருடலை விரும்புகிறீர்களா?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "மறுவருடல்" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "தொடர்ந்து ஒன்றாக சேர்." #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "அடைவு திறக்க இயலவில்லை:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "அடைவு எ \"%1\" இல்லை அல்லது அது ஒரு அடைவு இல்லை.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "அடைவு B \"%1\" உபயோகத்தில் இல்லை (அ) அது ஒரு அடைவே அல்ல.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "அடைவு C \"%1\" உபயோகத்தில் இல்லை (அ) அது ஒரு அடைவே அல்ல.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "திறந்த தகவல் தளம் தவறு." #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "மூன்று அடைவுகள் ஒன்று சேரும் பொழுது, சேரும் அடைவு A (அ) B போன்று இருக்கக் கூடாது.\n" "தொடர்வதற்கு முன் மீண்டும் சரிபார்க்கவும்." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "அளவுருக்கள் எச்சிரிகை." #: directorymergewindow.cpp:574 #, fuzzy msgid "Scanning directories..." msgstr "Scanning directories ..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "தகவல் தளம் 'ஏ'வை படிக்கவும்." #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "தகவல் தளம் 'பி'ஐ படிக்கவும்." #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "தகவல் தளம் 'சி'ஐ படிக்கவும்." #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "சில துணை அடைவுகளை படிக்க இயலவில்லை" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "துணை அடைவுகளின் அனுமதிகளை சரிபார்க்கவும்." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "தயார்." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "அடைவு ஒப்பிடும் நிலை" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "உப அடைவுகளின் எண்ணிக்கை:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "சம கோப்புகளின் எண்ணிக்கை:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "கைமுறை ஒன்று சேர்க்கையின் எண்ணிக்கை:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "இது அனைத்து ஒன்றுசேர் இயக்கங்களை பாதிக்கிறது." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "அனைத்து ஒன்றுசேர் இயக்கங்களை மாற்றிக்கொண்டிருக்கிறது" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "செயலாக்குதல்" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "அதை செய்." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr " A to B படியெடு" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "படியெடு B to A" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr " A ஐ நீக்கு" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B ஐ நீக்கு" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A & Bஐ நீக்கு " #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr " A ஐ ஒன்றாகச் சேர்." #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr " 'பி' ஐ ஒன்றாகச் சேர்." #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "A & B ஐ ஒன்றாகச் சேர்." #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "நீக்கு." #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "ஒன்றாகச் சேர்." #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "ஒன்றாகச் சேர்." #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "பிழை: குழப்ப கோப்பு வகைகள்" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "பிழை: தேதிகள் சமம் ஆனால் கோப்புகள் இல்லை." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "இந்த இயக்கம் தற்போது சாத்தியமில்லை." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "இயக்கம் சாதியமில்லை" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "இது எப்போதும் நிகழக்கூடாது: \n" "\n" "ஒன்றுசேர் விளைவு சேகரிக்கப்பட்டது: m_pMFI=0\n" "\n" "இதை மறு ஆக்கம் செய்ய தெரிந்தால், நிரல் எழுதியவரை அணுகவும்." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "நிரல் பிழை" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "நகலெடுக்கும்போது பிழை ஏற்பட்டுள்ளது.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 #, fuzzy #| msgid "Error." msgid "Error" msgstr "பிழை." #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "ஒன்றுசேர் பிழை" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "பிழை." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "முடிந்த." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "கோப்பு" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "தெரியாத ஒன்றுசேர் இயக்கம்.( இது ஒருபோதும் நிகழக்கூடாது)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "தெரியாத ஒன்றுசேர் இயக்கம்." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "ஒன்றுசேர்ப்பு தொடங்கப்பட உள்ளது.\n" "\n" "நீங்கள் நெறிமுறைகளைப் படித்து என்ன செய்கிறீர்கள் என்பதை அறிந்தால், \"இதை செய்க\" என்பதை " "தேர்ந்தெடுக்க.\n" "\"இதை போன்று நட\" என்பதை தேர்வு செய்தால் நிகழவிருப்பதை கூரும்.\n" "\n" "இந்த நிரல் இன்னும் பீடா நிலையில் தான் உள்ளது என்பதை கவனத்தில் கொள்க; மேலும் இதற்கு எந்தவித " "உத்திரவாதமும் கிடையாது! தங்களது இன்றியமையாத தகவல்களுக்கு பின்னணி " "அமைக்க! " #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "ஒன்று சேர்ப்பைத் துவக்குதல்" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "இதை செய்க" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "இதை போன்று நட" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "பலவிதமான அடைவுகளில் பலவகையாக தனிப்படுத்தப்பட்ட விவரம் உள்ளது. எதை செய்வதென்பதை " "தேர்ந்தெடுக்க." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "கோப்புகளின் திருத்திய தேதிகள் ஒன்றாக உள்ளது, ஆனால் கோப்புகள் இல்லை. எதை செய்வதென்பதை " "தேர்ந்தெடுக்க. " #: directorymergewindow.cpp:2123 #, fuzzy #| msgid "" #| "The highlighted item has a different type in the different directories. " #| "Select what to do." msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "பலவிதமான அடைவுகளில் பலவகையாக தனிப்படுத்தப்பட்ட விவரம் உள்ளது. எதை செய்வதென்பதை " "தேர்ந்தெடுக்க." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "இந்த செயற்பாடு தற்போது சாத்தியமில்லை ஏனென்றால் அடைவு ஒற்றினை தற்போது " "இயங்கிக்கொண்டிருக்கின்றது" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "கடைசி அடியில் பிழை இருந்தது.\n" "இந்த பிழையை ஏற்படுத்திய விவரத்துடன் தொடர விரும்புகிறீர்களா அல்லது அதை தவிர்க்க " "விரும்புகிறீர்களா?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "பிழைக்குப் பிறகு ஒன்று சேர்த்தலை தொடர்க" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "கடைசி விவரத்துடன் தொடர்க" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "விவரத்தை தவிர்க்க" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "தவிர்த்தது." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "செயல்பாட்டில் உள்ளது..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "ஒன்றுசேர்ப்பு முடிந்தது" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "போலியான ஒன்றுசேர்ப்பு முடிந்தது: முன்மொழிந்த இயக்கங்களுடன் நீங்கள் ஒத்துப்போகிறீர்களா என்பதை " "சரிபார்க்கவும்." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "பிழை ஏற்பட்டுள்ளது. விரிவான விவரங்களுக்கு சரி என்பதை அழுத்துக.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "பிழை: %1 நீக்கும்போது: பின்னணி உருவாக்கம் தோல்வியடைந்தது." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "அடைவு சூழ்நிலை நீக்கு நீக்கு(%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "நீக்கு( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "பிழை: அடைவை படிக்கும்போது நீக்க இயலவில்லை." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr " rmdir( %1 } பிழை: இயக்க இயலவில்லை" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "பிழை: நீக்கும் இயக்கம் தோல்வியடைந்தது." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "கைமுறை ஒன்றினை(%1, %2,%3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "குறிப்பு: கையேடு ஒன்றினையின் பிறகு உபயோகிப்பவர் F7 வழியாக தொடர வேண்டும்." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "பிழை:நகல்( %1 -> %2 ) தோல்வி அடைந்தது. இருக்கும் சேரிடம் நீக்கம் தோல்வி அடைந்தது" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "நகல் இணை( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "பிழை:தொடர்புப் படியெடு தோல்வியடைந்தது: தூரத் தொடர்பு இன்னும் ஆதரிக்கப்படவில்லை" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "பிழை: நகல் இணை தோல்வியடைந்தது." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "நகல்( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "மறுபெயரிடும் போது பிழை( %1 -> %2 ): தற்போதுள்ள சேருமிடத்தை நீக்க இயலாது." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "மறுபெயர்( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "பிழை: மறுபெயர் தோல்வி அடைந்தது." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "%1அடைவை உருவாக்கும் போது பிழை: தற்போதைய கோப்பினை நீக்க இயலாது." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "( %1 )அடைவை உருவாக்கு" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "அடைவை உருவாக்கும் போது பிழை" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "சேருமிடம்" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "அடைவு" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "விதம்" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "அளவு" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "தன்மை" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "கடைசி திருத்தம்" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "இணை-சேருமிடம்" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 #, fuzzy #| msgid "File..." msgid "File" msgstr "கோப்பு" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "கிடைக்கவில்லை" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (சேருமிடம்): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (அடித்தளம்):" #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (சேருமிடம்): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (சேருமிடம்):" #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "சேருமிடம்: " #: directorymergewindow.cpp:2836 #, fuzzy msgid "Save Directory Merge State As..." msgstr "அடைவுச் சேர்க்கை" #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "அடைவை சேர்க்கத் துவங்கு" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "நிகழ் உருப்படிக்காக செயற்பாடு இயங்கு" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "தற்போதைய கோப்பினை ஒன்றுசேர்" #: directorymergewindow.cpp:2962 #, fuzzy #| msgid "Merge" msgid "" "Merge\n" "File" msgstr "ஒன்றாகச் சேர்." #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "அனைத்து உபஅடைவுகளையும் மடி" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "அனைத்து உபஅடைவுகளையும் பிரி" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "எல்லா விவரங்களுக்கும் Aவைத் தேர்ந்தெடு" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "எல்லா விவரங்களுக்கும் Bவைத் தேர்ந்தெடு" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "எல்லா விவரங்களுக்கும் Cவைத் தேர்ந்தெடு" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "எல்லா விவரங்களுக்கும் தானியக்கத்தேர்வு" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "எல்லா விவரங்களுக்கும் இயக்கமில்லை" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" #: directorymergewindow.cpp:2978 #, fuzzy msgid "Show Different Files" msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" #: directorymergewindow.cpp:2985 #, fuzzy msgid "Compare Explicitly Selected Files" msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" #: directorymergewindow.cpp:2986 #, fuzzy msgid "Merge Explicitly Selected Files" msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "ஒன்றும் செய்யாதே" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 #, fuzzy msgid "Delete A && B" msgstr "A & Bஐ நீக்கு " #: directorymergewindow.cpp:3003 #, fuzzy msgid "Merge to A && B" msgstr "A & B ஐ ஒன்றாகச் சேர்." #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 #, fuzzy #| msgid "KDiff3" msgid "kdiff3" msgstr "KDiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "" #: main.cpp:173 msgid "Eike Sauer" msgstr "" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "" #: main.cpp:174 msgid "Windows installer" msgstr "" #: main.cpp:175 msgid "Stephan Binner" msgstr "" #: main.cpp:175 msgid "i18n-help" msgstr "" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "" #: main.cpp:176 #, fuzzy #| msgid "From Clipboard" msgid "Clipboard-patch" msgstr "கிளிப் போர்டிலிருந்து." #: main.cpp:177 msgid "David Faure" msgstr "" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "" #: main.cpp:180 #, fuzzy #| msgid "Directory Comparison Status" msgid "Directory Equality-Coloring patch" msgstr "அடைவு ஒப்பிடும் நிலை" #: main.cpp:181 msgid "Manfred Koehler" msgstr "" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 #, fuzzy #| msgid "Merge Error" msgid "Sergey Zorin" msgstr "ஒன்றுசேர் பிழை" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "" #: main.cpp:185 msgid "Mac support" msgstr "" #: main.cpp:186 msgid "Valentin Rusu" msgstr "" #: main.cpp:186 main.cpp:187 #, fuzzy #| msgid "Do Nothing" msgid "KDE4 porting" msgstr "ஒன்றும் செய்யாதே" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "+ Many thanks to those who reported bugs and contributed ideas!" #: main.cpp:196 msgid "Merge the input." msgstr "உள்ளீட்டை ஒன்று சேர்." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "தெளிவான அடித்தளக் கோப்பினை சில கருவிகளுடன் பொருத்துவதற்கு" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "வெளியீடு கோப்பு" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "மறுபடியும் கோப்பினை வெளியீடு(சில கருவிகளுடன் பொருத்துவதற்கு)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "எல்லா குழப்பங்களையும் தானாகவே நீங்குமானால் GUI தேவையில்லை" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "தாமாகவே தீராத குழப்பங்கள் (For compatibility...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Visible name replacement for input file 1 (base)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Visible name replacement for input file 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Visible name replacement for input file 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternative visible name replacement. Supply this once for every input." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "" #: main.cpp:208 #, fuzzy msgid "Use a different config file." msgstr "வேறு விதமான கோப்புகளின் எண்ணிக்கை:" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "கோப்பு1 யை திற(அடித்தளம் அல்லது via அடித்தளம்)" #: main.cpp:212 msgid "file2 to open" msgstr "கோப்பு2 திற" #: main.cpp:213 msgid "file3 to open" msgstr "கோப்பு 3ன்றை திற" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, fuzzy, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "இன்னும் தீர்க்கப்படாத குழப்பங்களின் எண்ணிகை: %1" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "வெளீயிடு மாற்றப்பட்டுள்ளது. நீங்கள் தொடர்ந்தால் மாற்றங்களை இழந்து விடுவீர்கள்" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "அனைத்து உள்ளிடு கோப்புகளும் இருநிலை சமம்" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "அனைத்து உள்ளீட்டுக் கோப்புகளும் ஒரே உரையைக் கொண்டன." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, fuzzy, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "கோப்புகள் B மற்றும் C இருநிலை சமம் உடையன.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "கோப்புகள் A மற்றும் B சம உரை உடையன.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "மொத்த குழப்பங்களின் எண்ணிக்கை:" #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "தாமாகவே தீர்ந்த குழப்பங்களின் எண்ணிக்கை" #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "தீர்க்கப்படாத குழப்பங்களின் எண்ணிக்கை" #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "குழப்பங்கள்" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 #, fuzzy msgid "" msgstr "<ஒன்றுசேர் குழப்பம்>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<ஒன்றுசேர் குழப்பம்>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "அனைத்து குழப்பங்களும் இன்னும் தீரவில்லை.\n" "கோப்பினை சேமிக்கவில்லை \n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "குழப்பமான இடது" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "கோப்பின சேமிப்பு பிழை" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "எழுதும் பொழுது பிழை" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr " வெளியீடு" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[திருத்தப்பட்டது]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 #, fuzzy msgid "Line end style:" msgstr "வரிகளின் பாணி தாள்" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "" #: mergeresultwindow.cpp:3229 #, fuzzy #| msgid "Conflicts" msgid "Conflict" msgstr "குழப்பங்கள்" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "ஒப்பிடுதலுக்கு கோப்புகள் கிடைக்கவில்லை." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "ஒரு பின்கோப்பினை உருவாக்க முயற்சிக்கும்போது, பழைய பின்கோப்பினை நீக்க முடியவில்லை.\n" "கோப்புப் பெயர்கள்:" #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "ஒரு பின்கோப்பினை உருவாக்க முயற்சிக்கும் போது, பெயர் மாற்றம் செய்யப்படவில்லை.\n" "கோப்புப் பெயர்கள்:" #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "கோப்பு நிலைமை வாங்கு: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "கோப்புகளை படித்தல்: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "எழுதும் கோப்பு: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "நினைவில் இல்லை" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "அடைவு அமை: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "அடைவு அகற்று: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "அழித்தல் கோப்பு:%1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "குறியீட்டு இணைப்பு உருவாக்குதல்: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "மறுபெயர்:( %1 -> %2 )" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "கோப்பு நகலெடுத்தல்: %1 -> %2 " #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "கோப்புப் படிவின் போது பிழை ஏற்பட்டுள்ளது. படிப்பதற்கான கோப்புத் திறக்கப்படவில்லை.கோப்பின் " "பெயர்:%1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "கோப்புப் படிவின் போது பிழை ஏற்பட்டுள்ளது. எழுதுவதற்கான கோப்புத் திறக்கப்படவில்லை. கோப்பின் " "பெயர்:%1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "கோப்புப் படிவின் போது பிழை ஏற்பட்டுள்ளது கோப்பினை படிக்க இயலவில்லை.கோப்பின் பெயர்:%1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "கோப்புப் படிவின்போது பிழை ஏற்பட்டுள்ளது. கோப்பில் எழுத இயலவில்லை.கோப்பின் பெயர்:%1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "அடைவை படித்தல்:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "அடைவை பட்டியலிடல்: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "" #: difftextwindow.cpp:403 #, fuzzy #| msgid "Link: " msgid "Line" msgstr "இணைப்பு." #: difftextwindow.cpp:405 #, fuzzy #| msgid "not available" msgid "Line not available" msgstr "கிடைக்கவில்லை" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "" #: difftextwindow.cpp:1759 kdiff3.cpp:831 #, fuzzy msgid "Top line" msgstr "மேல் வரி %1." #: difftextwindow.cpp:1769 msgid "End" msgstr "முடிவு" #: kdiff3.cpp:169 #, fuzzy msgid "Current Configuration:" msgstr "நடப்பு உருப்படி இசைவு செயற்பாடு" #: kdiff3.cpp:174 #, fuzzy msgid "Config Option Error:" msgstr "கோப்பு திறப்பில் பிழை" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "தேர்வு தானே உபயோகிக்கப்பட்டுள்ளது ஆனால் வெளியீட்டுக் கோப்பு குறிப்பிடப்படவில்லை" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "அடைவு ஒப்பீட்டுக்காக தேர்வு தானே மறுக்கப்பட்டுள்ளது" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "சேகரிப்பு தோல்வியடைந்தது." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "இந்த கோப்புகளின் திறப்பு தோல்வியடைந்தது:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "கோப்பு திறப்பில் பிழை" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "ஒப்பிடுதலுக்கு ஆவணங்களைத் திறக்க..." #: kdiff3.cpp:479 #, fuzzy #| msgid "Ready." msgid "Reload" msgstr "தயார்." #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "ஒன்றுசேர் முடிவை சேகரி. அனைத்து குழப்பங்களும் தீர வேண்டும்." #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "தற்போதைய ஆவணத்தை ....வாக சேமி " #: kdiff3.cpp:487 msgid "Print the differences" msgstr "" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "பயன்பாட்டை முறிக்க" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "தேர்வு செய்த பகுதியை எடுத்து கிளிப்போர்டில் செலுத்துகிறது" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "தேர்வு செய்த பகுதியை கிளிப் போர்டை படி செய்கிறது." #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "கிளிப்போர்டின் உள்ளடக்கங்களை உரிய இடத்தில் சேர்க்கிறது" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "தொடர்ச்சிகளை தேடு" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "சரத்தை மீண்டும் தேடு" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "நிலைப்பட்டியை செயல்படுத்து/நீக்கு " #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3யை அமை" #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "தற்போதைய டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:532 #, fuzzy #| msgid "Go to Current Delta" msgid "" "Current\n" "Delta" msgstr "தற்போதைய டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "முதல் டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:534 #, fuzzy #| msgid "Go to First Delta" msgid "" "First\n" "Delta" msgstr "முதல் டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "கடைசி டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:536 #, fuzzy #| msgid "Go to Last Delta" msgid "" "Last\n" "Delta" msgstr "கடைசி டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "முந்தைய டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:540 #, fuzzy #| msgid "Go to Previous Delta" msgid "" "Prev\n" "Delta" msgstr "முந்தைய டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "அடுத்த டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:542 #, fuzzy #| msgid "Go to Next Delta" msgid "" "Next\n" "Delta" msgstr "அடுத்த டெல்டாவிற்குச் செல்க" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "முந்தைய குழப்பத்திற்குச் செல்க" #: kdiff3.cpp:544 #, fuzzy #| msgid "Conflicts" msgid "" "Prev\n" "Conflict" msgstr "குழப்பங்கள்" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "அடுத்த குழப்பத்திற்குச் செல்க" #: kdiff3.cpp:546 #, fuzzy #| msgid "Go to Next Conflict" msgid "" "Next\n" "Conflict" msgstr "அடுத்த குழப்பத்திற்குச் செல்க" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "முந்தைய தீர்க்காத குழப்பத்திற்குச் செல்க" #: kdiff3.cpp:548 #, fuzzy #| msgid "Unsolved" msgid "" "Prev\n" "Unsolved" msgstr "Unsolved" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "அடுத்த தீர்க்காத குழப்பத்திற்குச் செல்க" #: kdiff3.cpp:550 #, fuzzy #| msgid "Unsolved" msgid "" "Next\n" "Unsolved" msgstr "Unsolved" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Aவிலிருந்து வரி(களை) தேர்ந்தெடு" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Bவிலிருந்து வரி(களை) தேர்ந்தெடு" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Cவிலிருந்து வரி(களை) தேர்ந்தெடு" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "மூலத்தை தேர்வு செய்த பிறகு தானாகவே அடுத்த தீர்க்கப்படாத குழப்பதற்கு செல் " #: kdiff3.cpp:555 #, fuzzy msgid "" "Auto\n" "Next" msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "இடைவெளியை காட்டி மற்றும் வேறுபாட்டிற்காக பட்டியலிடுவான் எழுத்துக்கள்" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "வெள்ளை இடத்தை காட்டும்" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "வரி எண்களை காட்டு" #: kdiff3.cpp:560 #, fuzzy #| msgid "Show Line Numbers" msgid "" "Line\n" "Numbers" msgstr "வரி எண்களை காட்டு" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "எல்லா இடத்திலும் Aவைத் தேர்ந்தெடு" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "எல்லா இடத்திலும் Bவைத் தேர்ந்தெடு" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "எல்லா இடத்திலும் Cவைத் தேர்ந்தெடு" #: kdiff3.cpp:564 #, fuzzy msgid "Choose A for All Unsolved Conflicts" msgstr "அனைத்து தீர்வற்ற முரணிற்கு A-வை தேர்ந்தெடுக்கவும்" #: kdiff3.cpp:565 #, fuzzy msgid "Choose B for All Unsolved Conflicts" msgstr "அனைத்து தீர்வற்ற முரணிற்கு B-யை தேர்ந்தெடுக்கவும்" #: kdiff3.cpp:566 #, fuzzy msgid "Choose C for All Unsolved Conflicts" msgstr "அனைத்து தீர்வற்ற முரணிற்கு C-யை தேர்ந்தெடுக்கவும்" #: kdiff3.cpp:567 #, fuzzy msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு A-வை தேர்ந்தெடுக்கவும்" #: kdiff3.cpp:568 #, fuzzy msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு B-யை தேர்ந்தெடுக்கவும்" #: kdiff3.cpp:569 #, fuzzy msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "அனைத்து தீர்வற்ற வெள்ளை இடம் முரணிற்கு C-யை தேர்ந்தெடுக்கவும்" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "தானாகவே எளிய குழப்பங்களை தீர்க்க." #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr " Delta வை குழப்பத்திற்கு அமை" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "" #: kdiff3.cpp:573 #, fuzzy msgid "Automatically Solve History Conflicts" msgstr "தானாகவே எளிய குழப்பங்களை தீர்க்க." #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "" #: kdiff3.cpp:575 #, fuzzy msgid "Join Selected Diffs" msgstr "தேர்ந்தெடுத்த கோப்பினை ஒப்பிடு" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "A சாளரத்தைக் காட்டு" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "B சாளரத்தைக் காட்டு" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "C சாளரத்தைக் காட்டு" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "அடுத்த சாளரத்தை நோக்கு" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normal Overview" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A vs. B Overview" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A vs. C Overview" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B vs. C Overview" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Word Wrap Diff Windows" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "முந்தைய சாளரத்தை நோக்கு" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "பிரிப்பு திசையை மாற்று" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "அடைவு மற்றும் உரையின் பிளவின் திரைப்பார்வை" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "அடைவுக்கும் உரை பார்வைக்கும் இடையே மாற்றுக" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "ஒன்று சேர் முடிவு சேகரிக்கப்படவில்லை." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "சேகரித்து முடி" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "சேகரிக்காமல் மூடு" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "ஒன்றுசேர் முடிவை சேகரித்தல் தோல்வியடைந்தது." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "நீங்கள் தற்போது அடைவுகளை சேர்த்துக் கொண்டிருக்கிறீர்கள். நிறுத்த விரும்புகிறீர்களா?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "கோப்பு சேகரித்தல்..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "புதிய கோப்புப்பெயருடன் கோப்பினை சேகரித்தல்..." #: kdiff3.cpp:781 #, fuzzy msgid "Printing not implemented." msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" #: kdiff3.cpp:815 #, fuzzy msgid "Printing..." msgstr "வெளியேறுதல்..." #: kdiff3.cpp:956 #, fuzzy #| msgid "Select Another Font" msgid "Selection" msgstr "மற்றொரு எழுத்துருவை தேர்தெடு" #: kdiff3.cpp:982 #, fuzzy msgid "Printing completed." msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" #: kdiff3.cpp:986 #, fuzzy msgid "Printing aborted." msgstr "ஒன்றுசேர் இயக்கம் முடிந்தது" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "வெளியேறுதல்..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "கருவிப்பட்டி மாற்றப்படுகறது" #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "நிலைப்பட்டியை மாற்று" #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (அடிப்படை)" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "கோப்பு" #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "அடைவு" #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (விருப்பங்கள்)" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "" #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "வெளீயிடு (விருப்பங்கள்)" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "அமை" #: smalldialogs.cpp:174 msgid "&OK" msgstr "" #: smalldialogs.cpp:362 #, fuzzy msgid "Search text:" msgstr "உரையைத் தேடு:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "எழுத்து வகை உணரக்கூடிய" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Aவைத் தேடு" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Bவைத் தேடு" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Cவைத் தேடு" #: smalldialogs.cpp:387 msgid "Search output" msgstr "வெளியீட்டைத் தேடு" #: smalldialogs.cpp:392 msgid "&Search" msgstr "தேடு" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "" #: smalldialogs.cpp:508 msgid "OK" msgstr "" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 #, fuzzy msgid "Match failed." msgstr "சேகரிப்பு தோல்வியடைந்தது." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "" #: optiondialog.cpp:368 msgid "Unicode" msgstr "" #: optiondialog.cpp:369 msgid "Latin1" msgstr "" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "இல்லா-ஆஸ்கி-எழுத்துக்கள் சரியாக வெளிகாட்டவில்லை என்றால் இதை மாற்றுக" #: optiondialog.cpp:465 #, fuzzy #| msgid "Configure..." msgid "Configure" msgstr "அமை" #: optiondialog.cpp:531 msgid "Font" msgstr "" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "திருத்துபவரும் வித்தியாசமான வெளியீட்டு எழுத்துக்களும்" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "deltaவிற்கான இத்தாலிய எழுத்துரு" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "வித்தியாசங்களுக்காக இத்தாலிய பதிவை தேர்ந்தெடுக்கவும்.\n" "If the font doesn't support italic characters, then this does nothing." #: optiondialog.cpp:568 msgid "Color" msgstr "வர்ணம்" #: optiondialog.cpp:569 #, fuzzy msgid "Colors Settings" msgstr "இதர அமைப்புகளை உள்ளடக்கியது" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "முன்னணி நிறம்" #: optiondialog.cpp:603 msgid "Background color:" msgstr "பின்னணி நிறம்" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "வேறுபட்ட பின்னணி நிறம்" #: optiondialog.cpp:620 msgid "Color A:" msgstr "வர்ணம் A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "வர்ணம் B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "வர்ணம் C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "குழப்பமான நிறம்" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "பின்னணி நிறத்தின் தற்போதைய வரம்பு " #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "பின்னணி நிறத்தின் வேறுபட்ட தற்போதைய வரம்பு " #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 #, fuzzy msgid "Directory Comparison View:" msgstr "அடைவு ஒப்பிடும் நிலை" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "" #: optiondialog.cpp:717 msgid "Editor" msgstr "திருத்தியவர்" #: optiondialog.cpp:718 #, fuzzy msgid "Editor Behavior" msgstr "திருத்துபவரின் செயல்பாடு" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "தத்தல் இடைவெளியை சொருகும்" #: optiondialog.cpp:735 #, fuzzy #| msgid "" #| "On: Pressing tab generates the appropriate number of spaces.\n" #| "Off: A Tab-character will be inserted." msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "On:தத்தலை அழுத்தும் போது தேவையான இடைவெளி உருவாகிறது, \n" "Off:ஒர் தத்தல் எழுத்து சொருகப்படும்" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tab அளவு" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "தானியக்க உள்ளடக்கம்" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "முந்தைய வரியில் பயன்படுத்தப்பட்ட நகர்ப்பு புதிய வரியிலும் பயன்படுத்தப்படுகிறது\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "எந்த ஒரு தேர்வையும் உடனடியாக கிளிப் போர்டுக்கு எழுதவும்.\n" "நீங்கள் வெளிப்படையாக படிவு செய்" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "சாளரங்கள்" #: optiondialog.cpp:769 #, fuzzy msgid "Autodetect" msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" #: optiondialog.cpp:772 #, fuzzy msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "கோட்டின் முடிவை அமைத்து தொகுப்புக்கோப்பில் சேமிDOS/விண்டோஸ்: CR+LF;யுனிக்ஸ்:மற்றும் " "CR=0D, LF=0A" #: optiondialog.cpp:784 #, fuzzy msgid "Diff" msgstr "KDiff3" #: optiondialog.cpp:785 #, fuzzy msgid "Diff Settings" msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்" #: optiondialog.cpp:809 #, fuzzy msgid "Treat as white space." msgstr "C/C++ குறிப்புரைகளை வெள்ளை இடம் போல உபசரி." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "சொற்களை தவிர்" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "வரி பொருத்துதலின் போது எண் எழுத்துக்களை நிராகரி." #: optiondialog.cpp:819 #, fuzzy msgid "Ignore C/C++ comments" msgstr "C/C++ குறிப்புரைகளை புறக்கணி" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ குறிப்புரைகளை வெள்ளை இடம் போல உபசரி." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Ignore case" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "Treat case differences like white space changes. ('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "முன் செயலாக்க கட்டளை" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "உபயோகிப்பாளரால் அறுதியிடப்பட்ட முன்-செயலாக்கி" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "வரி-பொருத்து முன்-செயலாக்கி கட்டளை" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "முன்-செயலாக்கி வரி-பொருத்துதலின் போது பயன்ப்படுத்தப்படுகிறது" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "கடினமாக முயற்சி(மெதுவாக)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "வெளி வேற்றுமைக்கான --குறைந்த விருப்பத்தை செயல்படுத்துகிறது.\n" "பெரிய கோப்புகளின் பகுப்பாய்வு மெதுவாக இருக்கும்." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 #, fuzzy msgid "Merge Settings" msgstr "வேறுபாடு & சேர்த்திடு அமைப்புகள்" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "தானாக முன்னேறிய தாமதம் (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "தற்போதைய தேர்ந்தெடுப்பின் முடிவை தானாக - முன்னேறும் அமைப்பில்.\n" "குறிப்பிட்ட கால இடைவெளியில், அடுத்த சிக்கலுக்கு முன் தெரிந்துகொள்ளலாம்." #: optiondialog.cpp:895 #, fuzzy #| msgid "Show Window A" msgid "Show info dialogs" msgstr "A சாளரத்தைக் காட்டு" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "வெள்ளை இடம் 2-கோப்பு ஒன்றிணை முன்னிருப்பு:" #: optiondialog.cpp:904 optiondialog.cpp:917 #, fuzzy msgid "Manual Choice" msgstr "கையேடு விருப்பம்" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "வெள்ளை-இடம்-மாற்றங்களுக்காக தானாக தேர்ந்தெடுக்கும் உள்ளீட்டிற்க்கு ஒன்றிணை படிமுறையை " "அனுமதிக்கும்." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "வெள்ளை இடம் 3-கோப்பு ஒன்றிணை முன்னிருப்பு:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" #: optiondialog.cpp:1025 #, fuzzy msgid "Max number of history entries:" msgstr "உப அடைவுகளின் எண்ணிக்கை:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" #: optiondialog.cpp:1061 optiondialog.cpp:1062 #, fuzzy #| msgid "&Directory" msgid "Directory" msgstr "அடைவு" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "திரும்ப நிகழும் அடைவுகள்" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "உபஅடைவுகளை பரிசோதிக்க வேண்டுமா?" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "கோப்பு வடிவங்கள்:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' " "உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "வடிவற்ற கோப்பு" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' " "உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "வடிவற்ற அடைவு" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "பரிசோதனையிலிருந்து வெளியேற்றப்பட வேண்டிய கோப்புகளின் வடிவங்கள்.Wildcards ';' " "உபயோகித்து பல்வேறு வடிவங்களை குறிப்பிடலாம்" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore உபயோகி" #: optiondialog.cpp:1115 #, fuzzy #| msgid "" #| "Extends the antipattern to anything that would be ignored by CVS.\n" #| "Via local \".cvsignore\"-files this can be directory specific." msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\"-files this can be directory specific." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "மறைந்த கோப்புகளையும் அடைவுகளையும் தேடு" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "கோப்புகளையும் அடைவுகளையும் மறைந்த குணங்களுடன் தேர்ந்தெடு " #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "'.'. தொடங்கும் கோப்புகளும் அடைவுகளும் தேடு" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "கோப்பு இணைப்பை பின்பற்று" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "கோப்பினை இணைப்பு குறியோடு ஒப்பிடு.\n" " இணைப்பை ஒப்பிடு" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "அடைவை இணைப்பை பின்பற்று" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "On:அடைவை இணைப்பு குறியோடு ஒப்பிடுOff இணைப்பை ஒப்பிடு" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "File Comparison Mode" #: optiondialog.cpp:1169 #, fuzzy msgid "Binary comparison" msgstr "Binary Comparison" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binary comparison of each file. (Default)" #: optiondialog.cpp:1173 #, fuzzy msgid "Full analysis" msgstr "Full Analysis" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" #: optiondialog.cpp:1178 #, fuzzy msgid "Trust the size and modification date (unsafe)" msgstr "மாற்றிய தேதியை நம்பு(பாதுகாப்பில்லை)" #: optiondialog.cpp:1179 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது " "பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்" #: optiondialog.cpp:1184 #, fuzzy msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "மாற்றிய தேதியை நம்பு(பாதுகாப்பில்லை)" #: optiondialog.cpp:1185 #, fuzzy msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது " "பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "அளவை உறுதிபடுத்து(பாதுகாப்பில்லை)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "மாற்றிய தேதியும் கோப்பு நீளமும் சமமாக இருந்தால் எல்லா கோப்புகளும் சமம் என எண்ணலாம். இது " "பெரிய அடைவுகளுக்கு அல்லது மெதுவான இணைப்புகளுக்கு உதவும்." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "ஒத்தியக்கு அடைவை" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "இரண்டு அடைவிலும் கோப்புகளை சேமிப்பதற்கு அனுமதிப்பதால், இரண்டு அடைவுகளும் பின்னர் " "ஒன்றாகவே இருக்கும் .இரண்டு அடைவுகளையும் சேருமிடம் குறிப்பிடாமல் ஒத்திடும் பொழுதுதான் " "வேலை செய்யும்." #: optiondialog.cpp:1208 #, fuzzy msgid "White space differences considered equal" msgstr "வெள்ளை இடம் 3-கோப்பு ஒன்றிணை முன்னிருப்பு:" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "ஒன்றாக சேர்ப்பதற்கு பதிலாக புதியவரை பதியெடு(பாதுகாப்பில்லை)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "உள்ளே பார்க்காதே புதிய கோப்பினை மட்டும் எடு.(நீ செய்வது என்ன என்று தெரிந்தால் மட்டுமே இதை " "உபயோகப்படுத்து) இரண்டு அடைவுகளை ஒத்திடும் போது மட்டுமே விளைவுகள் ஏற்படும்" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "பின்சேமிப்பு கோப்புகள்(.orig)" #: optiondialog.cpp:1228 #, fuzzy #| msgid "" #| "When a file would be saved over an old file, then the old file\n" #| "will be renamed with a '.orig'-extension instead of being deleted." msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "பழைய கோப்பில் ஒரு கோப்பினை சேமிக்கும் பொழுது, பழைய கோப்பில் மூல நீட்டுதலுடன் பெயர் " "மாறும், நீக்கபடுவதற்கு பதிலாக. " #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "இதர அமைப்புகளை உள்ளடக்கியது" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "மொழி " #: optiondialog.cpp:1445 #, fuzzy #| msgid "" #| "Choose the language of the GUI-strings or \"Auto\".\n" #| "For a change of language to take place, quit and restart KDiff3." msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "கீழ்கண்ட மொழிகளில் GUI- எழுத்துக்களைத் தேர்ந்தெடு மொழிகளை மாற்ற KDiff3யை தேர்ந்தெடு" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" #: optiondialog.cpp:1471 #, fuzzy msgid "Note: Local Encoding is " msgstr "லொகல் குறிமுறையாக்கம் உபயோகி" #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "" #: optiondialog.cpp:1512 #, fuzzy msgid "Auto Select" msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" #: optiondialog.cpp:1548 #, fuzzy msgid "Integration" msgstr "இயக்கம்." #: optiondialog.cpp:1549 #, fuzzy msgid "Integration Settings" msgstr "இதர அமைப்புகளை உள்ளடக்கியது" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "கச்சிதமில்லாத எழுத்துரு" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "உங்களுடைய சொந்த ஆபத்தில் தொடரவும்" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "மற்றொரு எழுத்துருவை தேர்தெடு" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "இது அனைத்து தேர்வுகளையும் மாற்றியமைக்கும். தற்பொழுதுள்ள தலைப்பு மட்டுமல்ல" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "முன் செயலாக்க கட்டளை:" #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "கீழ்கண்ட தேர்வுகளில் தரவை தேர்வுசெய்:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "தேவை இல்லாத செல்கள்.\n" "இவற்றை முடக்க வேண்டுமா?" #: pdiff.cpp:268 #, fuzzy msgid "Option Unsafe for Merging" msgstr "காப்பு இல்லாத தேர்வுகள் செல்கள்" #: pdiff.cpp:269 #, fuzzy msgid "Use These Options During Merge" msgstr "செல்களில் தேர்வுகளை உபயோகப்படுத்து " #: pdiff.cpp:270 #, fuzzy msgid "Disable Unsafe Options" msgstr "பாதுகாப்பு இல்லாத தேர்வுகளை முடக்கு" #: pdiff.cpp:300 msgid "Loading A" msgstr "A ஏற்றுதல்" #: pdiff.cpp:304 msgid "Loading B" msgstr " B ஏற்றுதல்" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "வித்தியாசம் A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "வரி வித்தியாசம் : A <->B" #: pdiff.cpp:338 msgid "Loading C" msgstr " C ஏற்றுதல்" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "வித்தியாசம் B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "வித்தியாசம் A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "வரி வித்தியாசம் B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "வரி வித்தியாசம் : A <-> C" #: pdiff.cpp:534 #, fuzzy msgid "All input files contain the same text, but are not binary equal." msgstr "அனைத்து உள்ளீட்டுக் கோப்புகளும் ஒரே உரையைக் கொண்டன." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, fuzzy, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "கோப்புகள் A மற்றும் B இருநிலை சமம் உடையன.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "விடுதல்" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "திறந்த கோப்புகள்" #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "கோப்பு திறப்பு பிழை" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "வெட்டுதலை தேர்ந்தெடு" #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "தேர்ந்தெடுக்கப்பட்டதை கிளிப்போர்டிற்கு நகலெடுக்க" #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "கிளிப்போர்டு உள்ளடக்கத்தை சொருகு" #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "சேமி தொடரு" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "சேமிக்காமல் தொடரு" #: pdiff.cpp:2018 msgid "Search complete." msgstr "தேடல் முடிவடைந்தது" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "தேடல் முடிவடைந்தது" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "அடைவை உருவாக்கும் போது பிழை" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not find our part!\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "உங்கள் பகுதியை காணவில்லை.\n" "நிறுவும் போது இப்படிப்பட்ட பிரச்சனை ஏற்படும் விவரங்களுக்கு README தொகுப்பைப் படிக்கவும்" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "அமை KDiff3" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "" #~ msgid "Directory Merge" #~ msgstr "அடைவுச் சேர்க்கை" #~ msgid "C&ontinue" #~ msgstr "தொடர்தல்" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "prem" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "prem4ever_1983@yahoo.com" #~ msgid "Enables/disables the toolbar" #~ msgstr "கருவிப்பட்டியை செயல்படுத்து/நீக்கு" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "கோப்புகள் A மற்றும் B இருநிலை சமம் உடையன.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "கோப்புகள் A மற்றும் C இருநிலை சமம் உடையன.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "கோப்புகள் A மற்றும் C சம உரை உடையன.\n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "கோப்புகள் B மற்றும் C இருநிலை சமம் உடையன.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "கோப்புகள் B மற்றும் C சம உரை உடையன.\n" #~ msgid "Preserve carriage return" #~ msgstr " carriage return யை பராமரி" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "carriage return எழுத்துக்களை காட்டு" #, fuzzy #~ msgid "Diff and Merge" #~ msgstr "வேறுபாடு & சேர்த்திடு" #, fuzzy #~ msgid "Save Directory Merge State ..." #~ msgstr "அடைவுச் சேர்க்கை" #, fuzzy #~ msgid "Load Directory Merge State ..." #~ msgstr "அடைவுச் சேர்க்கை" #, fuzzy #~ msgid "Synchronize Directories" #~ msgstr "ஒத்தியக்கு அடைவை" #, fuzzy #~ msgid "Copy Newer Files Instead of Merging" #~ msgstr "ஒன்றாக சேர்ப்பதற்கு பதிலாக புதியவரை பதியெடு(பாதுகாப்பில்லை)" #~ msgid "List only deltas" #~ msgstr "மாற்றம் மட்டும் பட்டியலிடு" #~ msgid "Files and directories without change will not appear in the list." #~ msgstr "கோப்புகளும் அடைவுகளும் மாற்றப்படாமல் பட்டியலில் இடம் பெறாது" #, fuzzy #~ msgid "no selection" #~ msgstr "தானாகவே தேர்ந்தெடுக்கப்பட்ட படிவு" #, fuzzy #~ msgid "Manually match lines" #~ msgstr "கையேடு விருப்பம்" #~ msgid "Has no effect. For compatibility with certain tools." #~ msgstr "Has no effect. For compatibility with certain tools." #~ msgid "For compatibility with certain tools." #~ msgstr "சில கருவிகளுடன் பொருந்துதல்" #~ msgid "Colors in Editor & Diff Output" #~ msgstr "திருத்துபவரின் வண்ணமும் வித்தியாசமான வெளியீடு" #~ msgid "Text Diff and Merge Tool" #~ msgstr "உரை வேறுபாடு மற்றும் கருவி சேர்க்கை" #~ msgid "" #~ "\n" #~ "\n" #~ "File not saved." #~ msgstr "" #~ "\n" #~ "\n" #~ "கோப்பினை சேமிக்கவில்லை" #~ msgid "Out of memory while preparing to save." #~ msgstr "சேமிக்கும் தறுவாயில் நினைவு தவறியது" #~ msgid "Delete (If Exists)" #~ msgstr "நீக்கு(இருந்தால்)" #~ msgid "Delete A and B" #~ msgstr "A மற்றும் B நீக்கு " #~ msgid "Merge to A and B" #~ msgstr " A மற்றும்Bக்கான ஒன்றிணை " kdiff3-0.9.97/po/de/0000755000175100001440000000000011626145654013340 5ustar joachimuserskdiff3-0.9.97/po/de/kdiff3plugin.po0000644000175100001440000000615311626145606016267 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Frederik Schwarzer , 2008, 2009. # Burkhard Lück , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-02 17:47+0200\n" "Last-Translator: Burkhard Lück \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Mit %1 vergleichen" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Mit %1 zusammenführen" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "„%1“ für später speichern" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-Wege-Zusammenführung mit Basis" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Vergleichen mit ..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Liste leeren" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Vergleichen" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3-Wege-Vergleich" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Über KDiff3-Menü-Modul ..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3-Menü-Modul: Copyright © 2008 Joachim Eibl\n" "KDiff3-Webseiten: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "Benutzung der Kontextmenü-Erweiterung:\n" "Zum einfachen Vergleich zweier Dateien, wählen Sie „Vergleichen“.\n" "Befindet sich die andere Datei an einer anderen Stelle, „speichern“ Sie die " "erste Datei für später. Sie wird im Untermenü „Vergleichen mit ...“ " "angezeigt. Verwenden Sie jetzt „Vergleichen mit“ mit der zweiten Datei.\n" "Um eine 3-Wege-Zusammenführung vorzunehmen, „speichern“ Sie die Basisdatei " "und die erste Branch-Datei und wenden dann „3-Wege-Zusammenführung mit " "Basis“ auf die zweite Branch-Datei an, die als Zusammenführungsziel " "verwendet wird.\n" "Diese Vorgehensweise ist die gleiche bei Ordner-Vergleichen und -" "Zusammenführungen." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Über KDiff3-Menü-Modul" kdiff3-0.9.97/po/de/CMakeLists.txt0000644000175100001440000000016311626145606016075 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(de ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/de/kdiff3fileitemactionplugin.po0000644000175100001440000000453111626145606021202 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Frederik Schwarzer , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-06-04 13:27+0200\n" "Last-Translator: Frederik Schwarzer \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Mit %1 vergleichen" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Mit %1 zusammenführen" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "„%1“ für später speichern" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "3-Wege-Zusammenführung mit Basis" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Vergleichen mit ..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Liste leeren" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Vergleichen" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "3-Wege-Vergleich" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Über KDiff3-Menü-Modul ..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/de/kdiff3.po0000644000175100001440000025325511626145606015057 0ustar joachimusers# translation of kdiff3.po to German # Copyright (C) # Thomas Diehl , 2003, 2004. # Joachim Eibl , 2004. # Joachim Eibl , 2004, 2005, 2006. # Thomas Reitelbach , 2004, 2006. # Frederik Schwarzer , 2008, 2009, 2010, 2011. # Burkhard Lück , 2008, 2009, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-07-02 17:46+0200\n" "Last-Translator: Burkhard Lück \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Lokalize 1.2\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Fortsetzen" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Abbrechen" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Beenden" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Hilfe" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Voreinstellungen" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Datei" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "&Bearbeiten" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Ordner" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Navigation" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "&Vergleichsansicht" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "&Zusammenführen" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Fenster" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "&Einstellungen" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hilfe" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "Ü&ber" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&utor" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Dank an" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Zusammenführaktion für aktuelles Element" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Abgleichaktion für aktuelles Element" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Öffnen" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Speichern" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Speichern unter ..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Drucken ..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Ausschneiden" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopieren" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Einfügen" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Alle auswählen" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Werkzeugleiste anzeigen" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Statusleiste anzeigen" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 &einrichten ..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Über" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Suchen" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Weitersuchen" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Schriftart auswählen" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "Sie haben eine Schrift mit variabler Breite gewählt.\n" "\n" "Weil dieses Programm nicht mit solchen Schriften umgehen kann,\n" "werden beim Editieren wahrscheinlich Probleme auftreten. \n" "\n" "Wollen Sie mit dieser Schrift fortfahren oder doch eine andere Schrift " "wählen?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Inkompatible Schriftart." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Weiter auf eigenes Risiko" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Andere Schrift wählen" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" "Weitere Dokumentation finden Sie im Hilfe-Menü und um Unterordner „doc“" #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3-Benutzung" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Ignorieren" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Beenden" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Speichern der Zwischenablage in temporäre Datei ist fehlgeschlagen." #: diff.cpp:255 msgid "From Clipboard" msgstr "Aus Zwischenablage" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" "Nach einem schließenden Anführungszeichen wird ein Leerzeichen erwartet." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Passt nicht auf Anführungszeichen." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Unerwartetes Anführungszeichen innerhalb des Arguments." #: diff.cpp:503 msgid "No program specified." msgstr "Kein Programm angegeben." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "Der Vorverarbeitungsbefehl ist möglicherweise fehlgeschlagen.\n" "Bitte überprüfen Sie diesen Befehl:\n" "\n" " %1\n" "\n" "Diese Vorverarbeitung wird nun deaktiviert." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "Der Vorverarbeitungsbefehl für Zeilenabgleich ist möglicherweise " "fehlgeschlagen.\n" "Bitte überprüfen Sie diesen Befehl:\n" "\n" " %1\n" "\n" "Der Vorverarbeitungsbefehl für Zeilenabgleich wird nun deaktiviert." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Datenverlust:\n" "Falls das Problem reproduzierbar ist, nehmen Sie bitte Kontakt mit dem Autor " "auf.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Schwerwiegender interner Fehler" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Vermischung von Verknüpfungen und Dateien" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Verknüpfung: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Größe." #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Datum & Größe: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Erstellung einer temporären Kopie von %1 ist fehlgeschlagen." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Öffnen von %1 ist fehlgeschlagen." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Datei wird verglichen ..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Fehler beim Lesen von %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Name" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Aktion" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Ungelöst" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Aufgelöst" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Nicht-Leerraum" #: directorymergewindow.cpp:359 msgid "White" msgstr "Leerraum" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "Sie sind dabei, Ordner zusammenzuführen. Sind Sie sicher, dass Sie diese " "Operation abbrechen und den Ordner erneut einlesen möchten?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Achtung" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Neu einlesen" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Zusammenführung fortsetzen" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Öffnen der Ordner fehlgeschlagen:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Ordner A „%1“ existiert nicht oder ist kein Ordner.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Ordner B „%1“ existiert nicht oder ist kein Ordner.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Ordner C „%1“ existiert nicht oder ist kein Ordner.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Fehler beim Öffnen des Ordners" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "Wenn drei Ordner zusammengeführt werden, darf der Zielordner nicht mit A " "oder B identisch sein.\n" "Bitte überprüfen Sie das bevor Sie fortfahren." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameter-Warnung" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Ordner werden eingelesen ..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Einlesen von Ordner A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Einlesen von Ordner B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Einlesen von Ordner C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Einige Unterordner nicht lesbar" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Überprüfen Sie bitte die Zugriffsrechte für die Unterordner." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Bereit." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status des Ordnervergleichs" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Anzahl der Unterordner:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Anzahl der identischen Dateien:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Anzahl der unterschiedlichen Dateien:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Anzahl der manuellen Zusammenführungen:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Dies beeinflußt alle Zusammenführungsaktionen." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Änderung aller Zusammenführungsaktionen" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Fortschritt " #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Unerledigt." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A nach B kopieren" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B nach A kopieren" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A löschen" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B löschen" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A & B löschen" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Zusammenführen nach A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Zusammenführen nach B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Zusammenführen nach A & B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Löschen (falls vorhanden)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Zusammenführen" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Zusammenführen (manuell)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Fehler: Konflikt der Dateitypen" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Fehler: Geändert und gelöscht" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Fehler: Gleiches Datum, aber unterschiedliche Dateien." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Diese Aktion ist momentan nicht zulässig." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Unzulässige Aktion" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Dies sollte nie passieren: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Wenn Sie dies reproduzieren können, informieren Sie bitte den Autor dieses " "Programms." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programmfehler" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Während des Kopierens ist ein Fehler aufgetreten.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Fehler" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Zusammenführungsfehler" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Fehler." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Erledigt." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Nicht gespeichert." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Unbekannte Zusammenführaktion. (Sollte nie passieren!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Unbekannte Zusammenführaktion." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "Die Zusammenführung kann nun starten.\n" "\n" "Wählen Sie „Start“ wenn Sie die Anleitung gelesen haben und wissen was Sie " "erwartet.\n" "Wählen Sie „Simulieren“ um zu sehen, was passieren würde.\n" "\n" "Sie sollten aber wissen, dass dieses Program noch Beta-Status hat und es " "KEINE GARANTIE gibt! Erstellen Sie Sicherungkopien Ihrer wichtigen Daten!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Start der Zusammenführung" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Start" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simulieren" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Das markierte Element hat einen unterschiedlichen Typ in den verschiedenen " "Ordnern. Wählen Sie eine Aktion." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "Für die markierte Datei ist zwar das Datum der letzen Änderung gleich, aber " "die Dateien unterscheiden sich. Wählen Sie die Zusammenführaktion." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Das markierte Element wurde in einem Ordner geändert und im anderen " "gelöscht. Wählen Sie eine Aktion." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Diese Aktion ist derzeit nicht möglich, weil noch eine Ordnerzusammenführung " "läuft." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Beim letzten Element ist ein Fehler aufgetreten.\n" "Möchten Sie mit diesem Element fortfahren, oder es überspringen?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Fortsetzung der Zusammenführung nach einem Fehler" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Mit letztem Element fortfahren" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Element überspringen" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Übersprungen." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "In Bearbeitung ..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "Die Zusammenführung ist abgeschlossen." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Zusammenführung abgeschlossen." #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Die simulierte Zusammenführung ist abgeschlossen. Überprüfen Sie, ob Sie mit " "den vorgeschlagenen Aktionen einverstanden sind." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Ein Fehler ist aufgetreten. Wählen Sie OK um Details zu sehen.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "" "Fehler: Beim Löschen von %1: Die Erstellung einer Sicherungskopie ist " "fehlgeschlagen." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "Lösche Ordner rekursiv( %1 )" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "Lösche( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Fehler: Löschen des Ordners ist fehlgeschlagen, da er nicht gelesen werden " "kann." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Fehler: Ordner löschen( %1 ) Operation fehlgeschlagen." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Fehler: Löschoperation fehlgeschlagen." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "Manuelles Zusammenführen( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr " Hinweis: Nach manuellem Zusammenführen mit F7 fortsetzen." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Fehler: Kopie( %1 -> %2 ) fehlgeschlagen. Das existierende Ziel kann nicht " "gelöscht werden." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Verknüpfung kopieren( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Fehler: Verknüpfung kopieren: Nichtlokale Verknüpfungen werden nicht " "unterstützt." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Fehler: Verknüpfung kopieren fehlgeschlagen." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopieren( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Fehler beim Umbenennen( %1 -> %2 ): Das existierende Ziel kann nicht " "gelöscht werden." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "Umbenennen( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Fehler: Umbenennen fehlgeschlagen." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Fehler beim Erstellen des Ordners %1. Kann vorhandene Datei nicht löschen." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Ordner erstellen( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Fehler beim Erstellen des Ordners." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Ziel" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Ordner" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Typ" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Größe" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Letzte Änderung" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Verknüpfungsziel" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Datei" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "nicht vorhanden" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (Ziel): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (Basis): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (Ziel): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (Ziel): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Ziel: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Status der Ordnerzusammenführung speichern unter ..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Ordnerzusammenführung starten/fortsetzen" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Aktion des aktuellen Elements ausführen" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Gewählte Datei vergleichen" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Aktuelle Datei zusammenführen" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Datei\n" "zusammenführen" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Alle Unterordner einklappen" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Alle Unterordner ausklappen" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Für alle Elemente A wählen" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Für alle Elemente B wählen" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Für alle Elemente C wählen" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Aktion für alle Elemente automatisch wählen" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Keine Aktion für alle Elemente" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Identische Dateien anzeigen" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identische\n" "Dateien" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Unterschiedliche Dateien anzeigen" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Dateien anzeigen, die nur in A existieren" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Dateien\n" "nur in A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Dateien anzeigen, die nur in B existieren" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Dateien\n" "nur in B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Dateien anzeigen, die nur in C existieren" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Dateien\n" "nur in C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Explizit ausgewählte Dateien vergleichen" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Explizit ausgewählte Dateien zusammenführen" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Nichts tun" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "A && B löschen" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Nach A && B zusammenführen" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Ignoriert. (Benutzerdefiniert.)" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "© 2002–2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Fehlerbereinigung, Betreuer des Debian-Pakets" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows-Installer" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-Hilfe" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Patch für Zwischenablage" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Hilfe" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "CvsIgnoreList-Klasse aus Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "StringMatcher-Klasse" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Ordnervergleich-Farb-Patch" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Schnellerer Start unter Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Externes Diff für Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensive Tests und Feedback" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac-Unterstützung" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Portierung auf KDE 4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Portierung auf OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "" "+ Vielen Dank an alle, die Fehler gemeldet und Ideen beigesteuert haben!" #: main.cpp:196 msgid "Merge the input." msgstr "Quellen zusammenführen." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "Explizite Basisdatei. Für Kompatibilität mit anderen Werkzeugen." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Ergebnisdateiname bei Zusammenführung. z. B.: -o neu.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "Ergebnisdatei. (Für Kompatibilität mit anderen Werkzeugen.)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Kein Fenster anzeigen, wenn alle Konflikte automatisch auflösbar sind. " "(Benötigt -o)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Konflikte nicht automatisch lösen. (Für Kompatibilität ...)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Anderer angezeigter Dateiname für erste Datei (Basis)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Anderer angezeigter Dateiname für zweite Datei." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Anderer angezeigter Dateiname für dritte Datei." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Anderer angezeigter Dateiname: Kann für jede Quelle spezifiziert werden." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Eine Einstellung ändern. Je Einstellung verwendbar. z. B.: --cs " "„AutoAdvance=1“" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Liste aller Einstellungen und aktueller Werte anzeigen." #: main.cpp:208 msgid "Use a different config file." msgstr "Eine andere Einstellungsdatei verwenden." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "Erste Datei (Basis, falls nicht --base verwendet wird)" #: main.cpp:212 msgid "file2 to open" msgstr "Zweite Datei" #: main.cpp:213 msgid "file3 to open" msgstr "Dritte Datei" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Anzahl der verbleibenden ungelösten Konflikte: %1 (%2 davon Leerraum-" "Konflikte)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "Das Ergebnis wurde verändert.\n" "Wenn Sie fortsetzen, gehen die Änderungen verloren." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Alle Quelldateien sind binär identisch." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Alle Quelldateien enthalten den gleichen Text." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Die Dateien %1 und %2 sind binär identisch.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Die Dateien %1 und %2 enthalten den gleichen Text. \n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Gesamte Anzahl der Konflikte: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Anzahl der automatisch aufgelösten Konflikte: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Anzahl der ungelösten Konflikte: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Konflikte" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Noch sind nicht alle Konflikte aufgelöst.\n" "Die Datei wurde nicht gespeichert.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Es sind noch ungelöste Konflikte übrig" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Es besteht ein Zeilenende-Konflikt. Bitte wählen Sie manuell ein " "Zeilenende.\n" "Die Datei wurde nicht gespeichert.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Anlegen der Sicherungskopie ist fehlgeschlagen. Die Datei wurde nicht " "gespeichert." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Fehler beim Speichern der Datei" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Fehler beim Schreiben." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Ausgabe" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Geändert]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Dateikodierung zum Speichern" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Zeilenende-Kodierung:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Konflikt" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codec von" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "Kann Dateien für Vergleich nicht finden." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3-Komponente" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Bei dem Versuch, eine Sicherungskopie zu erstellen, ist eine bereits " "vorhandene Sicherungskopie nicht gelöscht worden.\n" "Datei: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Als versucht wurde eine Sicherungskopie zu erstellen, ist das Umbenennen " "fehlgeschlagen:\n" "Dateien: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Dateistatus holen: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Datei lesen: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Datei schreiben: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Nicht genügend Speicher" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Ordner erstellen: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Ordner löschen: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Datei löschen: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Verknüpfung erstellen: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Datei umbenennen: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Datei kopieren: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "Fehler beim Kopieren: Datei kann nicht zum Lesen geöffnet werden: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Fehler beim Kopieren: Datei kann nicht zum Schreiben geöffnet werden: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "Fehler beim Kopieren: Lesen fehlgeschlagen: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "Fehler beim Kopieren: Schreiben fehlgeschlagen: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Ordner wird eingelesen:" #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Ordner anzeigen: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "&Abbrechen" #: difftextwindow.cpp:403 msgid "Line" msgstr "Zeile" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Zeile nicht vorhanden" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Kodierung:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Oberste Zeile" #: difftextwindow.cpp:1769 msgid "End" msgstr "Ende" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Aktuelle Einstellungen:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Fehler in der Einstellungsoption:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Option --auto verwendet, aber keine Ausgabedatei angegeben." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Option --auto wird beim Vergleich von Ordnern ignoriert." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Speichern fehlgeschlagen." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Öffnen dieser Dateien ist fehlgeschlagen:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fehler beim Dateiöffnen" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Dateien für Vergleich öffnen ..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Neu laden" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Sichern des Zusammenführergebnisses. Alle Konflikte müssen aufgelöst sein." #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Speichert das aktuelle Dokument als ..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Unterschiede drucken" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Beendet das Programm" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Schneidet die Auswahl aus und kopiert sie in die Zwischenablage" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopiert den ausgewählten Bereich in die Zwischenablage" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Fügt den Inhalt der Zwischenablage an der aktuellen Position ein" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Alles in aktuellem Fenster auswählen" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Nach Text suchen" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Weitersuchen" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Blendet die Statusleiste ein/aus" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 einrichten ..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Zu aktuellem Unterschied springen" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Aktueller\n" "Unterschied" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Zum ersten Unterschied springen" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "Erster\n" "Unterschied" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Zum letzten Unterschied springen" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Letzter\n" "Unterschied" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Unterschiede in Leerräumen werden übersprungen, wenn „Leerräume anzeigen“ " "ausgeschaltet ist.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Unterschiede in Leerräumen werden nicht übersprungen, auch wenn „Leerräume " "anzeigen“ ausgeschaltet ist.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Zu vorigem Unterschied springen" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Voriger\n" "Unterschied" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Zu nächstem Unterschied springen" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Nächster\n" "Unterschied" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Zu vorigem Konflikt springen" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Voriger\n" "Konflikt" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Zu nächstem Konflikt springen" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Nächster\n" "Konflikt" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Zu vorigem ungelösten Konflikt springen" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Voriger\n" "Ungelöster" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Zu nächstem ungelöste Konflikt springen" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Nächster\n" "Ungelöster" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Zeile(n) von A wählen" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Wähle\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Zeile(n) von B wählen" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Wähle\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Zeile(n) von C wählen" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Wähle\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "Automatisch zu nächstem ungelösten Konflikt weiterspringen" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automatisch\n" "zum nächsten" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Leer- und Tabulator-Zeichen in Unterschieden anzeigen" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Leer-\n" "räume" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Leerräume anzeigen" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Leerraum-\n" "Unterschiede" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Zeilennummern anzeigen" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Zeilen-\n" "nummern" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "Für alle A wählen" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "Für alle B wählen" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "Für alle C wählen" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "Für alle ungelösten Konflikte A wählen" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "Für alle ungelösten Konflikte B wählen" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "Für alle ungelösten Konflikte C wählen" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "Für alle ungelösten Leerraum-Konflikte A wählen" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "Für alle ungelösten Leerraum-Konflikte B wählen" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "Für alle ungelösten Leerraum-Konflikte C wählen" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Einfache Konflikte automatisch lösen" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Alle Unterschiede zu Konflikten machen" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Zusammenführung über regulären Ausdruck starten" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Verlauf-Konflikte automatisch auflösen" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Unterschied bei der Auswahlsmarkierung trennen" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Markierte Unterschiede verbinden" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Fenster A anzeigen" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Fenster B anzeigen" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Fenster C anzeigen" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Nächstes Fenster aktivieren" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normale Übersicht" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A/B-Übersicht" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A/C-Übersicht" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B/C-Übersicht" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Zeilenumbruch für Vergleichsanzeige" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Manuelle Ausrichtung hinzufügen" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Alle manuellen Ausrichtungen entfernen" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Vorheriges Fenster aktivieren" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Ausrichtung der Fensterteilung umschalten" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Ordner- && Textansicht teilen sich Hauptfenster" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Zwischen Ordner- && Textansicht umschalten" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Das Zusammenführungsergebnis wurde nicht gespeichert." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Speichern && Beenden" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Ohne zu speichern beenden" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "Speichern des Zusammenführungsergebnisses ist fehlgeschlagen." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "Sie führen eine Ordnerzusammenführung durch. Sind Sie sicher, dass Sie diese " "beenden möchten?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Datei wird gespeichert ..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Datei wird unter neuem Namen gespeichert ..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Eine Druckfunktion ist zurzeit noch nicht verfügbar." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Druckvorgang läuft ..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Auswahl" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Drucken beendet." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Drucken abgebrochen." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Wird beendet ..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Werkzeugleiste anzeigen/ausblenden ..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "Statusleiste anzeigen/ausblenden ..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (Basis):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Datei ..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Ordner ..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (Optional):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Namen tauschen/kopieren ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "%1<->%2 tauschen" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "%1->Ziel kopieren" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "%1<->Ziel tauschen" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Ziel (optional):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Einrichten ..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Suchtext:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Groß-/Kleinschreibung beachten" #: smalldialogs.cpp:372 msgid "Search A" msgstr "In A suchen" #: smalldialogs.cpp:377 msgid "Search B" msgstr "In B suchen" #: smalldialogs.cpp:382 msgid "Search C" msgstr "In C suchen" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Im Ergebnis suchen" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Suchen" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Testhilfe für reguläre Ausdrücke" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Regulärer Ausdrück für automatische Zusammenführung:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Beispielzeile für automatische Zusammenführung:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Um die automatische Zusammeführung zu testen, kopieren Sie eine Zeile aus " "Ihrer Datei." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Übereinstimmungsergebnis:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Regulärer Ausdruck für Verlauf-Start:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Beispielzeile für Verlauf-Startzeile (mit Kommentarzeichen):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopieren Sie eine Verlauf-Startzeile aus Ihren Dateien,\n" "inklusive der Kommentarzeichen am Anfang der Zeile." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Regulärer Ausdruck für Verlauf-Eintrag-Startzeile:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Verlauf-Sortierschlüsselreihenfolge:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "Beispiel-Verlaufeintragstartzeile (ohne Kommentarzeichen):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopieren Sie eine Verlaufeintragsstartzeile aus Ihren Dateien,\n" "wobei Sie hier die Kommentarzeichen am Anfang weglassen." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Sortierschlüsselergebnis:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Übereinstimmung erfolgreich." #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Übereinstimmung fehlgeschlagen." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Öffnende und schließende runde Klammern in regulärem Ausdruck passen nicht " "zusammen." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "" "Falls die speziellen Zeichen Ihrer Sprache nicht korrekt dargestellt werden, " "können Sie diesen Wert ändern." #: optiondialog.cpp:465 msgid "Configure" msgstr "Einrichten" #: optiondialog.cpp:531 msgid "Font" msgstr "Schriftart" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Schrift für Editor & Vergleichsfenster" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Kursivschrift bei Unterschieden" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Unterschiede werden kursiv angezeigt. Dies funktioniert\n" "nicht, wenn Ihre Schriftart keine kursiven Zeichen unterstützt." #: optiondialog.cpp:568 msgid "Color" msgstr "Farbe" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Farbeinstellungen" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Editor und Unterschiedsansicht:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Vordergrundfarbe:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Hintergrundfarbe:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Hintergrundfarbe bei Unterschieden:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Farbe für A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Farbe für B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Farbe für C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Farbe für Konflikte:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Hintergrundfarbe für aktuellen Bereich:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Hintergrundfarbe für Unterschiede im aktuellen Bereich:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Farbe für manuell ausgerichtete Unterschiede:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Ordnervergleichsansicht:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Farbe für neueste Datei:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Änderung dieser Farbe wird erst beim Start des nächsten Ordnervergleichs " "wirksam." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Farbe für älteste Datei:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Farbe für mittelalte Datei:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Farbe für fehlende Datei:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Verhalten des Editors" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tabulator fügt Leerzeichen ein" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Falls aktiv wird bei Betätigen der Tabulator-Taste die passende Anzahl\n" "Leerzeichen eingefügt. Sonst wird ein Tabulatorzeichen eingefügt." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tabulator-Länge:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automatisch einrücken" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" "Wenn aktiv, wird die Einrückung der vorigen Zeile bei neuen Zeilen " "übernommen.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Auswahl automatisch kopieren" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Falls aktiv, wird die Auswahl automatisch sofort in die Zwischenablage " "kopiert.\n" "Sonst müssen Sie sie explizit kopieren, z. B. mit Strg-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Automatisch feststellen" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Legt die Kodierung für Zeilenenden beim Speichern fest.\n" "DOS/Windows: CR+LF; Unix: LF; mit CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Vergleichseinstellungen" # Is part of another sentence, thus no full stop #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Wie Leerräume behandeln" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Zahlen ignorieren" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Zahlen werden während des Vergleichs wie Leerräume behandelt.\n" "Dies kann sinnvoll sein, wenn Dateien viele Zahlen enthalten." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++-Kommentare ignorieren" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++-Kommentare wie Leerräume behandeln." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Unterschiede bei Groß- und Kleinschreibung ignorieren" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Unterschiede bei Groß- und Kleinschreibung wie Änderungen in " "Leerräumenbehandeln. („a“<=>„A“)" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Vorverarbeitungsbefehl:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "Benutzerdefinierbare Vorverarbeitung: (Siehe Handbuch für Details.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Vorverarbeitungsbefehl nur für Zeilenabgleich:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Dieser Vorverarbeitungsbefehl wirkt nur in der Phase des Zeilenabgleichs.\n" "(Siehe Handbuch für Details.)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Aufwendig suchen (langsamer)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Der Vergleichsalgorithmus versucht aufwendig nach einem kleinem Satz von " "Änderungen zu suchen. \n" "Für sehr große Dateien kann der Vergleich viel langsamer sein." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "B und C bei drei Eingabedateien abgleichen" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Versuchen, B und C abzugleichen, wenn drei Dateien verglichen oder " "zusammengeführt werden.\n" "Dies ist für Zusammenführungen nicht empfohlen, da diese so komplizierter " "werden können.\n" "(Voreingestellt ist dies deaktiviert.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Einstellungen für das Zusammenführen" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Verzögerung für das automatische Weiterspringen (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "Wenn automatisches Weiterspringen aktiviert ist, wird das Ergebnis der " "letzten Auswahl\n" "für diese Dauer angezeigt, bevor weitergesprungen wird. (0-2000 ms)" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Infofenster anzeigen" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Fenster mit Informationen über die Anzahl der Konflikte anzeigen." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Leerraum-Autoauswahl bei 2 Dateien:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Manuelle Auswahl" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Bei Datei-Zusammenführungen wird automatisch diese Vorauswahl für " "ausschließlich Leerraum-Konflikte gewählt." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Leerraum-Autoauswahl bei 3 Dateien:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Regulärer Ausdruck für automatische Zusammenführung" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Regulärer Ausdruck für Zeilen, für die KDiff3 automatisch eine Quelle " "auswählen soll.\n" "Wenn eine Konfliktzeile auf diesen regulären Ausdruck passt, wird\n" "– sofern verfügbar – C, ansonsten B ausgewählt." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "" "Zusammenführung über regulären Ausdruck beim Start einer Zusammenführung " "durchführen" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Führe die Zusammenführung über reguläre Ausdrücke sofort\n" "beim Start einer Zusammenführung durch.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "Versionsverwaltungs-Verlauf-Zusammenführung" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Regulärer Ausdruck für die Startzeile des Versionsverwaltungs-Verlaufs.\n" "Normalerweise enthält diese Zeile das Schlüsselwort „$Log$“.\n" "Voreinstellung: „.*\\$Log.*\\$.*“" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Ein Versionsverwaltungs-Verlauf-Eintrag besteht aus mehreren Zeilen.\n" "Geben Sie einen regulären Ausdruck an, um die erste Zeile (ohne die\n" "voranstehenden Kommentarzeichen) zu erkennen.\n" "Verwenden Sie runde Klammern um Sortierschlüssel zu gruppieren.\n" "Wenn leer gelassen, nimmt KDiff3 an, dass die Verlauf-Einträge durch " "Leerzeilen\n" "getrennt sind. (Siehe Handbuch für Details.)" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Sortierte Verlauf-Zusammenführung" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Schlüsselbasierte Sortierung der Versionsverwaltungs-Verlauf-Einträge" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Sortierschlüsselreihenfolge für Verlauf-Eintragsstart:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Jedes Paar runder Klammern im regulären Ausdruck des History-Start-Eintrags\n" "gruppiert einen Schlüssel, der für die Sortierung verwendet werden kann.\n" "Geben Sie eine Liste der Schlüssel an (nummeriert in der " "Auftrittsreihenfolge,\n" "mit 1 beginnend), wobei das Komma als Trennzeichen verwendet wird. (z. B.: " "„4,5,6,1,2,3,7“).\n" "Wenn der Eintrag leer ist, wird keine Sortierung durchgeführt.\n" "(Siehe Handbuch für Details)." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "" "Versionsverwaltungs-Verlauf beim Start einer Zusammenführung zusammenführen" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Starte Versionsverwaltungs-Verlauf-Zusammenführung beim Start einer " "Zusammenführung" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Maximale Anzahl Verlauf-Einträge:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "Nach angegebener Anzahl abschneiden. -1 bedeuted unbegrenzt." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Testen Sie Ihre regulären Ausdrücke" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Befehl bei irrelevanter Zusammenführung:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Wenn spezifiziert, wird dieser Befehl nach einer automatischen " "Zusammenführung \n" "ausgeführt, wenn keine relevanten Änderungen erkannt wurden.\n" "Der Aufruf erfolgt mit den Parametern: Dateiname1 Dateiname2 Dateiname3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "" "Automatisch speichern und beenden, wenn ohne Konflike zusammengeführt werden " "kann" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Automatisch speichern und beenden, wenn KDiff3 für eine " "Dateizusammenführung\n" "von der Befehlszeile gestartet wurde und alle Konflikte automatisch ohne " "Benutzerinteraktion aufzulösen sind.\n" "(Ähnlich zur Befehlszeilen-Option „--auto“)." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Ordner" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Unterordner einbeziehen" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Falls aktiv, werden auch Unterordner eingelesen." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Datei-Muster:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Muster der zu analysierenden Dateien. \n" "Jokerzeichen: „*“ und „?“\n" "Es können mehrere Muster getrennt durch „;“ angegeben werden." #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Datei-Ausschlussmuster:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Muster der auszuschließenden Dateien. \n" "Jokerzeichen: „*“ und „?“\n" "Es können mehrere Muster getrennt durch „;“ angegeben werden." #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Ordner-Ausschlussmuster:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Muster der auszuschließenden Ordner. \n" "Jokerzeichen: „*“ und „?“\n" "Es können mehrere Muster getrennt durch „;“ angegeben werden." #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore verwenden" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Erweitert die Ausschlussmuster um alles, was auch CVS ignorieren würde.\n" "Mit lokalen „.cvsignore“-Dateien kann dies für einzelne Ordner eingestellt " "werden." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Versteckte Dateien und Ordner einbeziehen" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Bezieht versteckte Dateien und Ordner mit ein." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Bezieht versteckte Dateien und Ordner, die mit „.“ beginnen, mit ein." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Datei-Verknüpfungen folgen" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Falls aktiv werden die Dateien auf die die Verknüpfung verweist, " "verglichen.\n" "Sonst nur die Verknüpfungen selbst." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Ordner-Verknüpfungen folgen" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Falls aktiv werden die Ordner, auf die eine Verknüpfung zeigt, verglichen.\n" "Sonst nur die Verknüpfungen." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Groß-/kleinschreibung bei Dateinamen" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "Der Ordnervergleich vergleicht Dateien und Ordner wenn deren Namen gleich " "sind.\n" "Aktivieren Sie diese Einstellung, wenn es auch auf Groß-/Kleinschreibung im " "Dateinamen ankommt. (Voreinstellung für Windows ist aus, sonst ein.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Dateivergleichsmethode" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binärvergleich" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binärvergleich aller Dateien (Voreinstellung)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Vollständige Analyse" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Vollständige Analyse durchführen und Statistik-Information in eigenen " "Spalten anzeigen.\n" "(Langsamer als Binärvergleich, viel langsamer bei Binärdateien.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Änderungsdatum vertrauen (unsicher)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Annehmen, dass Dateien identisch sind, wenn das Änderungsdatum und die Größe " "übereinstimmen.\n" "Dateien mit gleichem Inhalt aber unterschiedlichem Änderungsdatum werden als " "unterschiedliche angezeigt.\n" "Hilfreich bei großen Ordnern oder langsamen Verbindungen." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Größe und Datum vertrauen, aber binär vergleichen, wenn Datum nicht " "übereinstimmt (unsicher)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Annehmen, dass Dateien identisch sind, wenn das Änderungsdatum und die Größe " "übereinstimmen.\n" "Unterscheiden sich die Daten, aber die Dateigrößen sind gleich, wird binär " "verglichen.\n" "Hilfreich bei großen Ordnern oder langsamen Verbindungen." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Größe vertrauen (unsicher)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Annehmen, dass Dateien identisch sind, wenn die Größe übereinstimmt.\n" "Hilfreich bei großen Ordnern oder langsamen Verbindungen, wenn das " "Änderungsdatum beim Kopieren modifiziert wird." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Ordner abgleichen" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Dateien werden in beiden Ordnern gespeichert, damit diese nachher identisch " "sind.\n" "Funktioniert nur, wenn zwei Ordner verglichen werden, und kein Ziel " "angegeben ist." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Dateien mit Leerraum-Unterschieden als gleich markieren" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Wenn sich Dateien nur durch Leerräume unterscheiden, sollen diese wie " "gleiche Dateien behandelt werden.\n" "Dies ist nur wählbar, wenn vollständige Analyse ausgewählt ist." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Neuere Datei statt Zusammenführung auswählen (unsicher)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "Falls aktiv, wird bei unterschiedlichen Dateien immer die neuere Datei " "vorgeschlagen.\n" "(Nicht empfehlenswert, wenn beide Versionen Änderungen enthalten könnten.)\n" "Falls inaktiv wird eine Zusammenführung vorgeschlagen.\n" "Nur beim Vergleich zweier Ordner wirksam." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Sicherungskopie erstellen (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Wenn eine Datei über eine existierende Datei gespeichert wird, bekommt die \n" "bestehende Datei die Erweiterung „.orig“ und wird nicht gelöscht." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regionaleinstellungen" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Sprache (Neustart erforderlich)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Sprache für die Benutzeroberfläche oder „Automatisch“ wählen.\n" "Diese Änderung wird erst nach einem Neustart von KDiff3 wirksam." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Überall die gleiche Kodierung verwenden:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Durch Aktivierung dieser Option können alle Kodierungen durch Setzen der " "ersten eingestellt werden. Dies auszuschalten erlaubt individuelle " "Einstellungen." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Hinweis: Die lokale Kodierung ist " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Dateikodierung für A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Ist diese Einstellung aktiviert, wird die Unicode-Kodierung (UTF-16 oder " "UTF-8) bestimmt.\n" "Ist die Datei nicht Unicode-kodiert, wird die Einstellung als Ausweichlösung " "verwendet.\n" "(Unicode-Erkennung hängt von den ersten Bytes der Datei ab.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Unicode automatisch erkennen" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Dateikodierung für B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Dateikodierung für C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Dateikodierung für Zusammenführung und Speichern:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Automatisch wählen" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Ist diese Einstellung aktiviert, wird die Kodierung der Eingabedatei " "verwendet.\n" "Ist diese nicht eindeutig zu bestimmen, wird der Benutzer beim Speichern " "gefragt." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Dateikodierung für Präprozessor Dateien:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Rechts-Nach-Links-Sprache" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Einige Sprachen werden von rechts nach links gelesen.\n" "Diese Einstellung ändert die Anzeige und den Editor entsprechend." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integration" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Einstellungen für Integration" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Ignorierbare Befehlszeilenoptionen:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Liste der Befehlszeilenoptionen, die ignoriert werden sollen, wenn KDiff3\n" "von anderen Werkzeugen aufgerufen wird.\n" "Mehrere Werte können mit Trennzeichen „;“ angegeben werden.\n" "Dies wird die Fehlermeldung „Unbekannte Option“ beim Start unterdrücken. " #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Auch mit der Escape-Taste beenden" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Schnelle Art zu beenden.\n" "Für die, die es gewohnt sind, die Escape-Taste zu benutzen." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "In ClearCase integrieren" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Mit IBM Rational ClearCase integrieren.\n" "Dies verändert die „map“-Datei im ClearCase-Unterordner „lib/mgrs“.\n" "(Wird nur aktiviert, wenn die ClearCase-Programmdatei im Pfad gefunden " "werden kann.)" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "ClearCase-Integration entfernen" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Die alte „map“-Datei wiederherstellen, wie sie vor der ClearCase-Integration " "bestand." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Inkompatible Schriftart" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Weiter auf eigenes Risiko" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Andere Schriftart wählen" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "Dies führt zum Zurücksetzen aller Einstellungen, nicht nur des aktuellen " "Themas." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Vorverarbeitungsbefehl: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "Die folgende(n) aktive(n) Einstellung(en) könnten Daten verändern:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Wahrscheinlich ist dies während der Dateizusammenführung nicht erwünscht.\n" "Möchten Sie diese Einstellungen deaktivieren oder beibehalten und fortfahren?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Diese Einstellung ist bei Dateizusammenführungen unsicher" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Verwendung dieser Option während der Zusammenführung" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Unsichere Einstellung deaktivieren" #: pdiff.cpp:300 msgid "Loading A" msgstr "Lade A" #: pdiff.cpp:304 msgid "Loading B" msgstr "Lade B" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Vergleiche: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Zeilenvergleich: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "Lade C" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Vergleiche: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Vergleiche: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Zeilenvergleich: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Zeilenvergleich: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Alle Quelldateien enthalten den gleichen Text, sind aber nicht binär " "identisch." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Die Dateien %1 und %2 haben den gleichen Text, sind aber nicht binär " "identisch.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Einige Quelldateien scheinen keine reinen Textdateien zu sein.\n" "Beachten Sie, dass KDiff3 nicht für den Binärdatenvergleich konzipiert ist.\n" "Sie fahren auf eigenes Risiko fort." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Einige Eingabezeichen können nicht in gültigen Unicode umgewandelt werden.\n" "Möglicherweise verwenden Sie die falsche Kodierung (z. B. UTF-8 für Nicht-" "UTF-8-Dateien).\n" "Speichern Sie das Ergebnis nicht, wenn Sie sich nicht sicher sind.\n" "Die betroffenen Dateien liegen in %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Abbrechen" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Dateien öffnen ..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fehler beim Öffnen der Datei" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Auswahl wird ausgeschnitten ..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Auswahl wird in Zwischenablage kopiert ..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "Inhalt der Zwischenablage wird eingefügt ..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Speichern && Fortsetzen" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Fortsetzen ohne zu speichern" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Suche abgeschlossen." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Suche abgeschlossen" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "In keinem der Unterschiedsfenster ist eine Auswahl markiert." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Fehler beim Hinzufügen einer manuellen Ausrichtung." #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Die KDiff3-Komponente kann nicht gestartet werden.\n" "Das ist normalerweise ein Installationsproblem. Bitte lesen Sie die README-" "Datei, die den Quelltexten beiliegt." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Frederik Schwarzer" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "schwarzer@kde.org" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 einrichten" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Haupt-Werkzeugleiste" #~ msgid "Directory Merge" #~ msgstr "Ordnerzusammenführung" #~ msgid "" #~ "_: NAME OF TRANSLATORS\n" #~ "Your names" #~ msgstr "Joachim Eibl" #~ msgid "" #~ "_: EMAIL OF TRANSLATORS\n" #~ "Your emails" #~ msgstr "joachim.eibl@gmx.de" #~ msgid "Enables/disables the toolbar" #~ msgstr "Blendet die Werkzeugleiste ein/aus" #~ msgid "Files A and B are binary equal.\n" #~ msgstr "Die Dateien A und B sind binär identisch.\n" #~ msgid "Files A and C are binary equal.\n" #~ msgstr "Die Dateien A und C sind binär identisch.\n" #~ msgid "Files A and C have equal text. \n" #~ msgstr "Die Dateien A und C enthalten den gleichen Text. \n" #~ msgid "Files B and C are binary equal.\n" #~ msgstr "Die Dateien B und C sind binär identisch.\n" #~ msgid "Files B and C have equal text. \n" #~ msgstr "Die Dateien B und C enthalten den gleichen Text. \n" #~ msgid "Preserve carriage return" #~ msgstr "Wagenrücklaufzeichen anzeigen" #~ msgid "" #~ "Show carriage return characters '\\r' if they exist.\n" #~ "Helps to compare files that were modified under different operating " #~ "systems." #~ msgstr "" #~ "Zeige das Wagenrücklaufzeichen ‚\\r‘ falls vorhanden.\n" #~ "Hilft beim Vergleich von Dateien, die unter verschiedenen " #~ "Betriebssystemen geändert wurden." #~ msgid "Diff and Merge" #~ msgstr "Vergleich und Zusammenführung" kdiff3-0.9.97/po/nl/0000755000175100001440000000000011626145654013361 5ustar joachimuserskdiff3-0.9.97/po/nl/kdiff3plugin.po0000644000175100001440000000607411626145610016305 0ustar joachimusers# translation of kdiff3plugin.po to Dutch # # Rinse de Vries , 2006, 2007. # Kristof Bal , 2008. # Freek de Kruijf , 2009. # Freek de Kruijf , 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-03 12:38+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "KDiff3" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "Vergelijken met %1" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "Samenvoegen met %1" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "'%1' voor later gebruik opslaan" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "3-weg samenvoeging met basis" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "Vergelijken met..." #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "Lijst wissen" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "Vergelijken" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "3-weg vergelijking" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "Info over KDiff3-menuplugin..." #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "8KDif3-menuplugin: Copyright (C) 2006 Joachim Eibl\n" "KDiff3-website: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" "De contextmenu-extensie gebruiken:\n" "Voor eenvoudige vergelijking van twee geselecteerde bestanden, kies " "\"Vergelijken\".\n" "Als het andere bestand ergens anders staat, sla dan het eerste bestand voor " "later gebruik op. Het zal verschijnen in het submenu \"Vergelijken met...\". " "Gebruik daarna \"Vergelijken met\" voor het tweede bestand.\n" "Voor een 3-weg samenvoeging, sla eerst het basisbestand op, daarna de tak om " "mee samen te voegen en kies daarna \"3-weg samenvoeging met basis\" op de " "tak die gebruikt zal worden als bestemming.\n" "Bovenstaande is ook van toepassing op het vergelijken en samenvoegen van " "mappen." #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "Info over KDiff3-menuplugin" kdiff3-0.9.97/po/nl/CMakeLists.txt0000644000175100001440000000016311626145610016111 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(nl ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/nl/kdiff3fileitemactionplugin.po0000644000175100001440000000624511626145610021222 0ustar joachimusers# Copyright (C) YEAR This_file_is_part_of_KDE # This file is distributed under the same license as the PACKAGE package. # # Freek de Kruijf , 2011. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 10:51+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "KDiff3 ..." #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "Vergelijken met %1" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "Samenvoegen met %1" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "'%1' voor later gebruik opslaan" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "3-weg samenvoeging met basis" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "Vergelijken met..." #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "Lijst wissen" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "Vergelijken" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "3-weg vergelijking" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "Info over KDiff3-menuplugin..." #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepagina: http://kdiff3.sourceforge.net\n" "\n" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" "De contextmenu-extensie gebruiken:\n" "Voor eenvoudige vergelijking van twee geselecteerde bestanden, kies " "\"Vergelijken\".\n" "Als het andere bestand ergens anders staat, gebruik \"Opslaan\" voor het " "eerste bestand voor later gebruik. Het zal verschijnen in het submenu " "\"Vergelijken met...\". Gebruik daarna \"Vergelijken met\" voor het tweede " "bestand.\n" "Voor een 3-weg samenvoeging, gebruik eerst \"Opslaan\" voor het " "basisbestand, daarna de tak om mee samen te voegen en kies daarna \"3-weg " "samenvoeging met basis\" op de tak die gebruikt zal worden als bestemming.\n" "Bovenstaande is ook van toepassing op het vergelijken en samenvoegen van " "mappen." #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "Info over Plugin voor KDiff3 File Item Action" kdiff3-0.9.97/po/nl/kdiff3.po0000644000175100001440000024662311626145610015074 0ustar joachimusers# translation of kdiff3.po to Dutch # translation of kdiff3.po to # translation of kdiff3.po to # Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # # Rinse de Vries , 2004. # Rinse de Vries , 2004, 2005, 2006, 2007, 2010. # Sander Koning , 2005. # Rinse de Vries , 2005. # Bram Schoenmakers , 2006. # Freek de Kruijf , 2008, 2009. # Freek de Kruijf , 2010, 2011. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 10:43+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "Doorgaan" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "Annuleren" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "Stoppen" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "Ok" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "Hulp" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "Standaarden" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "&Bestand" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "B&ewerken" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "&Directory" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "&Navigatie" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Versch&ilweergave" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "Sa&menvoegen" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "&Venster" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "In&stellingen" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "&Hulp" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "Info &over" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "A&uteur" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "Me&t dank aan" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "Samenvoeging van huidig item" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "Synchronisatie van huidig item" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "Openen" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "Opslaan" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "Opslaan als..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "Afdrukken..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "Knippen" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "Kopiëren" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "Plakken" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "Alles selecteren" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "Werkbalk tonen" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "&Statusbalk tonen" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 &configureren..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "Over" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "Zoeken" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "Volgende zoeken" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "Lettertype selecteren" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "U hebt een lettertype met variabele breedte gekozen.\n" "\n" "Omdat dit programma geen correcte ondersteuning biedt voor dergelijke " "lettertypen kunt u problemen ondervinden tijdens het bewerken.\n" "\n" "Wilt u doorgaan, of wilt u een ander lettertype selecteren?" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "Incompatibel lettertype." #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "Doorgaan op eigen risico" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "Ander lettertype kiezen" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "Voor meer informatie, zie het hulpmenu of de submap doc." #: kreplacements/kreplacements.cpp:1137 msgid "KDiff3-Usage" msgstr "KDiff3-gebruik" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "Negeren" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "Stoppen" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "Het opslaan van de klembordinhoud in een tijdelijk bestand is mislukt." #: diff.cpp:255 msgid "From Clipboard" msgstr "Van klembord" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "Spatie verwacht na afsluitend aanhalingsteken." #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "Geen overeenkomende aanhalingstekens." #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "Onverwacht aanhalingsteken in een argument." #: diff.cpp:503 msgid "No program specified." msgstr "Geen programma gespecificeerd." #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" "De voorverwerking is waarschijnlijk mislukt. Controleer dit commando:\n" "\n" " %1\n" "\n" "Dit commando zal nu worden uitgeschakeld." #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" "De voorverwerking van regelovereenkomsten is mogelijk mislukt. Controleer " "dit commando:\n" "\n" " %1\n" "\n" "Dit commando zal nu worden uitgeschakeld." #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "Fout met dataverlies:\n" "Als dit reproduceerbaar is, neem dan contact op met de auteur.\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "Ernstige interne fout" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "Mix van koppelingen en bestanden." #: directorymergewindow.cpp:143 msgid "Link: " msgstr "Koppeling: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "Grootte: " #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "Datum en grootte: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "Het aanmaken van de tijdelijke kopie van %1 is mislukt." #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "Het openen van %1 is mislukt." #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "Bestand wordt vergeleken..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "Fout bij het lezen van %1" #: directorymergewindow.cpp:358 msgid "Name" msgstr "Naam" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "Handeling" #: directorymergewindow.cpp:358 msgid "Status" msgstr "Status" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "Niet opgelost" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "Opgelost" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "Niet-wit" #: directorymergewindow.cpp:359 msgid "White" msgstr "Wit" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "U bent momenteel bezig met het samenvoegen van een map. Wilt u dat, of wilt " "u het samenvoegen afbreken en de map opnieuw inlezen?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "Waarschuwing" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "Opnieuw inlezen" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "Doorgaan met samenvoegen" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "Het openen van de mappen is mislukt:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "Map A \"%1\" bestaat niet of is geen map.\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "Map B \"%1\" bestaat niet of is geen map.\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "Map C \"%1\" bestaat niet of is geen map.\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "Fout bij openen van map" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "De doelmap kan niet hetzelfde zijn als A of B als er drie mappen worden " "samengevoegd.\n" "Controleer dit opnieuw voordat u doorgaat." #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "Parameter-waarschuwing" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "Directorypen worden geanalyseerd..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "Inlezen van map A" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "Inlezen van map B" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "Inlezen van map C" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "Sommige submappen zijn niet ingelezen" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "Controleer de toegangsrechten van de submappen." #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "Gereed." #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "Status van mappenvergelijking" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "Aantal submappen:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "Aantal identieke bestanden:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "Aantal verschillende bestanden:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "Aantal handmatige samenvoegingen:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "Dit heeft effect op alle samenvoegingen." #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "Verandering van alle samenvoegingen" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "Voortgang" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 msgid "To do." msgstr "Onvoltooid." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A naar B kopiëren" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B naar A kopiëren" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A verwijderen" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B verwijderen" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A & B verwijderen" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "Samenvoegen met A" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "Samenvoegen met B" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "Samenvoegen met A & B" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "Verwijderen (indien voorhanden)" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "Samenvoegen" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "Samenvoegen (handmatig)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "Fout: botsende bestandstypen" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "Fout: gewijzigd en verwijderd" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "Fout: de datums zijn hetzelfde, maar de bestanden niet." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "Deze handeling is momenteel niet beschikbaar." #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "Handeling niet mogelijk" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "Dit zou niet mogen gebeuren: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "Als u dit kunt reproduceren, neem dan contact op met de auteur van dit " "programma." #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "Programmafout" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "Er deed zich een fout voor tijdens het kopiëren.\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "Fout" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "Fout bij samenvoegen" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "Fout." #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "Gereed." #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "Niet opgeslagen." #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "Onbekende samenvoeging. (Dit mag niet voorkomen!)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "Onbekende samenvoeging." #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "De samenvoeging kan nu beginnen.\n" "\n" "Kies \"Starten\" als u de instructies hebt gelezen een weet waar u mee bezig " "bent.\n" "Door \"Simulatie\" te kiezen ziet u wat er zou kunnen gebeuren.\n" "\n" "Waarschuwing: dit programma bevindt zich in een ontwikkelstadium. Er is dus " "GEEN ENKELE GARANTIE dat het programma naar behoren zal werken. Maak " "reservekopieën van uw vitale gegevens!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "Samenvoeging starten" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "Starten" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "Simuleren" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "Het gemarkeerde item is van een verschillend type in de verschillende " "mappen. Kies wat er moet gebeuren." #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "De wijzigingsdatums van het bestanden zijn gelijk, maar de bestanden niet. " "Kies wat er moet gebeuren." #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "Het gemarkeerde item is gewijzigd in één map en verwijderd in de andere. " "Kies wat er moet gebeuren." #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "" "Deze handeling is niet mogelijk omdat er momenteel een map wordt " "samengevoegd." #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "Er deed zich een fout voor tijdens de laatste stap.\n" "Wilt u doorgaan met het item dat de fout veroorzaakte of wilt u dit item " "overslaan?" #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "Samenvoegen voortzetten na een foutmelding" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "Verdergaan met het laatste item" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "Item overslaan" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "Overgeslagen." #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "In uitvoering..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "De samenvoeging is voltooid." #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "Samenvoeging voltooid" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "" "Samenvoegsimulatie is voltooid. Controleer of u akkoord kunt gaan met de " "voorgestelde handelingen." #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "Er deed zich een fout voor. Klik op OK voor meer details.\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "Fout tijdens het wissen van %1: reservekopie aanmaken is mislukt." #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "map ( %1 ) recursief wissen" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "wissen ( %1 )" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "" "Fout: het wissen van de map is mislukt omdat de map niet kon worden geopend." #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "Fout: handeling voor map verwijderen( %1 ) is mislukt." #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "Fout: wissen is mislukt." #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "handmatig samenvoegen ( %1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" " Opmerking: na een handmatige samenvoeging dient de gebruiker verder te " "gaan via F7." #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "Fout: kopiëren( %1 -> %2 ) is mislukt. De bestaande bestemming kon niet " "gewist worden." #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "Koppeling kopiëren ( %1 -> %2 )" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "" "Fout: koppeling kopiëren is mislukt: externe koppelingen worden vooralsnog " "niet ondersteund." #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "Fout: koppeling kopiëren is mislukt." #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "kopiëren ( %1 -> %2 )" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "" "Fout tijdens het hernoemen ( %1 -> %2 ): de bestaande bestemming kan niet " "worden gewist." #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "hernoemen( %1 -> %2 )" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "Fout: hernoemen is mislukt." #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "Fout tijdens het aanmaken van de map %1. Bestaand bestand kan niet worden " "gewist." #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "Directory aanmaken( %1 )" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "Fout bij het aanmaken van de map." #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "Doel" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "Directory" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "Type" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "Grootte" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "Attr" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "Laatste wijziging" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "Koppelingsbestemming" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "Bestand" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "niet beschikbaar" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (doel): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (basis): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (doel): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (doel): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "Doel: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "Staat van mappen samenvoegen opslaan als..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "Directorysamenvoeging starten/voortzetten" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "Handeling uitvoeren voor huidig item" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "Geselecteerde bestand vergelijken" #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "Huidig bestand samenvoegen" #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "Samenvoegen\n" "Bestand" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "Alle submappen invouwen" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "Alle submappen uitvouwen" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "Voor alle items A kiezen" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "Voor alle items B kiezen" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "Voor alle items C kiezen" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "Handeling voor alle items automatisch kiezen" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "Geen handeling voor alle items" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "Identieke bestanden tonen" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "Identieke\n" "Bestanden" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "Verschillende bestanden tonen" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "Bestanden alleen in A tonen" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "Bestanden\n" "alleen in A" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "Bestanden alleen in B tonen" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "Bestanden\n" "alleen in B" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "Bestanden alleen in C tonen" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "Bestanden\n" "alleen in C" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "Expliciet geselecteerde bestand vergelijken" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "Expliciet geselecteerde bestanden samenvoegen" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "Niets doen" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "A && B verwijderen" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "Samenvoegen met A && B" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "Genegeerd. (Gebruiker gedefinieerd)." #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "Hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen" #: main.cpp:165 msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2011 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "Bugfixes, Debian pakketonderhouder" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Installatieprogramma voor Windows" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "i18n-help" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "Van klembord" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "KIO-Help" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "Class CvsIgnoreList uit Cervisia" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "Class StringMatcher" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 msgid "Directory Equality-Coloring patch" msgstr "Kleur van gelijke mappen" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "Reparatie voor het langzaam starten onder Windows" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "Diff Ext voor Windows" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "GNU-Diffutils" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "Intensieve test, gebruik en terugkoppeling" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Ondersteuning voor Mac" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "Overdracht naar KDE4" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "Silvan Scherrer" #: main.cpp:188 msgid "OS2 port" msgstr "Overbrengen naar OS2" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "En iedereen bedankt die fouten heeft gemeld en met ideeën kwam!" #: main.cpp:196 msgid "Merge the input." msgstr "Invoer samenvoegen." #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "" "Expliciet basisbestand. Voor compatibiliteit met sommige hulpprogramma's." #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "Uitvoerbestand. -m is inbegrepen. Bijv.: -o nieuwbestand.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "" "Uitvoerbestand, opnieuw (voor compatibiliteit met sommige hulpprogramma's)." #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "" "Geen grafisch venster als alle conflicten automatisch oplosbaar zijn ('-o " "bestand' is nodig)." #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "Conflicten niet automatisch oplossen (voor compatibiliteit ...)." #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "Zichtbare naamvervanging voor invoerbestand 1 (basis)." #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "Zichtbare naamvervanging voor invoerbestand 2." #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "Zichtbare naamvervanging voor invoerbestand 3." #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "" "Alternatieve zichtbare naamvervanging. Ditmaal voor elke invoer opgeven." #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" "Omzeil een instelling. Gebruik dit eenmalig voor elke instelling. Bijv. --cs " "\"AutoAdvance=1\"" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "Een lijst tonen met instellingen en huidige waarden." #: main.cpp:208 msgid "Use a different config file." msgstr "Een ander configuratiebestand gebruiken." #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "" "Eerste bestand om te openen (basis, indien niet opgegeven met '--base')." #: main.cpp:212 msgid "file2 to open" msgstr "Tweede bestand om te openen" #: main.cpp:213 msgid "file3 to open" msgstr "Derde bestand om te openen" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "" "Aantal overgebleven onopgeloste conflicten: %1 (waarvan %2 witruimtes zijn)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "De uitvoer is gewijzigd.\n" "Als u verder gaat zullen uw wijzigingen verloren gaan." #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "Alle invoerbestanden zijn binair gelijk." #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "Alle invoerbestanden bevatten dezelfde tekst." #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "Bestanden %1 en %2 zijn binair gelijk.\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "Bestanden %1 en %2 hebben dezelfde tekst.\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "Totaal aantal conflicten: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "Aantal automatisch opgeloste conflicten: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "Aantal onopgeloste conflicten: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "Conflicten" #: mergeresultwindow.cpp:1728 msgid "" msgstr "" #: mergeresultwindow.cpp:1736 msgid "" msgstr "" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "Nog niet alle conflicten zijn opgelost.\n" "Bestand is niet opgeslagen.\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "Er zijn nog onopgeloste conflicten" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" "Er is een conflict met de stijl aan het regeleinde. Kies deze stijl " "handmatig.\n" "Bestand is niet opgeslagen.\n" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "Het aanmaken van de reservekopie is mislukt. Het bestand is niet opgeslagen." #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "Fout bij opslaan van het bestand" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "Fout bij het opslaan." #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "Uitvoer" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[Gewijzigd]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "Codering voor opslaan" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "Regeleinde:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "Conflicten" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "Codec van" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "De bestanden om te vergelijken zijn niet gevonden." #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "Het wissen van een oudere reservekopie is mislukt tijdens het aanmaken van " "de nieuwe reservekopie.\n" "Bestandsnaam: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "Tijdens het aanmaken van een reservekopie is het hernoemen mislukt. \n" "Bestandsnamen: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "Bestandstatus opvragen: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "Bestand lezen: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "Bestand schrijven: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "Onvoldoende geheugen" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "Directory aanmaken: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "Directory verwijderen: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "Bestand verwijderen: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "Symbolische koppeling aanmaken: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "Bestand hernoemen: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "Bestand kopiëren: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "Fout tijdens bestanden kopiëren: het openen van het bestand is mislukt.\n" "Bestandsnaam: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "Fout tijdens bestanden kopiëren: het bestand kon niet worden opgeslagen.\n" "Bestandsnaam: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "" "Fout tijdens bestanden kopiëren: het openen is mislukt.\n" "Bestandsnaam: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "" "Fout tijdens bestanden kopiëren: het opslaan is mislukt.\n" "Bestandsnaam: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "Directory lezen: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "Directory inlezen: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "Ann&uleren" #: difftextwindow.cpp:403 msgid "Line" msgstr "Regel" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "Regel niet beschikbaar" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "Codering:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "Bovenste regel" #: difftextwindow.cpp:1769 msgid "End" msgstr "Einde" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "Huidige configuratie:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "Fout bij configuratie-optie:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "Optie '--auto' is gebruikt, maar er is geen uitvoerbestand opgegeven." #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "Optie '--auto' is genegeerd voor mappenvergelijking." #: kdiff3.cpp:405 msgid "Saving failed." msgstr "Opslag is mislukt." #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "Het openen van deze bestanden is mislukt:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "Fout bij bestanden openen" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "Opent documenten voor vergelijking..." #: kdiff3.cpp:479 msgid "Reload" msgstr "Opnieuw laden" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "" "Slaat het samenvoegresultaat op. Alle conflicten dienen te worden opgelost!" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "Slaat het huidige document op als..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "Verschillen afdrukken" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "Sluit de toepassing" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "Knipt de geselecteerde sectie uit en plaatst deze op het klembord" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "Kopieert de geselecteerde sectie naar het klembord" #: kdiff3.cpp:496 msgid "Pastes the clipboard contents to current position" msgstr "Plakt de inhoud van het klembord op de huidige positie" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "Alles in huidig venster selecteren" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "Tekst opzoeken" #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "Opnieuw zoeken" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "Activeert/deactiveert de statusbalk" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 instellen..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "Ga naar huidig verschil" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "Huidig\n" "Verschil" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "Ga naar eerste verschil" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "Ga naar eerste verschil" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "Ga naar laatste verschil" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "Laatste\n" "Verschil" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(Slaat witruimteverschillen over als \"Witruimte tonen\" is uitgeschakeld.)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(Slaat witruimteverschillen niet over, zelfs als \"Witruimte tonen\" is " "uitgeschakeld.)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "Ga naar vorig verschil" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "Voorgaand\n" "Verschil" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "Ga naar volgend verschil" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "Volgende\n" "Verschil" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "Ga naar vorig conflict" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "Vorig\n" "Conflict" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "Ga naar volgend conflict" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "Volgend\n" "Conflict" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "Ga naar vorig onopgelost conflict" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "Voorgaand\n" "Niet opgelost" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "Ga naar volgend onopgelost conflict" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "Volgend\n" "Niet opgelost" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "Regel(s) van A selecteren" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "Kies\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "Regel(s) van B selecteren" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "Kies\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "Regel(s) van C selecteren" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "Kies\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "" "Automatisch naar het volgende onopgeloste conflict gaan na bronselectie" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "" "Automatisch\n" "Volgende" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "Spaties && tabulator-tekens in verschillen tonen" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "Witruimte\n" "Tekens" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "Witruimte tonen" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "Witruimte\n" "Verschil" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "Regelnummering tonen" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "" "Regel\n" "nummers" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "A overal kiezen" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "B overal kiezen" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "C overal kiezen" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "A voor alle onopgeloste conflicten kiezen" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "B voor alle onopgeloste conflicten kiezen" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "C voor alle onopgeloste conflicten kiezen" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "A voor alle onopgeloste witruimteconflicten kiezen" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "B voor alle onopgeloste witruimteconflicten kiezen" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "C voor alle onopgeloste witruimteconflicten kiezen" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "Automatisch eenvoudige conflicten oplossen" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "Elk onderscheid maken bij conflicten" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "Automatisch samenvoegen d.m.v. reguliere expressie uitvoeren" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "Automatisch geschiedenisconflicten oplossen" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "Vergelijking bij selectie splitsen" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "Geselecteerde verschillen samenvoegen" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "Venster A tonen" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "Venster B tonen" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "Venster C tonen" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "Focus op volgend venster zetten" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "Normaal overzicht" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A vs B overzicht" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A vs C overzicht" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B vs C overzicht" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Regels afbreken in vensters met verschillen" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "Handmatige uitlijning van vergelijking toevoegen" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "Alle handmatige uitlijningen van vergelijkingen wissen" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "Focus op vorig venster zetten" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "Splitsen van vensters omschakelen" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "Directory- en tekstweergave splitsen in hoofdvenster" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "Tussen map- en tekstweergave wisselen" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "Het resultaat van de samenvoeging is niet opgeslagen." #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "Opslaan && afsluiten" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "Afsluiten zonder opslag" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "De opslag van het resultaat van de samenvoeging is mislukt." #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "" "U bent momenteel bezig met het samenvoegen van mappen. Wilt u toch afbreken?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "Bestand wordt opgeslagen..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "Bestand wordt opgeslagen met een nieuwe naam..." #: kdiff3.cpp:781 msgid "Printing not implemented." msgstr "Afdrukken niet geïmplementeerd." #: kdiff3.cpp:815 msgid "Printing..." msgstr "Afdrukken..." #: kdiff3.cpp:956 msgid "Selection" msgstr "Selectie" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "Afdrukken is voltooid." #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "Afdrukken is afgebroken." #: kdiff3.cpp:993 msgid "Exiting..." msgstr "Programma wordt afgesloten..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "Werkbalk aan/uit..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "De statusbalk aan- of uitzetten..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (basis):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "Bestand..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "Directory..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (optioneel):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "Namen kopiëren/wisselen ..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "%1<->%2 omwisselen" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "%1->uitvoer kopiëren" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "%1<->uitvoer omwisselen" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "Uitvoer (optioneel):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "Instellen..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "Zoektekst:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "Hoofdlettergevoelig" #: smalldialogs.cpp:372 msgid "Search A" msgstr "Zoeken in A" #: smalldialogs.cpp:377 msgid "Search B" msgstr "Zoeken in B" #: smalldialogs.cpp:382 msgid "Search C" msgstr "Zoeken in C" #: smalldialogs.cpp:387 msgid "Search output" msgstr "Zoeken in uitvoer" #: smalldialogs.cpp:392 msgid "&Search" msgstr "&Zoeken" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "Reguliere expressies testen" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "Reguliere expressie voor automatisch samenvoegen:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "Voorbeeld autosamenvoegregel:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "" "Voor het testen van automatisch samenvoegen, kopieer een regel die in uw " "bestanden wordt gebruikt." #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "Resultaat van overeenkomsten:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "Reguliere expressie voor begin van geschiedenis:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "Voorbeeld geschiedenisbeginregel (met bijhorend commentaar):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "" "Kopieer een geschiedenisbeginregel die u in uw bestanden gebruikt,\n" "inclusief een voorafgaand commentaar." #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "Reguliere expressie voor begin van geschiedenisitem:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "Sorteervolgorde geschiedenis:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "" "Voorbeeld van beginregel van geschiedenisitem (zonder voorafgaand " "commentaar):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "Kopieer een beginregel van een geschiedenisitem zoals die in uw bestanden " "wordt gebruikt.\n" "Voeg echter geen voorafgaand commentaar bij." #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "Resulterende sorteersleutel:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "Overeenkomst succesvol" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "Overeenkomst mislukt." #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "" "Er zijn niet evenveel openings- als sluitingshaakjes in de reguliere " "expressie." #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 bit" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "Verander dit indien niet-ascii tekens niet juist weergegeven worden." #: optiondialog.cpp:465 msgid "Configure" msgstr "Configureren" #: optiondialog.cpp:531 msgid "Font" msgstr "Lettertype" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "Lettertype voor editor & vergelijkingsvenster" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "Cursief lettertype voor onderscheiden" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "Selecteert de cursieve versie van het lettertype voor verschillen.\n" "Indien het lettertype geen cursieve tekens ondersteunt, dan doet deze optie " "niets." #: optiondialog.cpp:568 msgid "Color" msgstr "Kleur" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "Kleurinstellingen" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "Weergaven voor editor en vergelijkingen:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "Voorgrondkleur:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "Achtergrondkleur:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Achtergrondkleur bij verschillen:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "Kleur voor A:" #: optiondialog.cpp:628 msgid "Color B:" msgstr "Kleur voor B:" #: optiondialog.cpp:636 msgid "Color C:" msgstr "Kleur voor C:" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "Kleur voor conflicten:" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "Achtergrondkleur voor huidig bereik:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "Achtergrondkleur voor verschillen in huidig bereik:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "Kleur voor handmatig uitgelijnde verschilbereiken:" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "Weergave mappenvergelijking:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "Kleur nieuwste bestand:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "" "Het wijzigen van deze kleur is pas van kracht als u de volgende " "mappenvergelijking start." #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "Kleur oudste bestand:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "Kleur bestand met gemiddelde leeftijd:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "Kleur voor ontbrekende bestanden:" #: optiondialog.cpp:717 msgid "Editor" msgstr "Editor" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "Editorgedrag" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "Tab voegt spaties in" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "Aan: de Tab-toets voegt het passende aantal spaties in.\n" "Uit: een tabulatorteken zal ingevoegd worden." #: optiondialog.cpp:741 msgid "Tab size:" msgstr "Tabgrootte:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "Automatisch inspringen" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "" "Aan: de insprong van de vorige regel wordt gebruikt voor een nieuwe regel.\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "Automatische kopieerselectie" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "Aan: elke selectie zal onmiddellijk op het klembord geplaatst worden.\n" "Uit: kopiëren gebeurt expliciet, bijvoorbeeld via Ctrl-C." #: optiondialog.cpp:768 msgid "Dos/Windows" msgstr "Dos/Windows" #: optiondialog.cpp:769 msgid "Autodetect" msgstr "Autodetecteren" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "Stelt de regeleinden in voor als een bewerkt bestand wordt opgeslagen.\n" "DOS/Windows: CR+LF' UNIX: LF; met CR=0, LF=A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Verschil" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Instellingen voor verschil" #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "Als witruimte behandelen." #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "Getallen negeren" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "Numerieke tekens negeren tijdens de vergelijkingfase. (Gelijk aan witruimtes " "negeren.)\n" "Kan helpen bij het vergelijken van bestanden met numerieke gegevens." #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ commentaar negeren" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ commentaar als witruimtes behandelen." #: optiondialog.cpp:825 msgid "Ignore case" msgstr "Geen onderscheid hoofd-/kleine letters" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "Verschil in hoofd-/kleine letters behandelen als witruimteverschillen ('a' " "<=> 'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "Preprocessorcommando:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "" "Gebruikergedefinieerde voorbehandeling (zie documentatie voor meer details.)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "Preprocessor-commando alleen voor regelcontroles:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "Deze preprocessor wordt alleen gebruikt bij regelcontroles.\n" "(Zie documentatie voor meer details)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "Grondig zoeken (trager)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "Activeert de optie '--minimal' voor een externe vergelijking.\n" "De analyse van grote bestanden zal veel trager zijn." #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "Lijn B en C uit voor 3 invoerbestanden" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" "Probeer B en C uit te lijnen bij het vergelijken of samenvoegen van drie " "invoerbestanden.\n" "Niet aanbevolen voor samenvoegen omdat dit veel gecompliceerder kan worden.\n" "(Standaard is uit.)" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "Instellingen samenvoegen" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "Vertraging voor automatisch doorgaan (ms):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "In de modus \"Automatisch doorgaan\" wordt het resultaat van de huidige " "selectie getoond gedurende de ingestelde tijd, voordat men naar het volgende " "conflict springt.\n" "Bereik: 0-2000 ms" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "Toon informatievensters" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "Toon een venster met informatie over het aantal conflicten." #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "Standaardsamenvoeging van witruimtes bij 2 bestanden:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "Handmatige keuze" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "Bij het samenvoegen van bestanden toestaan dat er automatisch een oplossing " "gekozen wordt voor witruimteconflicten." #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "Standaardsamenvoeging van witruimtes bij 3 bestanden:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "Reguliere expressie voor automatisch samenvoegen" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "Reguliere expressies voor regels waar KDiff3 automatisch voor een bepaalde " "bron moet kiezen.\n" "Als een regel met een conflict overeenkomt met de reguliere expressie, dan\n" " - indien beschikbaar - C, anders wordt B gekozen." #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "Bij starten van samenvoegen automatisch reguliere expressie gebruiken" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "" "Onmiddellijk het automatisch samenvoegen beginnen aan de hand\n" "van reguliere expressies als een samenvoeging wordt gestart.\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "amenvoegen aan de hand van versiebeheergeschiedenis" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "Reguliere expressie voor begin van de geschiedenis van het versiebeheer.\n" "Normaal gesproken bevat deze regel het trefwoord \"$Log$\".\n" "Standaard waarde: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "Een geschiedenisitem van het versiebeheer bevat enkele regels.\n" "Geef de reguliere expressie op om de eerste regel te detecteren (zonder het " "voorafgaande commentaar).\n" "Maak gebruik van haakjes om de sleutels te groeperen die u voor het sorteren " "wilt gebruiken.\n" "Wanneer dit wordt leeggelaten zal KDiff3 er van uitgaan dat lege regels de " "geschiedenisitems scheidt.\n" "Raadpleeg de documentatie voor meer details." #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "Geschiedenis samenvoegend sorteren" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "Geschiedenis versiebeheer sorteren met een sleutel." #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "Sorteervolgorde van begin van geschiedenisitems:" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" "Ieder koppel haakjes in de reguliere expressie groepeert een sleutel die " "gebruikt kan\n" "worden voor sorteren.\n" "Geef de lijst met sleutels op (genummerd in volgorde van hun voorkomen\n" "beginnend bij 1) met een komma als scheidingsteken (bijv." "\"4,5,6,1,2,3,7\").\n" "Wanneer dit wordt leeg gelaten zal er niet gesorteerd worden.\n" "Raadpleeg de documentatie voor meer details." #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "Geschiedenis versiebeheer samenvoegen bij aanvang van samenvoegen" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "" "Automatisch samenvoegen van geschiedenis versiebeheer bij aanvang " "samenvoegen." #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "Max. aantal items in geschiedenis:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "Afknippen vanaf het opgegeven getal. Gebruik -1 voor een onbeperkt aantal " "items." #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "Uw reguliere expressies testen" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "Irrelevant samenvoegcommando:" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" "Indien opgegeven zal dit script uitgevoerd worden na het automatisch " "samenvoegen,\n" "als er geen relevante wijzigingen waren gevonden.\n" "Wordt aangeroepen met de argumenten: bestandsnaam1 bestandsnaam2 " "bestandsnaam 3" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "Automatisch opslaan en afsluiten bij samenvoegingen zonder conflicten" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "Als Kdiff3 vanaf de commandoregel is gestart om bestanden samen te voegen\n" "en alle conflicten waren oplosbaar zonder dat ingrijpen van de gebruiker " "nodig was, sla het resultaat dan op en sluit het programma af.\n" "(Vergelijkbaar met de commandoregeloptie \"--auto\")." #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "Map" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "Recursieve mappen" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "Bepaalt of submappen wel of niet worden ingelezen." #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "Bestandspatroon(en):" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patroon(en) van bestanden om in te lezen. \n" "Jokers: '*' en '?'\n" "Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "Bestand antipatroon(en):" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patroon(en) van bestanden die niet zullen worden ingelezen. \n" "Jokers: '*' en '?'\n" "Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken ';'" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "Directory antipatroon(en):" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "Patro(o)n(en) van mappen die niet zullen worden ingelezen. \n" "Jokers: '*' en '?'\n" "Meerdere patronen kunnen opgegeven worden d.m.v. het scheidingsteken: ';'" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore gebruiken" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "Breidt het antipatroon uit met alles dat genegeerd zou worden door CVS.\n" "Via lokale \".cvsignore\"-bestanden kan dit mapspecifiek zijn." #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "Verborgen bestanden en mappen zoeken" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "Zoekt naar verborgen bestanden en mappen." #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "Zoekt naar bestanden en mappen die beginnen met '.'." #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "Bestandskoppelingen volgen" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "Aan: vergelijk het bestand naarwaar de koppeling verwijst.\n" "Uit: vergelijk de koppelingen." #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "Directorykoppelingen volgen" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "Aan: vergelijk de map waarnaar de koppeling verwijst.\n" "Uit: vergelijk de koppelingen." #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "Hoofdlettergevoelige bestandsnaamvergelijking" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "De mappenvergelijking zal bestanden en mappen vergelijken als de namen ervan " "overeenkomen.\n" "Schakel deze optie in als ook het gebruik van hoofd-/kleine letters overeen " "moet komen. (Standaard voor Windows is uit, anders aan.)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "Bestandsvergelijkingsmodus" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "Binaire vergelijking" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "Binaire vergelijking van elk bestand (standaard)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "Volledige analyse" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "Doe een volledige analyse en toon de statistieken in extra kolommen.\n" "(Trager dan een binaire vergelijking, veel trager bij binaire bestanden.)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "Grootte en wijzigingsdatum vertrouwen (onveilig)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "Gaat er van uit dat de bestanden gelijk zijn als de wijzigingsdatum en de " "bestandsgroottes gelijk zijn.\n" "Bestanden met gelijke inhoud maar verschillende wijzigingsdatums zullen als " "verschillend worden aangemerkt.\n" "Nuttig voor grote mappen en trage netwerken." #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "" "Vertrouw de grootte en de datum, maar gebruik binaire vergelijking als de " "datums niet overeen komen (onveilig)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "Gaat er van uit dat de bestanden gelijk zijn als de wijzigingsdatum en de " "bestandsgroottes gelijk zijn.\n" "Als de datums niet gelijk zijn maar de groottes wel, dan wordt een binaire " "vergelijking toegepast.\n" "Nuttig voor grote mappen of trage netwerken." #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "Grootte vertrouwen (onveilig)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "Gaat er van uit dat bestanden gelijk zijn als de bestandsgroottes gelijk " "zijn.\n" "Nuttig voor grote mappen en trage netwerken wanneer de datum verandert " "tijdens een download." #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "Directorypen synchroniseren" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "Bestanden worden in beide mappen opgeslagen zodat beide achteraf hetzelfde " "zijn.\n" "Werkt alleen wanneer twee mappen vergeleken worden zonder dat er een " "bestemming is opgegeven." #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "Witruimteverschillen worden als gelijk beschouwd" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "Als bestanden alleen qua witruimtes van elkaar verschillen worden ze als " "gelijk beschouwd.\n" "Dit is alleen actief als volledige analyse is gekozen." #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "Nieuwere bestanden kopiëren in plaats van samenvoegen (onveilig)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "De inhoud niet controleren, enkel het nieuwe bestand nemen.\n" "(Gebruik dit enkel als u weet wat u doet!)\n" "Alleen effectief wanneer men twee mappen met elkaar vergelijkt." #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "Reservekopie aanmaken (.orig)" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "Wanneer een bestand bewaard moet worden over een oud bestand, dan zal het " "oude bestand worden hernoemd met als extensie '.orig', i.p.v. gewist te " "worden." #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "Regionale instellingen" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "Taal (herstart vereist)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "Kies de taal voor de GUI-tekst, of \"Auto\".\n" "Om de taal te wijzigen dient u KDiff3 te herstarten." #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "Dezelfde codering gebruiken voor alles:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "Schakel dit in dit om alle coderingen te wijzigen door alleen de eerste aan " "te passen.\n" "Schakel dit uit als er verschillende individuele instellingen nodig zijn." #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "Opmerking: lokale codering is " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "Bestandscodering voor A:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "Indien ingeschakeld zal Unicode-codering (UTF-16 of UTF-8 worden " "gedetecteerd.\n" "Als de bestandscodering niet gedetecteerd wordt zal de geselecteerde " "codering worden gebruikt om op terug te vallen.\n" "(Unicode-detectie is afhankelijk van de eerste bytes in een bestand.)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Unicode autodetecteren" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "Bestandscodering voor B:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "Bestandscodering voor C:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "Bestandscodering voor samenvoeguitvoer en opslag:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "Automatisch selecteren" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "Indien ingeschakeld zal de codering van de invoerbestanden worden gebruikt.\n" "Bij twijfelgevallen zult u gevraagd worden welke codering er voor het " "opslaan gebruikt moet worden." #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "Bestandscodering voor preprocessorbestanden:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "Rechts-naar-links-taal" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "Sommige talen worden van rechts naar links gelezen.\n" "Deze instelling zal de viewer en editor hierop aanpassen." #: optiondialog.cpp:1548 msgid "Integration" msgstr "Integratie" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "Integratie-instellingen" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "Te negeren commandoregelopties:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "Lijst van commandoregelopties die zullen worden genegeerd als KDiff3 door " "andere programma's wordt gebruikt.\n" "Meerdere waarden kunnen worden opgegeven door ze van elkaar te scheiden met " "';'\n" "Dit onderdrukt de foutmelding \"Onbekende optie\"." #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "Stoppen kan ook via de Escape-toets" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" "Snelle methode om te eindigen.\n" "Voor hen die het gewoon zijn om de Escape-toets te gebruiken." #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "Integreren met ClearCase" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" "Integreren met Rational ClearCase van IBM.\n" "Wijzigt het \"map\"-bestand in ClearCase-submap \"lib/mgrs\"\n" "(Alleen geactiveerd als ClearCase \"bin\"-map zich in het zoekpad bevindt)." #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "ClearCase-integratie verwijderen" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" "Herstel het oude \"map\"-bestand voordat de ClearCase-integratie wordt " "uitgevoerd." #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "Incompatibel lettertype" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "Doorgaan op eigen risico" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "Ander lettertype kiezen" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "Dit zet alle opties terug, niet alleen die van het huidige onderwerp." #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "Preprocessorcommando: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "De volgende optie(s) die hebt gekozen kunnen data wijzigen:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "Dit is meestal niet gewenst bij een samenvoeging.\n" "Wilt u deze instellingen uitschakelen of doorgaan met deze instellingen " "actief?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "Optie onveilig voor samenvoeging" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "Deze opties gebruiken tijdens samenvoegen" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "Onveilige opties uitschakelen" #: pdiff.cpp:300 msgid "Loading A" msgstr "A laden" #: pdiff.cpp:304 msgid "Loading B" msgstr "B laden" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Vergelijking: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Regelvergelijking: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "C laden" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Vergelijking: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Vergelijking: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Regelvergelijking: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Regelvergelijking: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "Alle invoerbestanden bevatten dezelfde tekst, maar zijn binair gezien niet " "gelijk." #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "Bestanden %1 en %2 hebben dezelfde tekst, maar zijn binair gezien ongelijk.\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "Sommige invoerbestanden blijken geen pure tekstbestanden te zijn.\n" "Opmerking: KDiff3 is niet bedoeld voor binaire gegevens.\n" "U kunt verder gaan op eigen risico." #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" "Enkele invoertekens konden niet worden geconverteerd naar geldige unicode.\n" "Misschien gebruikt u de verkeerde codec. (bijv. UTF-8 voor niet UTF-8 " "bestanden).\n" "Sla het resultaat niet op als u niet zeker bent. Doorgaan op eigen risico.\n" "Betrokken invoerbestanden zitten in %1." #: pdiff.cpp:1080 msgid "Abort" msgstr "Afbreken" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "Bestanden openen..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "Fout bij openen van bestand" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "Selectie wordt geknipt..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "Selectie wordt op het klembord geplaatst..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "De inhoud van het klembord wordt ingevoegd..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "Opslaan && doorgaan" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "Doorgaan zonder opslaan" #: pdiff.cpp:2018 msgid "Search complete." msgstr "Zoeken voltooid." #: pdiff.cpp:2018 msgid "Search Complete" msgstr "Zoeken voltooid" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "Er is niets geselecteerd in beide invoervensters voor de vergelijking." #: pdiff.cpp:2252 msgid "Error while adding manual diff range" msgstr "Fout bij het toevoegen van handmatig vergelijkingsbereik" #: kdiff3_shell.cpp:76 msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "Kon het Kdiff3-deel niet initialiseren.\n" "Dit doet zich meestal voor door een installatieprobleem. Lees a.u.b. het " "README-bestand van het broncodepakket voor meer details." #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "Rinse de Vries, Sander Koning, Bram Schoenmakers, Freek de Kruijf " #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "" "rinsedevries@kde.nl, sanderkoning@kde.nl, bramschoenmakers@kde.nl, f.de." "kruijf@hetnet.nl" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "&KDiff3" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 instellen" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "Hoofdwerkbalk" kdiff3-0.9.97/po/ja/0000755000175100001440000000000011626145654013342 5ustar joachimuserskdiff3-0.9.97/po/ja/kdiff3plugin.po0000644000175100001440000000363111626145607016270 0ustar joachimusersmsgid "" msgstr "" "Project-Id-Version: kdiff3plugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2008-11-30 00:25+0900\n" "Last-Translator: Yukiko Bando \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3plugin.cpp:107 msgid "KDiff3" msgstr "" #: kdiff3plugin.cpp:114 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3plugin.cpp:120 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3plugin.cpp:126 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3plugin.cpp:132 msgid "3-way merge with base" msgstr "" #: kdiff3plugin.cpp:139 msgid "Compare with ..." msgstr "" #: kdiff3plugin.cpp:149 msgid "Clear list" msgstr "" #: kdiff3plugin.cpp:157 msgid "Compare" msgstr "" #: kdiff3plugin.cpp:163 msgid "3 way comparison" msgstr "" #: kdiff3plugin.cpp:167 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3plugin.cpp:269 msgid "" "KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3plugin.cpp:271 msgid "" "Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, and " "it will appear in the \"Compare With ...\" submenu. Then, use \"Compare With" "\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, " "and then \"3-way merge with base\" on the other branch which will be used as " "the destination.\n" "The same also applies to directory comparison and merge." msgstr "" #: kdiff3plugin.cpp:279 msgid "About KDiff3 Menu Plugin" msgstr "" kdiff3-0.9.97/po/ja/CMakeLists.txt0000644000175100001440000000016311626145606016077 0ustar joachimusersfile(GLOB _po_files *.po) GETTEXT_PROCESS_PO_FILES(ja ALL INSTALL_DESTINATION ${LOCALE_INSTALL_DIR} ${_po_files} ) kdiff3-0.9.97/po/ja/kdiff3fileitemactionplugin.po0000644000175100001440000000404611626145607021206 0ustar joachimusersmsgid "" msgstr "" "Project-Id-Version: kdiff3fileitemactionplugin\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2011-05-06 23:50-0700\n" "Last-Translator: Japanese KDE translation team \n" "Language-Team: Japanese \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kdiff3fileitemaction.cpp:94 msgid "KDiff3 ..." msgstr "" #: kdiff3fileitemaction.cpp:125 #, kde-format msgid "Compare with %1" msgstr "" #: kdiff3fileitemaction.cpp:131 #, kde-format msgid "Merge with %1" msgstr "" #: kdiff3fileitemaction.cpp:137 #, kde-format msgid "Save '%1' for later" msgstr "" #: kdiff3fileitemaction.cpp:143 msgid "3-way merge with base" msgstr "" #: kdiff3fileitemaction.cpp:150 msgid "Compare with ..." msgstr "" #: kdiff3fileitemaction.cpp:162 msgid "Clear list" msgstr "" #: kdiff3fileitemaction.cpp:170 msgid "Compare" msgstr "" #: kdiff3fileitemaction.cpp:176 msgid "3 way comparison" msgstr "" #: kdiff3fileitemaction.cpp:180 msgid "About KDiff3 menu plugin ..." msgstr "" #: kdiff3fileitemaction.cpp:284 msgid "" "KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n" "\n" msgstr "" #: kdiff3fileitemaction.cpp:286 msgid "" "Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. It " "will appear in the \"Compare With ...\" submenu. Then use \"Compare With\" " "on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as " "destination.\n" "Same also applies to directory comparison and merge." msgstr "" #: kdiff3fileitemaction.cpp:294 msgid "About KDiff3 File Item Action Plugin" msgstr "" kdiff3-0.9.97/po/ja/kdiff3.po0000644000175100001440000025172611626145607015063 0ustar joachimusers# Translation of kdiff3 into Japanese. # SATOH Satoru , 2004. # Yukiko Bando , 2008. # Fumiaki Okushi , 2010. msgid "" msgstr "" "Project-Id-Version: kdiff3\n" "Report-Msgid-Bugs-To: http://bugs.kde.org\n" "POT-Creation-Date: 2011-08-02 05:07+0200\n" "PO-Revision-Date: 2010-10-03 21:09-0700\n" "Last-Translator: Fumiaki Okushi \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Accelerator-Marker: &\n" "X-Text-Markup: kde4\n" #: kreplacements/kreplacements.h:105 msgid "Continue" msgstr "続行" #: kreplacements/kreplacements.h:106 kreplacements/kreplacements.cpp:158 #: kreplacements/kreplacements.cpp:189 smalldialogs.cpp:512 msgid "Cancel" msgstr "キャンセル" #: kreplacements/kreplacements.h:107 kreplacements/kreplacements.cpp:631 msgid "Quit" msgstr "終了" #: kreplacements/kreplacements.cpp:177 kreplacements/kreplacements.cpp:339 msgid "Ok" msgstr "OK" #: kreplacements/kreplacements.cpp:181 kreplacements/kreplacements.cpp:715 msgid "Help" msgstr "ヘルプ" #: kreplacements/kreplacements.cpp:185 msgid "Defaults" msgstr "標準設定" #. i18n: file: kdiff3_shell.rc:4 #. i18n: ectx: Menu (file) #: kreplacements/kreplacements.cpp:296 rc.cpp:14 msgid "&File" msgstr "ファイル(&F)" #: kreplacements/kreplacements.cpp:297 msgid "&Edit" msgstr "編集(&E)" #. i18n: file: kdiff3_shell.rc:7 #. i18n: ectx: Menu (directory) #: kreplacements/kreplacements.cpp:298 rc.cpp:17 msgid "&Directory" msgstr "ディレクトリ(&D)" #. i18n: file: kdiff3_shell.rc:50 #. i18n: ectx: Menu (movement) #: kreplacements/kreplacements.cpp:301 rc.cpp:26 msgid "&Movement" msgstr "移動(&M)" #. i18n: file: kdiff3_shell.rc:61 #. i18n: ectx: Menu (diff) #: kreplacements/kreplacements.cpp:302 rc.cpp:29 msgid "D&iffview" msgstr "Diff ビュー(&I)" #. i18n: file: kdiff3_shell.rc:73 #. i18n: ectx: Menu (merge) #: kreplacements/kreplacements.cpp:303 rc.cpp:32 msgid "&Merge" msgstr "マージ(&M)" #. i18n: file: kdiff3_shell.rc:95 #. i18n: ectx: Menu (window) #: kreplacements/kreplacements.cpp:304 rc.cpp:35 msgid "&Window" msgstr "ウィンドウ(&W)" #: kreplacements/kreplacements.cpp:305 msgid "&Settings" msgstr "設定(&S)" #: kreplacements/kreplacements.cpp:306 msgid "&Help" msgstr "ヘルプ(&H)" #: kreplacements/kreplacements.cpp:353 msgid "&About" msgstr "情報(&A)" #: kreplacements/kreplacements.cpp:369 msgid "A&uthor" msgstr "作者(&U)" #: kreplacements/kreplacements.cpp:383 msgid "&Thanks To" msgstr "&Thanks To" #. i18n: file: kdiff3_shell.rc:30 #. i18n: ectx: Menu (dir_current_merge_menu) #: kreplacements/kreplacements.cpp:488 kreplacements/kreplacements.cpp:497 #: rc.cpp:20 msgid "Current Item Merge Operation" msgstr "現在の項目のマージ操作" #. i18n: file: kdiff3_shell.rc:38 #. i18n: ectx: Menu (dir_current_sync_menu) #: kreplacements/kreplacements.cpp:489 kreplacements/kreplacements.cpp:498 #: rc.cpp:23 msgid "Current Item Sync Operation" msgstr "現在の項目の同期操作" #: kreplacements/kreplacements.cpp:597 msgid "Open" msgstr "開く" #: kreplacements/kreplacements.cpp:606 msgid "Save" msgstr "保存" #: kreplacements/kreplacements.cpp:614 kdiff3.cpp:720 msgid "Save As..." msgstr "名前を付けて保存..." #: kreplacements/kreplacements.cpp:623 msgid "Print..." msgstr "印刷..." #: kreplacements/kreplacements.cpp:639 msgid "Cut" msgstr "切り取り" #: kreplacements/kreplacements.cpp:647 msgid "Copy" msgstr "コピー" #: kreplacements/kreplacements.cpp:655 msgid "Paste" msgstr "貼り付け" #: kreplacements/kreplacements.cpp:663 msgid "Select All" msgstr "すべて選択" #: kreplacements/kreplacements.cpp:671 msgid "Show Toolbar" msgstr "ツールバーを表示" #: kreplacements/kreplacements.cpp:679 msgid "Show &Status Bar" msgstr "ステータスバーを表示(&S)" #: kreplacements/kreplacements.cpp:687 #, kde-format msgid "&Configure %1..." msgstr "%1 を設定(&C)..." #: kreplacements/kreplacements.cpp:699 kreplacements/kreplacements.cpp:707 msgid "About" msgstr "情報" #: kreplacements/kreplacements.cpp:722 msgid "Find" msgstr "検索" #: kreplacements/kreplacements.cpp:730 msgid "Find Next" msgstr "次を検索" #: kreplacements/kreplacements.cpp:750 msgid "Select Font" msgstr "フォントを選択" #: kreplacements/kreplacements.cpp:788 optiondialog.cpp:1676 msgid "" "You selected a variable width font.\n" "\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n" "\n" "Do you want to continue or do you want to select another font." msgstr "" "可変幅なフォントを選択しています。\n" "\n" "このプログラムは可変幅フォントを適切に扱えないので、\n" "編集中に問題が発生する可能性があります。\n" "\n" "自己責任で続行するか、他のフォントを選択してください。" #: kreplacements/kreplacements.cpp:792 msgid "Incompatible font." msgstr "非互換なフォント" #: kreplacements/kreplacements.cpp:793 msgid "Continue at my own risk" msgstr "自己責任で続行" #: kreplacements/kreplacements.cpp:793 msgid "Select another font" msgstr "他のフォントを選択" #: kreplacements/kreplacements.cpp:1134 msgid "For more documentation, see the help-menu or the subdirectory doc." msgstr "" #: kreplacements/kreplacements.cpp:1137 #, fuzzy #| msgid "KDiff3" msgid "KDiff3-Usage" msgstr "KDiff3" #: kreplacements/kreplacements.cpp:1137 msgid "Ignore" msgstr "無視" #: kreplacements/kreplacements.cpp:1137 msgid "Exit" msgstr "終了" #: diff.cpp:251 msgid "Writing clipboard data to temp file failed." msgstr "クリップボードのデータを一時ファイルに書き込めませんでした。" #: diff.cpp:255 msgid "From Clipboard" msgstr "クリップボードから" #: diff.cpp:471 msgid "Expecting space after closing quotation mark." msgstr "" #: diff.cpp:474 msgid "Not matching quotation marks." msgstr "" #: diff.cpp:496 msgid "Unexpected quotation mark within argument." msgstr "" #: diff.cpp:503 msgid "No program specified." msgstr "" #: diff.cpp:605 #, kde-format msgid "" "Preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The preprocessing command will be disabled now." msgstr "" #: diff.cpp:653 #, kde-format msgid "" "The line-matching-preprocessing possibly failed. Check this command:\n" "\n" " %1\n" "\n" "The line-matching-preprocessing command will be disabled now." msgstr "" #: diff.cpp:1776 diff.cpp:1790 msgid "" "Data loss error:\n" "If it is reproducible please contact the author.\n" msgstr "" "データ消失エラー:\n" "再現可能であれば、プログラムの作者に連絡してください。\n" #: diff.cpp:1778 diff.cpp:1792 msgid "Severe Internal Error" msgstr "深刻な内部エラー" #: directorymergewindow.cpp:136 msgid "Mix of links and normal files." msgstr "リンクと普通のファイルが混在しています。" #: directorymergewindow.cpp:143 msgid "Link: " msgstr "リンク: " #: directorymergewindow.cpp:151 msgid "Size. " msgstr "サイズ" #: directorymergewindow.cpp:164 directorymergewindow.cpp:174 msgid "Date & Size: " msgstr "日付とサイズ: " #: directorymergewindow.cpp:184 directorymergewindow.cpp:190 #, kde-format msgid "Creating temp copy of %1 failed." msgstr "%1 の一時コピーの作成に失敗しました。" #: directorymergewindow.cpp:201 directorymergewindow.cpp:209 #, kde-format msgid "Opening %1 failed." msgstr "%1 を開けませんでした。" #: directorymergewindow.cpp:213 msgid "Comparing file..." msgstr "ファイルを比較中..." #: directorymergewindow.cpp:223 directorymergewindow.cpp:229 #, kde-format msgid "Error reading from %1" msgstr "%1 からの読み込みエラー" #: directorymergewindow.cpp:358 msgid "Name" msgstr "名前" #: directorymergewindow.cpp:358 msgid "Operation" msgstr "操作" #: directorymergewindow.cpp:358 msgid "Status" msgstr "状態" #: directorymergewindow.cpp:359 msgid "Unsolved" msgstr "未解決" #: directorymergewindow.cpp:359 msgid "Solved" msgstr "解決済み" #: directorymergewindow.cpp:359 msgid "Nonwhite" msgstr "ホワイトスペース以外" #: directorymergewindow.cpp:359 msgid "White" msgstr "ホワイトスペース" #: directorymergewindow.cpp:388 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort " "the merge and rescan the directory?" msgstr "" "ディレクトリマージを実行中です。本当にマージを中止し、ディレクトリを再スキャ" "ンしますか?" #: directorymergewindow.cpp:389 mergeresultwindow.cpp:305 kdiff3.cpp:655 #: kdiff3.cpp:665 kdiff3.cpp:677 pdiff.cpp:1079 pdiff.cpp:1813 pdiff.cpp:1823 msgid "Warning" msgstr "警告" #: directorymergewindow.cpp:390 directorymergewindow.cpp:2965 msgid "Rescan" msgstr "再スキャン" #: directorymergewindow.cpp:391 pdiff.cpp:1081 msgid "Continue Merging" msgstr "マージを続行" #: directorymergewindow.cpp:548 msgid "Opening of directories failed:" msgstr "ディレクトリを開けませんでした:" #: directorymergewindow.cpp:551 #, kde-format msgid "Dir A \"%1\" does not exist or is not a directory.\n" msgstr "" "ディレクトリ A %1 は存在しないか、ディレクトリではありま" "せん。\n" #: directorymergewindow.cpp:554 #, kde-format msgid "Dir B \"%1\" does not exist or is not a directory.\n" msgstr "" "ディレクトリ B %1 は存在しないか、ディレクトリではありま" "せん。\n" #: directorymergewindow.cpp:557 #, kde-format msgid "Dir C \"%1\" does not exist or is not a directory.\n" msgstr "" "ディレクトリ C %1 は存在しないか、ディレクトリではありま" "せん。\n" #: directorymergewindow.cpp:559 msgid "Directory Open Error" msgstr "ディレクトリのオープンエラー" #: directorymergewindow.cpp:567 msgid "" "The destination directory must not be the same as A or B when three " "directories are merged.\n" "Check again before continuing." msgstr "" "3 つのディレクトリをマージする場合、マージ先ディレクトリは A や B と同じで" "あってはいけません。\n" "続行する前にもう一度確認してください。" #: directorymergewindow.cpp:569 msgid "Parameter Warning" msgstr "パラメータ警告" #: directorymergewindow.cpp:574 msgid "Scanning directories..." msgstr "ディレクトリをスキャン中..." #: directorymergewindow.cpp:607 msgid "Reading Directory A" msgstr "ディレクトリ A を読み込み中" #: directorymergewindow.cpp:629 msgid "Reading Directory B" msgstr "ディレクトリ B を読み込み中" #: directorymergewindow.cpp:651 msgid "Reading Directory C" msgstr "ディレクトリ C を読み込み中" #: directorymergewindow.cpp:677 msgid "Some subdirectories were not readable in" msgstr "いくつかのサブディレクトリが読み込み不可でした" #: directorymergewindow.cpp:682 msgid "Check the permissions of the subdirectories." msgstr "サブディレクトリのパーミッションを確認してください。" #: directorymergewindow.cpp:721 kdiff3.cpp:620 kdiff3.cpp:712 kdiff3.cpp:737 #: kdiff3.cpp:1022 kdiff3.cpp:1043 pdiff.cpp:1161 pdiff.cpp:1233 #: pdiff.cpp:1271 pdiff.cpp:1287 pdiff.cpp:1317 pdiff.cpp:1328 msgid "Ready." msgstr "準備完了。" #: directorymergewindow.cpp:735 msgid "Directory Comparison Status" msgstr "ディレクトリ比較状態" #: directorymergewindow.cpp:736 msgid "Number of subdirectories:" msgstr "サブディレクトリ数:" #: directorymergewindow.cpp:737 msgid "Number of equal files:" msgstr "等しいファイルの数:" #: directorymergewindow.cpp:738 msgid "Number of different files:" msgstr "異なるファイルの数:" #: directorymergewindow.cpp:741 msgid "Number of manual merges:" msgstr "手作業でのマージ数:" #: directorymergewindow.cpp:912 msgid "This affects all merge operations." msgstr "これはすべてのマージ操作に影響します。" #: directorymergewindow.cpp:913 msgid "Changing All Merge Operations" msgstr "すべてのマージ操作を更新中" #: directorymergewindow.cpp:1312 msgid "Processing " msgstr "処理中" #: directorymergewindow.cpp:1736 directorymergewindow.cpp:1742 #, fuzzy msgid "To do." msgstr "To do." #: directorymergewindow.cpp:1810 directorymergewindow.cpp:2996 msgid "Copy A to B" msgstr "A を B にコピー" #: directorymergewindow.cpp:1811 directorymergewindow.cpp:2997 msgid "Copy B to A" msgstr "B を A にコピー" #: directorymergewindow.cpp:1812 directorymergewindow.cpp:2998 msgid "Delete A" msgstr "A を削除" #: directorymergewindow.cpp:1813 directorymergewindow.cpp:2999 msgid "Delete B" msgstr "B を削除" #: directorymergewindow.cpp:1814 msgid "Delete A & B" msgstr "A と B を削除" #: directorymergewindow.cpp:1815 directorymergewindow.cpp:3001 msgid "Merge to A" msgstr "A にマージ" #: directorymergewindow.cpp:1816 directorymergewindow.cpp:3002 msgid "Merge to B" msgstr "B にマージ" #: directorymergewindow.cpp:1817 msgid "Merge to A & B" msgstr "A と B にマージ" #: directorymergewindow.cpp:1821 directorymergewindow.cpp:2993 msgid "Delete (if exists)" msgstr "(存在すれば) 削除" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 #: directorymergewindow.cpp:2992 smalldialogs.cpp:110 optiondialog.cpp:869 msgid "Merge" msgstr "マージ" #: directorymergewindow.cpp:1822 directorymergewindow.cpp:1823 msgid "Merge (manual)" msgstr "マージ (手作業)" #: directorymergewindow.cpp:1824 msgid "Error: Conflicting File Types" msgstr "エラー: ファイルタイプが衝突しています" #: directorymergewindow.cpp:1825 msgid "Error: Changed and Deleted" msgstr "" #: directorymergewindow.cpp:1826 msgid "Error: Dates are equal but files are not." msgstr "エラー: 日付は同じですが、ファイルは等しくありません。" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 msgid "This operation is currently not possible." msgstr "この操作は今はできません。" #: directorymergewindow.cpp:1852 directorymergewindow.cpp:1881 #: directorymergewindow.cpp:1906 directorymergewindow.cpp:2174 msgid "Operation Not Possible" msgstr "操作不可" #: directorymergewindow.cpp:1945 msgid "" "This should never happen: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "If you know how to reproduce this, please contact the program author." msgstr "" "これは起きてはならないことです: \n" "\n" "mergeResultSaved: m_pMFI=0\n" "\n" "再現可能であれば、プログラムの作者に連絡してください。" #: directorymergewindow.cpp:1945 msgid "Program Error" msgstr "プログラムエラー" #: directorymergewindow.cpp:1956 msgid "An error occurred while copying.\n" msgstr "コピー中にエラーが発生しました。\n" #: directorymergewindow.cpp:1956 directorymergewindow.cpp:2025 #: directorymergewindow.cpp:2057 directorymergewindow.cpp:2105 #: directorymergewindow.cpp:2114 directorymergewindow.cpp:2123 #: directorymergewindow.cpp:2374 msgid "Error" msgstr "エラー" #: directorymergewindow.cpp:1957 directorymergewindow.cpp:2375 msgid "Merge Error" msgstr "マージエラー" #: directorymergewindow.cpp:1962 directorymergewindow.cpp:2380 msgid "Error." msgstr "エラー" #: directorymergewindow.cpp:1967 directorymergewindow.cpp:2272 #: directorymergewindow.cpp:2312 msgid "Done." msgstr "完了" #: directorymergewindow.cpp:1990 msgid "Not saved." msgstr "未保存" #: directorymergewindow.cpp:2025 msgid "Unknown merge operation. (This must never happen!)" msgstr "不明なマージ操作 (これは起きてはならないことです)" #: directorymergewindow.cpp:2057 msgid "Unknown merge operation." msgstr "不明なマージ操作です。" #: directorymergewindow.cpp:2072 msgid "" "The merge is about to begin.\n" "\n" "Choose \"Do it\" if you have read the instructions and know what you are " "doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n" "\n" "Be aware that this program still has beta status and there is NO WARRANTY " "whatsoever! Make backups of your vital data!" msgstr "" "マージ準備完了\n" "\n" "説明を読んで何をしているか分かっているなら実行を選択し" "てください。\n" "\n" "実行する前にマージの結果を知りたいなら試行を選択してく" "ださい。\n" "\n" "このプログラムはまだベータ段階で何が起きても無保証だということに注意してくだ" "さい!重要なデータはバックアップを取ってください!" #: directorymergewindow.cpp:2077 msgid "Starting Merge" msgstr "マージ開始" #: directorymergewindow.cpp:2078 msgid "Do It" msgstr "実行" #: directorymergewindow.cpp:2079 msgid "Simulate It" msgstr "試行" #: directorymergewindow.cpp:2105 msgid "" "The highlighted item has a different type in the different directories. " "Select what to do." msgstr "" "強調表示された項目はディレクトリによってタイプが違います。どうするか選択して" "ください。" #: directorymergewindow.cpp:2114 msgid "" "The modification dates of the file are equal but the files are not. Select " "what to do." msgstr "" "ファイルの更新日時は同じですが、ファイルは等しくありません。どうするか選択し" "てください。" #: directorymergewindow.cpp:2123 msgid "" "The highlighted item was changed in one directory and deleted in the other. " "Select what to do." msgstr "" "強調表示された項目は一方のディレクトリで変更され、他方のディレクトリで削除さ" "れました。どうするか選択してください。" #: directorymergewindow.cpp:2174 msgid "" "This operation is currently not possible because directory merge is " "currently running." msgstr "ディレクトリマージ中なのでこの操作を実行することはできません。" #: directorymergewindow.cpp:2234 msgid "" "There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want " "to skip this item?" msgstr "" "最終段階でエラーが発生しました。\n" "エラーを起した項目について続行しますか?それともスキップしますか?" # @title:window? #: directorymergewindow.cpp:2236 msgid "Continue merge after an error" msgstr "エラー後のマージ続行" #: directorymergewindow.cpp:2237 msgid "Continue With Last Item" msgstr "最後の項目について続行" #: directorymergewindow.cpp:2238 msgid "Skip Item" msgstr "項目をスキップ" #: directorymergewindow.cpp:2272 msgid "Skipped." msgstr "スキップしました。" #: directorymergewindow.cpp:2279 directorymergewindow.cpp:2493 msgid "In progress..." msgstr "進行中..." #: directorymergewindow.cpp:2327 msgid "Merge operation complete." msgstr "マージ操作が完了しました。" #: directorymergewindow.cpp:2327 directorymergewindow.cpp:2330 msgid "Merge Complete" msgstr "マージ完了" #: directorymergewindow.cpp:2340 msgid "" "Simulated merge complete: Check if you agree with the proposed operations." msgstr "マージ試行完了: この操作をしてもよいか確認してください。" #: directorymergewindow.cpp:2374 msgid "An error occurred. Press OK to see detailed information.\n" msgstr "" "エラーが発生しました。詳細情報を見るにはOKをクリックし" "てください。\n" #: directorymergewindow.cpp:2406 #, kde-format msgid "Error: While deleting %1: Creating backup failed." msgstr "エラー: %1 の削除中にバックアップファイルを作成できませんでした。" #: directorymergewindow.cpp:2413 #, kde-format msgid "delete directory recursively( %1 )" msgstr "再帰的にディレクトリを削除 (%1)" #: directorymergewindow.cpp:2415 #, kde-format msgid "delete( %1 )" msgstr "削除 (%1)" #: directorymergewindow.cpp:2430 msgid "Error: delete dir operation failed while trying to read the directory." msgstr "エラー: ディレクトリの削除がディレクトリの読み込み中に失敗しました。" #: directorymergewindow.cpp:2449 #, kde-format msgid "Error: rmdir( %1 ) operation failed." msgstr "エラー: ディレクトリの削除 (%1) に失敗しました。" #: directorymergewindow.cpp:2459 msgid "Error: delete operation failed." msgstr "エラー: 削除に失敗しました。" #: directorymergewindow.cpp:2485 #, kde-format msgid "manual merge( %1, %2, %3 -> %4)" msgstr "手作業でのマージ (%1, %2, %3 -> %4)" #: directorymergewindow.cpp:2488 msgid "" " Note: After a manual merge the user should continue by pressing F7." msgstr "" "手作業でのマージ後に続行するには F7 を押してください。" #: directorymergewindow.cpp:2513 #, kde-format msgid "Error: copy( %1 -> %2 ) failed.Deleting existing destination failed." msgstr "" "エラー: コピー (%1 -> %2) に失敗しました。既存のコピー先を削除できませんでし" "た。" #: directorymergewindow.cpp:2522 #, kde-format msgid "copyLink( %1 -> %2 )" msgstr "リンクをコピー (%1 -> %2)" #: directorymergewindow.cpp:2533 msgid "Error: copyLink failed: Remote links are not yet supported." msgstr "エラー: リンクのコピーに失敗しました。リモートリンクは未サポートです。" #: directorymergewindow.cpp:2539 msgid "Error: copyLink failed." msgstr "エラー: リンクのコピーに失敗しました。" #: directorymergewindow.cpp:2564 #, kde-format msgid "copy( %1 -> %2 )" msgstr "コピー (%1 -> %2)" #: directorymergewindow.cpp:2590 #, kde-format msgid "Error during rename( %1 -> %2 ): Cannot delete existing destination." msgstr "名前変更 (%1 -> %2) 中にエラー: 既存のコピー先を削除できません。" #: directorymergewindow.cpp:2596 #, kde-format msgid "rename( %1 -> %2 )" msgstr "名前変更 (%1 -> %2)" #: directorymergewindow.cpp:2605 msgid "Error: Rename failed." msgstr "エラー: 名前変更に失敗しました。" #: directorymergewindow.cpp:2623 #, kde-format msgid "Error during makeDir of %1. Cannot delete existing file." msgstr "" "ディレクトリの作成 (%1) 中にエラーが発生しました。既存のファイルを削除できま" "せん。" #: directorymergewindow.cpp:2639 #, kde-format msgid "makeDir( %1 )" msgstr "ディレクトリを作成 (%1)" #: directorymergewindow.cpp:2649 msgid "Error while creating directory." msgstr "ディレクトリの作成中にエラーが発生しました。" #: directorymergewindow.cpp:2674 directorymergewindow.cpp:2784 msgid "Dest" msgstr "先" #: directorymergewindow.cpp:2678 directorymergewindow.cpp:2709 msgid "Dir" msgstr "ディレクトリ" #: directorymergewindow.cpp:2678 msgid "Type" msgstr "タイプ" #: directorymergewindow.cpp:2678 msgid "Size" msgstr "サイズ" #: directorymergewindow.cpp:2679 msgid "Attr" msgstr "属性" #: directorymergewindow.cpp:2679 msgid "Last Modification" msgstr "最終更新" #: directorymergewindow.cpp:2679 msgid "Link-Destination" msgstr "リンク先" #: directorymergewindow.cpp:2709 difftextwindow.cpp:401 msgid "File" msgstr "ファイル" #: directorymergewindow.cpp:2726 msgid "not available" msgstr "利用不可" #: directorymergewindow.cpp:2746 msgid "A (Dest): " msgstr "A (先): " #: directorymergewindow.cpp:2749 msgid "A (Base): " msgstr "A (元): " #: directorymergewindow.cpp:2755 msgid "B (Dest): " msgstr "B (先): " #: directorymergewindow.cpp:2763 msgid "C (Dest): " msgstr "C (先): " #: directorymergewindow.cpp:2769 msgid "Dest: " msgstr "先: " #: directorymergewindow.cpp:2836 msgid "Save Directory Merge State As..." msgstr "ディレクトリマージの状態を保存..." #: directorymergewindow.cpp:2959 msgid "Start/Continue Directory Merge" msgstr "ディレクトリマージを開始/続行" #: directorymergewindow.cpp:2960 msgid "Run Operation for Current Item" msgstr "現在の項目について操作を実行" #: directorymergewindow.cpp:2961 msgid "Compare Selected File" msgstr "選択ファイルを比較 " #: directorymergewindow.cpp:2962 msgid "Merge Current File" msgstr "現在のファイルをマージ " #: directorymergewindow.cpp:2962 msgid "" "Merge\n" "File" msgstr "" "ファイル\n" "をマージ" #: directorymergewindow.cpp:2963 msgid "Fold All Subdirs" msgstr "すべてのサブディレクトリをたたむ" #: directorymergewindow.cpp:2964 msgid "Unfold All Subdirs" msgstr "すべてのサブディレクトリを展開" #: directorymergewindow.cpp:2968 msgid "Choose A for All Items" msgstr "すべての項目について A を選択" #: directorymergewindow.cpp:2969 msgid "Choose B for All Items" msgstr "すべての項目について B を選択" #: directorymergewindow.cpp:2970 msgid "Choose C for All Items" msgstr "すべての項目について C を選択" #: directorymergewindow.cpp:2971 msgid "Auto-Choose Operation for All Items" msgstr "すべての項目について自動選択" #: directorymergewindow.cpp:2972 msgid "No Operation for All Items" msgstr "すべての項目について操作なし" #: directorymergewindow.cpp:2977 msgid "Show Identical Files" msgstr "等しいファイルを表示" #: directorymergewindow.cpp:2977 msgid "" "Identical\n" "Files" msgstr "" "等しい\n" "ファイル" #: directorymergewindow.cpp:2978 msgid "Show Different Files" msgstr "異なるファイルを表示" #: directorymergewindow.cpp:2979 msgid "Show Files only in A" msgstr "A にのみ存在するファイルを表示" #: directorymergewindow.cpp:2979 msgid "" "Files\n" "only in A" msgstr "" "A にのみ存在\n" "するファイル" #: directorymergewindow.cpp:2980 msgid "Show Files only in B" msgstr "B にのみ存在するファイルを表示" #: directorymergewindow.cpp:2980 msgid "" "Files\n" "only in B" msgstr "" "B にのみ存在\n" "するファイル" #: directorymergewindow.cpp:2981 msgid "Show Files only in C" msgstr "C にのみ存在するファイルを表示" #: directorymergewindow.cpp:2981 msgid "" "Files\n" "only in C" msgstr "" "C にのみ存在\n" "するファイル" #: directorymergewindow.cpp:2985 msgid "Compare Explicitly Selected Files" msgstr "明示的に選択したファイルを比較" #: directorymergewindow.cpp:2986 msgid "Merge Explicitly Selected Files" msgstr "明示的に選択したファイルをマージ" #: directorymergewindow.cpp:2988 directorymergewindow.cpp:2995 msgid "Do Nothing" msgstr "何もしない" #: directorymergewindow.cpp:2989 msgid "A" msgstr "A" #: directorymergewindow.cpp:2990 msgid "B" msgstr "B" #: directorymergewindow.cpp:2991 msgid "C" msgstr "C" #: directorymergewindow.cpp:3000 msgid "Delete A && B" msgstr "A と B を削除" #: directorymergewindow.cpp:3003 msgid "Merge to A && B" msgstr "A と B にマージ" #: main.cpp:74 main.cpp:76 msgid "Ignored. (User defined.)" msgstr "" #: main.cpp:162 msgid "kdiff3" msgstr "kdiff3" #: main.cpp:164 msgid "Tool for Comparison and Merge of Files and Directories" msgstr "ファイルとディレクトリを比較/マージするためのツール" #: main.cpp:165 #, fuzzy #| msgid "(c) 2002-2009 Joachim Eibl" msgid "(c) 2002-2011 Joachim Eibl" msgstr "(c) 2002-2009 Joachim Eibl" #: main.cpp:172 kdiff3_part.cpp:303 msgid "Joachim Eibl" msgstr "Joachim Eibl" #: main.cpp:173 msgid "Eike Sauer" msgstr "Eike Sauer" #: main.cpp:173 msgid "Bugfixes, Debian package maintainer" msgstr "バグ修正、Debian パッケージのメンテナ" #: main.cpp:174 msgid "Sebastien Fricker" msgstr "Sebastien Fricker" #: main.cpp:174 msgid "Windows installer" msgstr "Windows 用インストーラ" #: main.cpp:175 msgid "Stephan Binner" msgstr "Stephan Binner" #: main.cpp:175 msgid "i18n-help" msgstr "ローカライゼーションに関する手助け" #: main.cpp:176 msgid "Stefan Partheymueller" msgstr "Stefan Partheymueller" #: main.cpp:176 msgid "Clipboard-patch" msgstr "クリップボードのパッチ" #: main.cpp:177 msgid "David Faure" msgstr "David Faure" #: main.cpp:177 msgid "KIO-Help" msgstr "" #: main.cpp:178 msgid "Bernd Gehrmann" msgstr "Bernd Gehrmann" #: main.cpp:178 msgid "Class CvsIgnoreList from Cervisia" msgstr "" #: main.cpp:179 msgid "Andre Woebbeking" msgstr "Andre Woebbeking" #: main.cpp:179 msgid "Class StringMatcher" msgstr "" #: main.cpp:180 msgid "Michael Denio" msgstr "Michael Denio" #: main.cpp:180 #, fuzzy #| msgid "Directory Comparison Status" msgid "Directory Equality-Coloring patch" msgstr "ディレクトリ比較状態" #: main.cpp:181 msgid "Manfred Koehler" msgstr "Manfred Koehler" #: main.cpp:181 msgid "Fix for slow startup on Windows" msgstr "" #: main.cpp:182 msgid "Sergey Zorin" msgstr "Sergey Zorin" #: main.cpp:182 msgid "Diff Ext for Windows" msgstr "" #: main.cpp:183 msgid "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" msgstr "Paul Eggert, Mike Haertel, David Hayes, Richard Stallman, Len Tower" #: main.cpp:183 msgid "GNU-Diffutils" msgstr "" #: main.cpp:184 msgid "Tino Boellsterling, Timothy Mee" msgstr "Tino Boellsterling, Timothy Mee" #: main.cpp:184 msgid "Intensive test, use and feedback" msgstr "" #: main.cpp:185 msgid "Michael Schmidt" msgstr "Michael Schmidt" #: main.cpp:185 msgid "Mac support" msgstr "Mac サポート" #: main.cpp:186 msgid "Valentin Rusu" msgstr "Valentin Rusu" #: main.cpp:186 main.cpp:187 msgid "KDE4 porting" msgstr "KDE4 への移植" #: main.cpp:187 msgid "Albert Astals Cid" msgstr "Albert Astals Cid" #: main.cpp:188 msgid "Silvan Scherrer" msgstr "" #: main.cpp:188 msgid "OS2 port" msgstr "" #: main.cpp:190 msgid "+ Many thanks to those who reported bugs and contributed ideas!" msgstr "バグやアイデアを報告してくれた方々に感謝します。" #: main.cpp:196 msgid "Merge the input." msgstr "入力をマージ" #: main.cpp:197 msgid "Explicit base file. For compatibility with certain tools." msgstr "明示的にベースファイルを指定 (一部のツールとの互換性のため)" #: main.cpp:198 msgid "Output file. Implies -m. E.g.: -o newfile.txt" msgstr "出力ファイルを指定。暗示的に -m を指定。例: -o newfile.txt" #: main.cpp:199 msgid "Output file, again. (For compatibility with certain tools.)" msgstr "出力ファイルを指定 (一部のツールとの互換性のため)" #: main.cpp:200 msgid "No GUI if all conflicts are auto-solvable. (Needs -o file)" msgstr "すべての衝突を自動解決できる場合は GUI を使用しない (-o file が必要)" #: main.cpp:201 msgid "Don't solve conflicts automatically. (For compatibility...)" msgstr "衝突を自動解決しない (互換性のため)" #: main.cpp:202 msgid "Visible name replacement for input file 1 (base)." msgstr "入力ファイル 1 (ベース) の代替表示名" #: main.cpp:203 msgid "Visible name replacement for input file 2." msgstr "入力ファイル 2 の代替表示名" #: main.cpp:204 msgid "Visible name replacement for input file 3." msgstr "入力ファイル 3 の代替表示名" #: main.cpp:205 msgid "Alternative visible name replacement. Supply this once for every input." msgstr "代替表示名。一度設定するとすべての入力に適用されます。" #: main.cpp:206 msgid "" "Override a config setting. Use once for every setting. E.g.: --cs " "\"AutoAdvance=1\"" msgstr "" #: main.cpp:207 msgid "Show list of config settings and current values." msgstr "設定項目と現在の値を一覧表示" #: main.cpp:208 msgid "Use a different config file." msgstr "使用する設定ファイルを指定" #: main.cpp:211 msgid "file1 to open (base, if not specified via --base)" msgstr "開く file1 (ベース, --base が未指定の場合)" #: main.cpp:212 msgid "file2 to open" msgstr "開く file2" #: main.cpp:213 msgid "file3 to open" msgstr "開く file3" #: mergeresultwindow.cpp:152 mergeresultwindow.cpp:976 #: mergeresultwindow.cpp:990 mergeresultwindow.cpp:1002 #: mergeresultwindow.cpp:1014 #, kde-format msgid "Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" msgstr "未解決の衝突の数: %1 (内 %2 はホワイトスペース)" #: mergeresultwindow.cpp:303 msgid "" "The output has been modified.\n" "If you continue your changes will be lost." msgstr "" "出力が更新されました。\n" "続行すると更新内容は失われます。" #: mergeresultwindow.cpp:834 pdiff.cpp:532 msgid "All input files are binary equal." msgstr "すべての入力ファイルはバイナリ的に同じです。" #: mergeresultwindow.cpp:836 msgid "All input files contain the same text." msgstr "すべての入力ファイルのテキストは同じです。" #: mergeresultwindow.cpp:838 mergeresultwindow.cpp:840 #: mergeresultwindow.cpp:842 pdiff.cpp:536 pdiff.cpp:538 pdiff.cpp:540 #, kde-format msgid "Files %1 and %2 are binary equal.\n" msgstr "ファイル %1 と %2 はバイナリ的に同じです。\n" #: mergeresultwindow.cpp:839 mergeresultwindow.cpp:841 #: mergeresultwindow.cpp:843 #, kde-format msgid "Files %1 and %2 have equal text.\n" msgstr "ファイル %1 と %2 のテキストは同じです。\n" #: mergeresultwindow.cpp:849 msgid "Total number of conflicts: " msgstr "衝突の総計: " #: mergeresultwindow.cpp:850 msgid "" "\n" "Nr of automatically solved conflicts: " msgstr "" "\n" "自動解決された衝突の数: " #: mergeresultwindow.cpp:851 msgid "" "\n" "Nr of unsolved conflicts: " msgstr "" "\n" "未解決の衝突の数: " #: mergeresultwindow.cpp:853 msgid "Conflicts" msgstr "衝突" #: mergeresultwindow.cpp:1728 msgid "" msgstr "<ソース行なし>" #: mergeresultwindow.cpp:1736 msgid "" msgstr "<マージ衝突 (ホワイトスペースのみ)>" #: mergeresultwindow.cpp:1738 mergeresultwindow.cpp:2517 msgid "" msgstr "<マージ衝突>" #: mergeresultwindow.cpp:2725 msgid "" "Not all conflicts are solved yet.\n" "File not saved.\n" msgstr "" "未解決の衝突がまだ残っています。\n" "ファイルは保存されていません。\n" #: mergeresultwindow.cpp:2727 mergeresultwindow.cpp:2736 msgid "Conflicts Left" msgstr "未解決の衝突があります" #: mergeresultwindow.cpp:2734 msgid "" "There is a line end style conflict. Please choose the line end style " "manually.\n" "File not saved.\n" msgstr "" #: mergeresultwindow.cpp:2748 msgid "" "\n" "\n" "Creating backup failed. File not saved." msgstr "" "\n" "\n" "バックアップファイルの作成に失敗しました。ファイルは保存されていません。" #: mergeresultwindow.cpp:2748 mergeresultwindow.cpp:2792 msgid "File Save Error" msgstr "ファイルの保存エラー" #: mergeresultwindow.cpp:2792 msgid "Error while writing." msgstr "書き込み中にエラーが発生しました。" #: mergeresultwindow.cpp:3122 msgid "Output" msgstr "出力" #: mergeresultwindow.cpp:3134 mergeresultwindow.cpp:3314 msgid "[Modified]" msgstr "[更新]" #: mergeresultwindow.cpp:3141 msgid "Encoding for saving" msgstr "保存時のエンコーディング" #: mergeresultwindow.cpp:3149 difftextwindow.cpp:1704 difftextwindow.cpp:1737 #: optiondialog.cpp:762 msgid "Line end style:" msgstr "改行コード:" #: mergeresultwindow.cpp:3194 difftextwindow.cpp:1737 optiondialog.cpp:767 msgid "Unix" msgstr "Unix" #: mergeresultwindow.cpp:3195 difftextwindow.cpp:1737 msgid "DOS" msgstr "DOS" #: mergeresultwindow.cpp:3229 msgid "Conflict" msgstr "衝突" #: mergeresultwindow.cpp:3261 mergeresultwindow.cpp:3263 #: mergeresultwindow.cpp:3265 msgid "Codec from" msgstr "" #: kdiff3_part.cpp:157 kdiff3_part.cpp:234 msgid "Couldn't find files for comparison." msgstr "比較するファイルを見つけることができませんでした。" #: kdiff3_part.cpp:302 msgid "KDiff3Part" msgstr "KDiff3Part" #: fileaccess.cpp:612 msgid "" "While trying to make a backup, deleting an older backup failed. \n" "Filename: " msgstr "" "バックアップの作成中に古いバックアップを削除できませんでした。\n" "ファイル名: " #: fileaccess.cpp:619 msgid "" "While trying to make a backup, renaming failed. \n" "Filenames: " msgstr "" "バックアップの作成中に名前変更に失敗しました。\n" "ファイル名: " #: fileaccess.cpp:643 #, kde-format msgid "Getting file status: %1" msgstr "ファイルの状態を取得中: %1" #: fileaccess.cpp:686 #, kde-format msgid "Reading file: %1" msgstr "ファイルを読み込み中: %1" #: fileaccess.cpp:723 #, kde-format msgid "Writing file: %1" msgstr "ファイルに書き込み中: %1" #: fileaccess.cpp:751 msgid "Out of memory" msgstr "メモリが足りません" #: fileaccess.cpp:786 #, kde-format msgid "Making directory: %1" msgstr "ディレクトリを作成中: %1" #: fileaccess.cpp:806 #, kde-format msgid "Removing directory: %1" msgstr "ディレクトリを削除中: %1" #: fileaccess.cpp:821 #, kde-format msgid "Removing file: %1" msgstr "ファイルを削除中: %1" #: fileaccess.cpp:837 #, kde-format msgid "Creating symbolic link: %1 -> %2" msgstr "シンボリックリンクを作成中: %1 -> %2" #: fileaccess.cpp:864 #, kde-format msgid "Renaming file: %1 -> %2" msgstr "ファイル名を変更中: %1 -> %2" #: fileaccess.cpp:897 #, kde-format msgid "Copying file: %1 -> %2" msgstr "ファイルをコピー中: %1 -> %2" #: fileaccess.cpp:911 #, kde-format msgid "" "Error during file copy operation: Opening file for reading failed. Filename: " "%1" msgstr "" "ファイルコピー中にエラー: ファイルを読み込みのために開けませんでした。ファイ" "ル名: %1" #: fileaccess.cpp:917 #, kde-format msgid "" "Error during file copy operation: Opening file for writing failed. Filename: " "%1" msgstr "" "ファイルコピー中にエラー: ファイルを書き込みのために開けませんでした。ファイ" "ル名: %1" #: fileaccess.cpp:932 #, kde-format msgid "Error during file copy operation: Reading failed. Filename: %1" msgstr "ファイルコピー中にエラー: 読み込みに失敗しました。ファイル名: %1" #: fileaccess.cpp:941 #, kde-format msgid "Error during file copy operation: Writing failed. Filename: %1" msgstr "ファイルコピー中にエラー: 書き込みに失敗しました。ファイル名: %1" #: fileaccess.cpp:1231 msgid "Reading directory: " msgstr "ディレクトリを読み込み中: " #: fileaccess.cpp:1355 #, kde-format msgid "Listing directory: %1" msgstr "ディレクトリの内容一覧を作成中: %1" #: fileaccess.cpp:1489 smalldialogs.cpp:179 smalldialogs.cpp:396 msgid "&Cancel" msgstr "キャンセル(&C)" #: difftextwindow.cpp:403 msgid "Line" msgstr "行" #: difftextwindow.cpp:405 msgid "Line not available" msgstr "行がありません" #: difftextwindow.cpp:1703 difftextwindow.cpp:1736 msgid "Encoding:" msgstr "エンコーディング:" #: difftextwindow.cpp:1759 kdiff3.cpp:831 msgid "Top line" msgstr "上部行" #: difftextwindow.cpp:1769 msgid "End" msgstr "最後" #: kdiff3.cpp:169 msgid "Current Configuration:" msgstr "現在の設定:" #: kdiff3.cpp:174 msgid "Config Option Error:" msgstr "設定オプションのエラー:" #: kdiff3.cpp:219 msgid "Option --auto used, but no output file specified." msgstr "" "オプション --auto を使用していますが、出力ファイルが指定されて" "いません。" #: kdiff3.cpp:369 msgid "Option --auto ignored for directory comparison." msgstr "" "オプション --auto はディレクトリ比較時には無視されます。" #: kdiff3.cpp:405 msgid "Saving failed." msgstr "保存に失敗しました。" #: kdiff3.cpp:440 pdiff.cpp:1143 pdiff.cpp:1214 msgid "Opening of these files failed:" msgstr "以下のファイルを開けませんでした:" #: kdiff3.cpp:449 msgid "File Open Error" msgstr "ファイルのオープンエラー" #: kdiff3.cpp:477 msgid "Opens documents for comparison..." msgstr "比較のために文書を開きます..." #: kdiff3.cpp:479 msgid "Reload" msgstr "再読み込み" #: kdiff3.cpp:482 msgid "Saves the merge result. All conflicts must be solved!" msgstr "マージ結果を保存します。すべての衝突を解決しなければなりません。" #: kdiff3.cpp:484 msgid "Saves the current document as..." msgstr "現在の文書を別名で保存します..." #: kdiff3.cpp:487 msgid "Print the differences" msgstr "差異を印刷します" #: kdiff3.cpp:490 msgid "Quits the application" msgstr "アプリケーションを終了します" #: kdiff3.cpp:492 msgid "Cuts the selected section and puts it to the clipboard" msgstr "選択範囲を切り取り、クリップボードに格納します" #: kdiff3.cpp:494 msgid "Copies the selected section to the clipboard" msgstr "選択範囲をコピーし、クリップボードに格納します" #: kdiff3.cpp:496 #, fuzzy #| msgid "Pastes the clipboard contents to actual position" msgid "Pastes the clipboard contents to current position" msgstr "クリップボードの内容を現在の位置に貼り付けます" #: kdiff3.cpp:498 msgid "Select everything in current window" msgstr "現在のウィンドウのすべてを選択します" #: kdiff3.cpp:500 msgid "Search for a string" msgstr "文字列を検索します" # StatusTip for FindNext #: kdiff3.cpp:502 msgid "Search again for the string" msgstr "文字列の次のマッチを検索します" #: kdiff3.cpp:507 msgid "Enables/disables the statusbar" msgstr "ステータスバーの表示/非表示を切り替えます" #: kdiff3.cpp:511 msgid "Configure KDiff3..." msgstr "KDiff3 を設定..." #: kdiff3.cpp:532 msgid "Go to Current Delta" msgstr "現在の異なる部分に移動" #: kdiff3.cpp:532 msgid "" "Current\n" "Delta" msgstr "" "現在の\n" "異なる部分" #: kdiff3.cpp:534 msgid "Go to First Delta" msgstr "最初の異なる部分に移動" #: kdiff3.cpp:534 msgid "" "First\n" "Delta" msgstr "" "最初の\n" "異なる部分" #: kdiff3.cpp:536 msgid "Go to Last Delta" msgstr "最後の異なる部分に移動" #: kdiff3.cpp:536 msgid "" "Last\n" "Delta" msgstr "" "最後の\n" "異なる部分" #: kdiff3.cpp:538 msgid "(Skips white space differences when \"Show White Space\" is disabled.)" msgstr "" "(ホワイトスペースの表示が無効なときはホワイトスペースの差異をスキップする)" #: kdiff3.cpp:539 msgid "" "(Does not skip white space differences even when \"Show White Space\" is " "disabled.)" msgstr "" "(ホワイトスペースの表示が無効なときもホワイトスペースの差異をスキップしない)" #: kdiff3.cpp:540 msgid "Go to Previous Delta" msgstr "前の異なる部分に移動" #: kdiff3.cpp:540 msgid "" "Prev\n" "Delta" msgstr "" "前の\n" "異なる部分" #: kdiff3.cpp:542 msgid "Go to Next Delta" msgstr "次の異なる部分に移動" #: kdiff3.cpp:542 msgid "" "Next\n" "Delta" msgstr "" "次の\n" "異なる部分" #: kdiff3.cpp:544 msgid "Go to Previous Conflict" msgstr "前の衝突に移動" #: kdiff3.cpp:544 msgid "" "Prev\n" "Conflict" msgstr "" "前の\n" "衝突" #: kdiff3.cpp:546 msgid "Go to Next Conflict" msgstr "次の衝突に移動" #: kdiff3.cpp:546 msgid "" "Next\n" "Conflict" msgstr "" "次の\n" "衝突" #: kdiff3.cpp:548 msgid "Go to Previous Unsolved Conflict" msgstr "前の未解決の衝突に移動" #: kdiff3.cpp:548 msgid "" "Prev\n" "Unsolved" msgstr "" "前の\n" "未解決" #: kdiff3.cpp:550 msgid "Go to Next Unsolved Conflict" msgstr "次の未解決の衝突に移動" #: kdiff3.cpp:550 msgid "" "Next\n" "Unsolved" msgstr "" "次の\n" "未解決" #: kdiff3.cpp:552 msgid "Select Line(s) From A" msgstr "A からの選択行" #: kdiff3.cpp:552 msgid "" "Choose\n" "A" msgstr "" "選択\n" "A" #: kdiff3.cpp:553 msgid "Select Line(s) From B" msgstr "B からの選択行" #: kdiff3.cpp:553 msgid "" "Choose\n" "B" msgstr "" "選択\n" "B" #: kdiff3.cpp:554 msgid "Select Line(s) From C" msgstr "C からの選択行" #: kdiff3.cpp:554 msgid "" "Choose\n" "C" msgstr "" "選択\n" "C" #: kdiff3.cpp:555 msgid "Automatically Go to Next Unsolved Conflict After Source Selection" msgstr "ソース選択後に自動的に次の未解決の衝突に移動" #: kdiff3.cpp:555 msgid "" "Auto\n" "Next" msgstr "自動" #: kdiff3.cpp:557 msgid "Show Space && Tabulator Characters for Differences" msgstr "スペースとタブ文字を表示" #: kdiff3.cpp:557 msgid "" "White\n" "Characters" msgstr "" "ホワイト\n" "スペース文字" #: kdiff3.cpp:558 msgid "Show White Space" msgstr "ホワイトスペースを表示" #: kdiff3.cpp:558 msgid "" "White\n" "Deltas" msgstr "" "ホワイト\n" "スペース" #: kdiff3.cpp:560 msgid "Show Line Numbers" msgstr "行番号を表示" #: kdiff3.cpp:560 msgid "" "Line\n" "Numbers" msgstr "行番号" #: kdiff3.cpp:561 msgid "Choose A Everywhere" msgstr "常に A を選択" #: kdiff3.cpp:562 msgid "Choose B Everywhere" msgstr "常に B を選択" #: kdiff3.cpp:563 msgid "Choose C Everywhere" msgstr "常に C を選択" #: kdiff3.cpp:564 msgid "Choose A for All Unsolved Conflicts" msgstr "未解決の衝突について常に A を選択" #: kdiff3.cpp:565 msgid "Choose B for All Unsolved Conflicts" msgstr "未解決の衝突について常に B を選択" #: kdiff3.cpp:566 msgid "Choose C for All Unsolved Conflicts" msgstr "未解決の衝突について常に C を選択" #: kdiff3.cpp:567 msgid "Choose A for All Unsolved Whitespace Conflicts" msgstr "未解決のホワイトスペースの衝突について常に A を選択" #: kdiff3.cpp:568 msgid "Choose B for All Unsolved Whitespace Conflicts" msgstr "未解決のホワイトスペースの衝突について常に B を選択" #: kdiff3.cpp:569 msgid "Choose C for All Unsolved Whitespace Conflicts" msgstr "未解決のホワイトスペースの衝突について常に C を選択" #: kdiff3.cpp:570 msgid "Automatically Solve Simple Conflicts" msgstr "単純な衝突を自動的に解決" #: kdiff3.cpp:571 msgid "Set Deltas to Conflicts" msgstr "異なる部分を衝突として設定" #: kdiff3.cpp:572 msgid "Run Regular Expression Auto Merge" msgstr "正規表現による自動マージを実行" #: kdiff3.cpp:573 msgid "Automatically Solve History Conflicts" msgstr "履歴の衝突を自動的に解決" #: kdiff3.cpp:574 msgid "Split Diff At Selection" msgstr "選択した差異を分離" #: kdiff3.cpp:575 msgid "Join Selected Diffs" msgstr "選択した差異を結合" #: kdiff3.cpp:577 msgid "Show Window A" msgstr "ウィンドウ A を表示" #: kdiff3.cpp:578 msgid "Show Window B" msgstr "ウィンドウ B を表示" #: kdiff3.cpp:579 msgid "Show Window C" msgstr "ウィンドウ C を表示" #: kdiff3.cpp:580 kdiff3.cpp:591 msgid "Focus Next Window" msgstr "次のウィンドウにフォーカス" #: kdiff3.cpp:582 msgid "Normal Overview" msgstr "すべて比較 (標準)" #: kdiff3.cpp:583 msgid "A vs. B Overview" msgstr "A と B を比較" #: kdiff3.cpp:584 msgid "A vs. C Overview" msgstr "A と C を比較" #: kdiff3.cpp:585 msgid "B vs. C Overview" msgstr "B と C を比較" #: kdiff3.cpp:586 msgid "Word Wrap Diff Windows" msgstr "Diff ウィンドウで行を折り返す" #: kdiff3.cpp:587 msgid "Add Manual Diff Alignment" msgstr "" #: kdiff3.cpp:588 msgid "Clear All Manual Diff Alignments" msgstr "" #: kdiff3.cpp:593 msgid "Focus Prev Window" msgstr "前のウィンドウにフォーカス" #: kdiff3.cpp:594 msgid "Toggle Split Orientation" msgstr "分割方向を切り替え" #: kdiff3.cpp:596 msgid "Dir && Text Split Screen View" msgstr "ディレクトリ/テキスト分割画面表示" #: kdiff3.cpp:598 msgid "Toggle Between Dir && Text View" msgstr "ディレクトリ表示/テキスト表示を切り替え" #: kdiff3.cpp:654 pdiff.cpp:1812 msgid "The merge result hasn't been saved." msgstr "マージ結果は保存されていません。" #: kdiff3.cpp:656 msgid "Save && Quit" msgstr "保存/終了" #: kdiff3.cpp:657 msgid "Quit Without Saving" msgstr "保存せずに終了" #: kdiff3.cpp:665 pdiff.cpp:1823 msgid "Saving the merge result failed." msgstr "マージ結果の保存に失敗しました。" #: kdiff3.cpp:676 pdiff.cpp:1078 msgid "" "You are currently doing a directory merge. Are you sure, you want to abort?" msgstr "ディレクトリマージを実行中です。本当に中止しますか?" #: kdiff3.cpp:701 msgid "Saving file..." msgstr "ファイルを保存中..." #: kdiff3.cpp:718 msgid "Saving file with a new filename..." msgstr "名前を付けてファイルを保存中..." #: kdiff3.cpp:781 #, fuzzy #| msgid "Printing completed." msgid "Printing not implemented." msgstr "印刷完了。" #: kdiff3.cpp:815 msgid "Printing..." msgstr "印刷中..." #: kdiff3.cpp:956 msgid "Selection" msgstr "選択" #: kdiff3.cpp:982 msgid "Printing completed." msgstr "印刷完了。" #: kdiff3.cpp:986 msgid "Printing aborted." msgstr "印刷中止。" #: kdiff3.cpp:993 msgid "Exiting..." msgstr "終了中..." #: kdiff3.cpp:1006 msgid "Toggling toolbar..." msgstr "ツールバーの表示/非表示を切り替え中..." #: kdiff3.cpp:1027 msgid "Toggle the statusbar..." msgstr "ステータスバーの表示/非表示を切り替え中..." #: smalldialogs.cpp:58 msgid "A (Base):" msgstr "A (ベース):" #: smalldialogs.cpp:65 smalldialogs.cpp:82 smalldialogs.cpp:99 #: smalldialogs.cpp:142 msgid "File..." msgstr "ファイル..." #: smalldialogs.cpp:67 smalldialogs.cpp:84 smalldialogs.cpp:101 #: smalldialogs.cpp:144 msgid "Dir..." msgstr "ディレクトリ..." #: smalldialogs.cpp:93 msgid "C (Optional):" msgstr "C (オプション):" #: smalldialogs.cpp:116 msgid "Swap/Copy Names ..." msgstr "名前を交換/コピー..." #: smalldialogs.cpp:121 smalldialogs.cpp:122 smalldialogs.cpp:123 #, kde-format msgid "Swap %1<->%2" msgstr "交換 %1<->%2" #: smalldialogs.cpp:124 smalldialogs.cpp:125 smalldialogs.cpp:126 #, kde-format msgid "Copy %1->Output" msgstr "コピー %1->出力" #: smalldialogs.cpp:127 smalldialogs.cpp:128 smalldialogs.cpp:129 #, kde-format msgid "Swap %1<->Output" msgstr "交換 %1<->出力" #: smalldialogs.cpp:136 msgid "Output (optional):" msgstr "出力 (オプション):" #: smalldialogs.cpp:168 msgid "Configure..." msgstr "設定..." #: smalldialogs.cpp:174 msgid "&OK" msgstr "&OK" #: smalldialogs.cpp:362 msgid "Search text:" msgstr "検索テキスト:" #: smalldialogs.cpp:369 msgid "Case sensitive" msgstr "大文字と小文字を区別する" #: smalldialogs.cpp:372 msgid "Search A" msgstr "A を検索" #: smalldialogs.cpp:377 msgid "Search B" msgstr "B を検索" #: smalldialogs.cpp:382 msgid "Search C" msgstr "C を検索" #: smalldialogs.cpp:387 msgid "Search output" msgstr "出力を検索" #: smalldialogs.cpp:392 msgid "&Search" msgstr "検索(&S)" #: smalldialogs.cpp:409 msgid "Regular Expression Tester" msgstr "正規表現テスター" #: smalldialogs.cpp:414 optiondialog.cpp:936 msgid "Auto merge regular expression:" msgstr "自動マージの正規表現:" #: smalldialogs.cpp:422 msgid "Example auto merge line:" msgstr "自動マージのテスト行:" #: smalldialogs.cpp:424 msgid "To test auto merge, copy a line as used in your files." msgstr "自動マージをテストするために、既存のファイルから 1 行コピーします。" #: smalldialogs.cpp:430 smalldialogs.cpp:458 smalldialogs.cpp:494 msgid "Match result:" msgstr "マッチ結果:" #: smalldialogs.cpp:441 optiondialog.cpp:962 msgid "History start regular expression:" msgstr "履歴開始の正規表現:" #: smalldialogs.cpp:449 msgid "Example history start line (with leading comment):" msgstr "履歴開始行の例 (先行するコメントを含めて):" #: smalldialogs.cpp:451 msgid "" "Copy a history start line as used in your files,\n" "including the leading comment." msgstr "履歴の開始行を先行するコメントを含めて既存のファイルからコピーします。" #: smalldialogs.cpp:469 optiondialog.cpp:972 msgid "History entry start regular expression:" msgstr "履歴エントリ開始の正規表現:" #: smalldialogs.cpp:477 msgid "History sort key order:" msgstr "履歴ソートキーの順序:" #: smalldialogs.cpp:485 msgid "Example history entry start line (without leading comment):" msgstr "履歴エントリ開始行の例 (先行するコメントを含めずに):" #: smalldialogs.cpp:487 msgid "" "Copy a history entry start line as used in your files,\n" "but omit the leading comment." msgstr "" "履歴エントリの開始行を先行するコメントを含めずに既存のファイルからコピーしま" "す。" #: smalldialogs.cpp:501 msgid "Sort key result:" msgstr "ソートキーの結果:" #: smalldialogs.cpp:508 msgid "OK" msgstr "OK" #: smalldialogs.cpp:552 smalldialogs.cpp:562 smalldialogs.cpp:583 msgid "Match success." msgstr "マッチ成功" #: smalldialogs.cpp:556 smalldialogs.cpp:566 smalldialogs.cpp:589 msgid "Match failed." msgstr "マッチ失敗" #: smalldialogs.cpp:574 msgid "Opening and closing parentheses do not match in regular expression." msgstr "正規表現中の左右の括弧が一致していません。" #: optiondialog.cpp:367 msgid "Unicode, 8 bit" msgstr "Unicode, 8 ビット" #: optiondialog.cpp:368 msgid "Unicode" msgstr "Unicode" #: optiondialog.cpp:369 msgid "Latin1" msgstr "Latin1" #: optiondialog.cpp:388 msgid "Change this if non-ASCII characters are not displayed correctly." msgstr "ASCII 以外の文字が適切に表示されなければ、これを変更してください。" #: optiondialog.cpp:465 msgid "Configure" msgstr "設定" #: optiondialog.cpp:531 msgid "Font" msgstr "フォント" #: optiondialog.cpp:532 msgid "Editor & Diff Output Font" msgstr "エディタ/Diff 出力のフォント" #: optiondialog.cpp:556 msgid "Italic font for deltas" msgstr "異なる部分をイタリック体で表示する" #: optiondialog.cpp:559 msgid "" "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing." msgstr "" "異なる部分をフォントのイタリック体で表示します。\n" "フォントにイタリック体がない場合は、通常のフォントで表示します。" #: optiondialog.cpp:568 msgid "Color" msgstr "色" #: optiondialog.cpp:569 msgid "Colors Settings" msgstr "色の設定" #: optiondialog.cpp:588 msgid "Editor and Diff Views:" msgstr "エディタ/Diff ビュー:" #: optiondialog.cpp:596 msgid "Foreground color:" msgstr "前景色:" #: optiondialog.cpp:603 msgid "Background color:" msgstr "背景色:" #: optiondialog.cpp:612 msgid "Diff background color:" msgstr "Diff 背景色:" #: optiondialog.cpp:620 msgid "Color A:" msgstr "色 (A):" #: optiondialog.cpp:628 msgid "Color B:" msgstr "色 (B):" #: optiondialog.cpp:636 msgid "Color C:" msgstr "色 (C):" #: optiondialog.cpp:643 msgid "Conflict color:" msgstr "色 (衝突):" #: optiondialog.cpp:651 msgid "Current range background color:" msgstr "現在の範囲の背景色:" #: optiondialog.cpp:659 msgid "Current range diff background color:" msgstr "現在の範囲の diff 背景色:" #: optiondialog.cpp:666 msgid "Color for manually aligned difference ranges:" msgstr "" #: optiondialog.cpp:672 msgid "Directory Comparison View:" msgstr "ディレクトリ比較ビュー:" #: optiondialog.cpp:678 msgid "Newest file color:" msgstr "最も新しいファイルの色:" #: optiondialog.cpp:682 msgid "" "Changing this color will only be effective when starting the next directory " "comparison." msgstr "色の変更は次回ディレクトリ比較を開始したときに有効になります。" #: optiondialog.cpp:687 msgid "Oldest file color:" msgstr "最も古いファイルの色:" #: optiondialog.cpp:695 msgid "Middle age file color:" msgstr "中間のファイルの色:" #: optiondialog.cpp:703 msgid "Color for missing files:" msgstr "欠落したファイルの色:" #: optiondialog.cpp:717 msgid "Editor" msgstr "エディタ" #: optiondialog.cpp:718 msgid "Editor Behavior" msgstr "エディタの挙動" #: optiondialog.cpp:732 msgid "Tab inserts spaces" msgstr "タブでスペースを挿入する" #: optiondialog.cpp:735 msgid "" "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted." msgstr "" "オン: タブを押すと適切な数のスペースが挿入されます。\n" "オフ: タブ文字が挿入されます。" #: optiondialog.cpp:741 msgid "Tab size:" msgstr "タブサイズ:" #: optiondialog.cpp:747 msgid "Auto indentation" msgstr "自動字下げ" #: optiondialog.cpp:750 msgid "On: The indentation of the previous line is used for a new line.\n" msgstr "オン: 新しい改行に前の行の字下げを使います。\n" #: optiondialog.cpp:754 msgid "Auto copy selection" msgstr "選択を自動的にコピーする" #: optiondialog.cpp:757 msgid "" "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." msgstr "" "オン: すべての選択は直ちにクリップボードに格納されます。\n" "オフ: Ctrl+C などで明示的にコピーする必要があります。" #: optiondialog.cpp:768 #, fuzzy #| msgid "&Window" msgid "Dos/Windows" msgstr "ウィンドウ(&W)" #: optiondialog.cpp:769 #, fuzzy #| msgid "Auto Select" msgid "Autodetect" msgstr "自動選択" #: optiondialog.cpp:772 msgid "" "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" msgstr "" "編集したファイルの保存時に使用する改行コードを設定します。\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A" #: optiondialog.cpp:784 msgid "Diff" msgstr "Diff" #: optiondialog.cpp:785 msgid "Diff Settings" msgstr "Diff の設定" # 「...を無視する」オプションの補足説明として括弧内に表示される #: optiondialog.cpp:809 msgid "Treat as white space." msgstr "ホワイトスペースとして扱う" #: optiondialog.cpp:811 msgid "Ignore numbers" msgstr "数字を無視する" #: optiondialog.cpp:814 msgid "" "Ignore number characters during line matching phase. (Similar to Ignore " "white space.)\n" "Might help to compare files with numeric data." msgstr "" "行マッチ時に数字の違いを無視します。(ホワイトスペースの違いを無視に類似)\n" "数字データファイルを比較する際に有効です。" #: optiondialog.cpp:819 msgid "Ignore C/C++ comments" msgstr "C/C++ コメントを無視する" #: optiondialog.cpp:821 msgid "Treat C/C++ comments like white space." msgstr "C/C++ コメントをホワイトスペースとして扱います。" #: optiondialog.cpp:825 msgid "Ignore case" msgstr "大文字と小文字の違いを無視する" #: optiondialog.cpp:828 msgid "Treat case differences like white space changes. ('a'<=>'A')" msgstr "" "大文字と小文字の違いをホワイトスペースの違いと同様に扱います。('a'<=>'A')" #: optiondialog.cpp:832 msgid "Preprocessor command:" msgstr "プリプロセッサコマンド:" #: optiondialog.cpp:836 msgid "User defined pre-processing. (See the docs for details.)" msgstr "ユーザ定義プリプロセッサ (詳細についてはドキュメントを参照)" #: optiondialog.cpp:839 msgid "Line-matching preprocessor command:" msgstr "行マッチプリプロセッサコマンド:" #: optiondialog.cpp:843 msgid "" "This pre-processor is only used during line matching.\n" "(See the docs for details.)" msgstr "" "このプリプロセッサは行マッチ時にだけ使われます。\n" "(詳細についてはドキュメントを参照)" #: optiondialog.cpp:846 msgid "Try hard (slower)" msgstr "より小さい差分を見つける (遅い)" #: optiondialog.cpp:849 msgid "" "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower." msgstr "" "外部 diff コマンドについて --minimal オプションを有効にしま" "す。\n" "大きなファイルでは処理速度が非常に遅くなります。" #: optiondialog.cpp:854 msgid "Align B and C for 3 input files" msgstr "" #: optiondialog.cpp:857 msgid "" "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)" msgstr "" #: optiondialog.cpp:870 msgid "Merge Settings" msgstr "マージの設定" #: optiondialog.cpp:885 msgid "Auto advance delay (ms):" msgstr "自動前進の遅延 (ミリ秒):" #: optiondialog.cpp:890 msgid "" "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms" msgstr "" "自動前進モードでは、指定した時間 (0-2000 ミリ秒) ごとに自動的に次の衝突に移動" "します。" #: optiondialog.cpp:895 msgid "Show info dialogs" msgstr "情報ダイアログを表示" #: optiondialog.cpp:897 msgid "Show a dialog with information about the number of conflicts." msgstr "" #: optiondialog.cpp:900 msgid "White space 2-file merge default:" msgstr "ホワイトスペース 2 ファイルマージのデフォルト:" #: optiondialog.cpp:904 optiondialog.cpp:917 msgid "Manual Choice" msgstr "手作業で選択" #: optiondialog.cpp:908 optiondialog.cpp:922 msgid "" "Allow the merge algorithm to automatically select an input for white-space-" "only changes." msgstr "" "差異がホワイトスペースのみの場合にマージアルゴリズムが自動的に入力を選択する" "ようにできます。" #: optiondialog.cpp:913 msgid "White space 3-file merge default:" msgstr "ホワイトスペース 3 ファイルマージのデフォルト:" #: optiondialog.cpp:927 msgid "Automatic Merge Regular Expression" msgstr "自動マージの正規表現" #: optiondialog.cpp:940 msgid "" "Regular expression for lines where KDiff3 should automatically choose one " "source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen." msgstr "" "KDiff3 に自動的にソースを選択させる行を正規表現で指定します。\n" "正規表現にマッチした行に衝突がある場合、\n" "C があれば C が、C がなければ B が選択されます。" #: optiondialog.cpp:946 msgid "Run regular expression auto merge on merge start" msgstr "マージ開始時に正規表現による自動マージを実行する" #: optiondialog.cpp:948 msgid "" "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n" msgstr "マージ開始時に正規表現による自動マージを実行します。\n" #: optiondialog.cpp:953 msgid "Version Control History Merging" msgstr "バージョンコントロール履歴マージ" #: optiondialog.cpp:966 msgid "" "Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\"" msgstr "" "バージョンコントロール履歴エントリの開始を正規表現で指定します。\n" "通常、開始行には \"$Log$\" キーワードが含まれています。\n" "標準設定の値: \".*\\$Log.*\\$.*\"" #: optiondialog.cpp:984 msgid "" "A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading " "comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history " "entries.\n" "See the documentation for details." msgstr "" "バージョンコントロール履歴のエントリは複数の行から成ります。\n" "その最初の行 (先行するコメントを除く) を検出する正規表現を指定します。\n" "ソートキーをグループ化するには括弧を使います。\n" "このフィールドを空のままにしておくと、KDiff3 は空行をエントリの区切りと見なし" "ます。\n" "詳細についてはドキュメントを参照してください。" #: optiondialog.cpp:992 msgid "History merge sorting" msgstr "履歴マージのソート" #: optiondialog.cpp:994 msgid "Sort version control history by a key." msgstr "バージョンコントロール履歴をキーでソートします。" #: optiondialog.cpp:1004 msgid "History entry start sort key order:" msgstr "" #: optiondialog.cpp:1008 msgid "" "Each pair of parentheses used in the regular expression for the history " "start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details." msgstr "" #: optiondialog.cpp:1019 msgid "Merge version control history on merge start" msgstr "マージ開始時にバージョン履歴をマージする" #: optiondialog.cpp:1021 msgid "Run version control history automerge on merge start." msgstr "マージ開始時に自動的にバージョン履歴をマージします。" #: optiondialog.cpp:1025 msgid "Max number of history entries:" msgstr "履歴の最大エントリ数:" #: optiondialog.cpp:1028 msgid "Cut off after specified number. Use -1 for infinite number of entries." msgstr "" "指定した数以降のエントリは削除されます。数を制限しない場合は -1 に設定してく" "ださい。" #: optiondialog.cpp:1032 msgid "Test your regular expressions" msgstr "正規表現をテスト" #: optiondialog.cpp:1037 msgid "Irrelevant merge command:" msgstr "" #: optiondialog.cpp:1041 msgid "" "If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3" msgstr "" #: optiondialog.cpp:1047 msgid "Auto save and quit on merge without conflicts" msgstr "衝突がなければマージ後に自動的に保存して終了する" #: optiondialog.cpp:1050 msgid "" "If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and " "quit.\n" "(Similar to command line option \"--auto\".)" msgstr "" "ファイルマージのために KDiff3 がコマンドラインから起動された場合、\n" "すべての衝突が自動解決できるときは、自動的に保存して終了します。\n" "(コマンドラインオプションの --auto に類似)" #: optiondialog.cpp:1061 optiondialog.cpp:1062 msgid "Directory" msgstr "ディレクトリ" #: optiondialog.cpp:1075 msgid "Recursive directories" msgstr "ディレクトリを再帰的に解析する" #: optiondialog.cpp:1077 msgid "Whether to analyze subdirectories or not." msgstr "サブディレクトリを解析するかどうかを指定します。" #: optiondialog.cpp:1079 msgid "File pattern(s):" msgstr "ファイルパターン:" #: optiondialog.cpp:1084 msgid "" "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "解析するファイルのパターン。\n" "ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n" "複数のパターンを指定する場合はセミコロン (;) で区切ります。" #: optiondialog.cpp:1090 msgid "File-anti-pattern(s):" msgstr "ファイル否定パターン:" #: optiondialog.cpp:1095 msgid "" "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "解析から除外するファイルのパターン。\n" "ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n" "複数のパターンを指定する場合はセミコロン (;) で区切ります。" #: optiondialog.cpp:1101 msgid "Dir-anti-pattern(s):" msgstr "ディレクトリ否定パターン:" #: optiondialog.cpp:1106 msgid "" "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" msgstr "" "解析から除外するディレクトリのパターン。\n" "ワイルドカード: アスタリスク (*) とクエスチョンマーク (?)\n" "複数のパターンを指定する場合はセミコロン (;) で区切ります。" #: optiondialog.cpp:1112 msgid "Use .cvsignore" msgstr ".cvsignore を使う" #: optiondialog.cpp:1115 msgid "" "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." msgstr "" "CVS で無視されるすべてについて否定パターンを拡張します。\n" "ローカルの .cvsignore ファイルによってディレクトリ固有に" "利用できます。" #: optiondialog.cpp:1120 msgid "Find hidden files and directories" msgstr "隠しファイル/ディレクトリを検索する" #: optiondialog.cpp:1123 msgid "Finds files and directories with the hidden attribute." msgstr "隠し属性を持つファイルとディレクトリを検索します。" #: optiondialog.cpp:1125 msgid "Finds files and directories starting with '.'." msgstr "ドット (.) で始まるファイルとディレクトリを検索します。" #: optiondialog.cpp:1129 msgid "Follow file links" msgstr "ファイルリンクを追跡する" #: optiondialog.cpp:1132 msgid "" "On: Compare the file the link points to.\n" "Off: Compare the links." msgstr "" "オン: リンク先のファイルを比較します。\n" "オフ: リンクを比較します。" #: optiondialog.cpp:1137 msgid "Follow directory links" msgstr "ディレクトリリンクを追跡" #: optiondialog.cpp:1140 msgid "" "On: Compare the directory the link points to.\n" "Off: Compare the links." msgstr "" "オン: リンク先のディレクトリを比較します。\n" "オフ: リンクを比較します。" #: optiondialog.cpp:1156 msgid "Case sensitive filename comparison" msgstr "大文字と小文字を区別してファイル名を比較する" #: optiondialog.cpp:1159 msgid "" "The directory comparison will compare files or directories when their names " "match.\n" "Set this option if the case of the names must match. (Default for Windows is " "off, otherwise on.)" msgstr "" "ディレクトリ比較は名前が一致するファイルおよびディレクトリを比較します。\n" "名前の大文字/小文字も一致しなければならない場合は、このオプションを有効にして" "ください。\n" "(Windows の標準はオフ、その他ではオンです)" #: optiondialog.cpp:1163 msgid "File Comparison Mode" msgstr "ファイル比較モード" #: optiondialog.cpp:1169 msgid "Binary comparison" msgstr "バイナリ比較" #: optiondialog.cpp:1170 msgid "Binary comparison of each file. (Default)" msgstr "それぞれのファイルをバイナリ比較します。(標準)" #: optiondialog.cpp:1173 msgid "Full analysis" msgstr "完全分析" #: optiondialog.cpp:1174 msgid "" "Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)" msgstr "" "完全な比較を実行し、統計情報を別のカラムに表示します。\n" "(バイナリ比較より遅く、バイナリファイルの場合は非常に時間がかかります)" #: optiondialog.cpp:1178 msgid "Trust the size and modification date (unsafe)" msgstr "サイズと更新日時を信用する (危険)" #: optiondialog.cpp:1179 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "Files with equal contents but different modification dates will appear as " "different.\n" "Useful for big directories or slow networks." msgstr "" "ファイルのサイズと更新日時が等しければ、同一のファイルと見なします。\n" "内容が同じで更新日時が異なるファイルは、異なるファイルとして示されます。\n" "大きなディレクトリや遅いネットワークで有用です。" #: optiondialog.cpp:1184 msgid "" "Trust the size and date, but use binary comparison if date does not match " "(unsafe)" msgstr "サイズと更新日時を信用し、日時が異なる場合はバイナリ比較する (危険)" #: optiondialog.cpp:1185 msgid "" "Assume that files are equal if the modification date and file length are " "equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks." msgstr "" "ファイルのサイズと更新日時が等しければ、同一のファイルと見なします。\n" "サイズが同じで日時が異なる場合は、バイナリ比較を行います。\n" "大きなディレクトリや遅いネットワークで有用です。" #: optiondialog.cpp:1190 msgid "Trust the size (unsafe)" msgstr "サイズを信用する (危険)" #: optiondialog.cpp:1191 msgid "" "Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during " "download." msgstr "" "ファイルのサイズが等しければ、同一のファイルと見なします。\n" "大きなディレクトリやダウンロード中に更新日時が変わってしまうような遅いネット" "ワークで有用です。" #: optiondialog.cpp:1199 msgid "Synchronize directories" msgstr "ディレクトリを同期する" #: optiondialog.cpp:1202 msgid "" "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." msgstr "" "両方のディレクトリが同じになるようにファイルを配置します。\n" "方向を指定せずに二つのディレクトリをマージする場合にのみ機能します。" #: optiondialog.cpp:1208 msgid "White space differences considered equal" msgstr "ホワイトスペースの違いを無視する" #: optiondialog.cpp:1211 msgid "" "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." msgstr "" "ファイルの差異がホワイトスペースだけの場合は等しいものと見なします。\n" "このオプションは完全分析が選択されているときにのみアクティブになります。" #: optiondialog.cpp:1217 msgid "Copy newer instead of merging (unsafe)" msgstr "マージではなく、より新しいものをコピー (危険)" #: optiondialog.cpp:1220 msgid "" "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." msgstr "" "内容を調べずに単により新しいファイルを取ります。\n" "(何をしているのか分かっている場合にのみ使用してください)\n" "二つのディレクトリを比較しているときのみ有効です。" #: optiondialog.cpp:1225 msgid "Backup files (.orig)" msgstr "バックアップファイル (.orig) を残す" #: optiondialog.cpp:1228 msgid "" "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted." msgstr "" "ファイルを上書き保存する際に、.orig 拡張子を付けて元の" "ファイルを残します。" #: optiondialog.cpp:1301 optiondialog.cpp:1302 msgid "Regional Settings" msgstr "言語の設定" #: optiondialog.cpp:1402 msgid "Language (restart required)" msgstr "言語 (再スタートが必要)" #: optiondialog.cpp:1445 msgid "" "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3." msgstr "" "GUI の言語を選択するか自動を選択します。\n" "言語の変更を適用するには、KDiff3 を再スタートする必要があります。" #: optiondialog.cpp:1463 msgid "Use the same encoding for everything:" msgstr "すべてに同じエンコーディングを使う:" #: optiondialog.cpp:1466 msgid "" "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." msgstr "" "このオプションを有効にすると、最初を変更するだけですべてのエンコーディングを" "同時に変更できます。\n" "それぞれに個別に設定する必要がある場合は、無効にしてください。" #: optiondialog.cpp:1471 msgid "Note: Local Encoding is " msgstr "現在のロカールエンコーディング: " #: optiondialog.cpp:1475 msgid "File Encoding for A:" msgstr "A のファイルのエンコーディング:" #: optiondialog.cpp:1481 msgid "" "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as " "fallback.\n" "(Unicode detection depends on the first bytes of a file.)" msgstr "" "これを有効にすると、Unicode (UTF-16 または UTF-8) を自動検出します。\n" "ファイルのエンコーディングが Unicode でない場合は、選択されたエンコーディング" "を使います。\n" "(Unicode 自動検出はファイルの最初の数バイトを調べます)" #: optiondialog.cpp:1485 optiondialog.cpp:1494 optiondialog.cpp:1503 msgid "Auto Detect Unicode" msgstr "Unicode 自動検出" #: optiondialog.cpp:1490 msgid "File Encoding for B:" msgstr "B のファイルのエンコーディング:" #: optiondialog.cpp:1499 msgid "File Encoding for C:" msgstr "C のファイルのエンコーディング:" #: optiondialog.cpp:1508 msgid "File Encoding for Merge Output and Saving:" msgstr "マージ出力と保存時のエンコーディング:" #: optiondialog.cpp:1512 msgid "Auto Select" msgstr "自動選択" #: optiondialog.cpp:1515 msgid "" "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for " "saving." msgstr "" "これを有効にすると、入力ファイルのエンコーディングが使われます。\n" "不確かな場合はダイアログが表示され、保存時のエンコーディングを選択するよう促" "されます。" #: optiondialog.cpp:1519 msgid "File Encoding for Preprocessor Files:" msgstr "プリプロセッサファイルのエンコーディング:" #: optiondialog.cpp:1530 msgid "Right To Left Language" msgstr "右から左に読む言語" #: optiondialog.cpp:1533 msgid "" "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly." msgstr "" "右から左に読む言語で有効にします。\n" "この設定によってビューアとエディタの表示が変わります。" #: optiondialog.cpp:1548 msgid "Integration" msgstr "統合" #: optiondialog.cpp:1549 msgid "Integration Settings" msgstr "統合の設定" #: optiondialog.cpp:1563 msgid "Command line options to ignore:" msgstr "無視するコマンドラインオプション:" #: optiondialog.cpp:1568 msgid "" "List of command line options that should be ignored when KDiff3 is used by " "other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." msgstr "" "KDiff3 が他のツールによって使用されるときに無視すべきコマンドラインオプション" "のリストです。\n" "複数のオプションはセミコロン (;) で区切って指定してください。\n" "これによって \"不明なオプション\" エラーを抑制できます。" #: optiondialog.cpp:1575 msgid "Quit also via Escape key" msgstr "" #: optiondialog.cpp:1578 msgid "" "Fast method to exit.\n" "For those who are used to using the Escape key." msgstr "" #: optiondialog.cpp:1583 msgid "Integrate with ClearCase" msgstr "" #: optiondialog.cpp:1586 msgid "" "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)" msgstr "" #: optiondialog.cpp:1592 msgid "Remove ClearCase Integration" msgstr "" #: optiondialog.cpp:1595 msgid "" "Restore the old \"map\" file from before doing the ClearCase integration." msgstr "" #: optiondialog.cpp:1680 msgid "Incompatible Font" msgstr "非互換なフォント" #: optiondialog.cpp:1681 msgid "Continue at Own Risk" msgstr "自己責任で続行" #: optiondialog.cpp:1682 msgid "Select Another Font" msgstr "他のフォントを選択" #: optiondialog.cpp:1717 msgid "This resets all options. Not only those of the current topic." msgstr "" "現在のトピックだけでなく、すべてのオプションを標準設定にリセットします。" #: pdiff.cpp:260 msgid "PreprocessorCmd: " msgstr "プリプロセッサコマンド: " #: pdiff.cpp:265 msgid "The following option(s) you selected might change data:\n" msgstr "選択された以下のオプションはデータを変えてしまう可能性があります:\n" #: pdiff.cpp:266 msgid "" "\n" "Most likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?" msgstr "" "\n" "通常これはマージ中には望ましくないと考えられます。\n" "これらのオプションを無効にしますか?それともこのままマージを続行しますか?" #: pdiff.cpp:268 msgid "Option Unsafe for Merging" msgstr "危険なマージオプション" #: pdiff.cpp:269 msgid "Use These Options During Merge" msgstr "このまま続行" #: pdiff.cpp:270 msgid "Disable Unsafe Options" msgstr "危険なオプションを無効にする" #: pdiff.cpp:300 msgid "Loading A" msgstr "A を読み込み中" #: pdiff.cpp:304 msgid "Loading B" msgstr "B を読み込み中" #: pdiff.cpp:321 pdiff.cpp:347 msgid "Diff: A <-> B" msgstr "Diff: A <-> B" #: pdiff.cpp:327 pdiff.cpp:372 msgid "Linediff: A <-> B" msgstr "Linediff: A <-> B" #: pdiff.cpp:338 msgid "Loading C" msgstr "C を読み込み中" #: pdiff.cpp:350 msgid "Diff: B <-> C" msgstr "Diff: B <-> C" #: pdiff.cpp:353 msgid "Diff: A <-> C" msgstr "Diff: A <-> C" #: pdiff.cpp:375 msgid "Linediff: B <-> C" msgstr "Linediff: B <-> C" #: pdiff.cpp:378 msgid "Linediff: A <-> C" msgstr "Linediff: A <-> C" #: pdiff.cpp:534 msgid "All input files contain the same text, but are not binary equal." msgstr "" "すべての入力ファイルのテキストは同じですが、バイナリ的に等しくありません。" #: pdiff.cpp:537 pdiff.cpp:539 pdiff.cpp:541 #, kde-format msgid "Files %1 and %2 have equal text, but are not binary equal. \n" msgstr "" "ファイル %1 と %2 のテキストは同じですが、バイナリ的に等しくありません。\n" #: pdiff.cpp:551 msgid "" "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk." msgstr "" "入力ファイルのいくつかはテキストファイルではないようです。\n" "KDiff3 のマージはバイナリデータでの使用を想定していません。\n" "自己責任で続行してください。" #: pdiff.cpp:566 #, kde-format msgid "" "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1." msgstr "" #: pdiff.cpp:1080 msgid "Abort" msgstr "中止" #: pdiff.cpp:1087 pdiff.cpp:1175 msgid "Opening files..." msgstr "ファイルを開いています..." #: pdiff.cpp:1152 pdiff.cpp:1223 msgid "File open error" msgstr "ファイルのオープンエラー" #: pdiff.cpp:1255 msgid "Cutting selection..." msgstr "選択範囲を切り取り..." #: pdiff.cpp:1276 msgid "Copying selection to clipboard..." msgstr "選択範囲をクリップボードにコピー..." #: pdiff.cpp:1292 msgid "Inserting clipboard contents..." msgstr "クリップボードの内容を挿入..." #: pdiff.cpp:1814 msgid "Save && Continue" msgstr "保存/続行" #: pdiff.cpp:1815 msgid "Continue Without Saving" msgstr "保存せずに続行" #: pdiff.cpp:2018 msgid "Search complete." msgstr "検索が完了しました。" #: pdiff.cpp:2018 msgid "Search Complete" msgstr "検索完了" #: pdiff.cpp:2252 msgid "Nothing is selected in either diff input window." msgstr "" #: pdiff.cpp:2252 #, fuzzy msgid "Error while adding manual diff range" msgstr "ディレクトリ作成中にエラー" #: kdiff3_shell.cpp:76 #, fuzzy #| msgid "" #| "Could not initialize the KDiff part.\n" #| "This usually happens due to an installation problem. Please read the " #| "README-file in the source package for details." msgid "" "Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. Please read the README-" "file in the source package for details." msgstr "" "KDiff part を初期化できませんでした。\n" "普通これはインストールの問題です。詳細についてはソースパッケージの README " "ファイルを参照してください。" #: rc.cpp:1 msgctxt "NAME OF TRANSLATORS" msgid "Your names" msgstr "SATOH Satoru,Yukiko Bando" #: rc.cpp:2 msgctxt "EMAIL OF TRANSLATORS" msgid "Your emails" msgstr "ss@kde.gr.jp,ybando@k6.dion.ne.jp" #. i18n: file: kdiff3_part.rc:4 #. i18n: ectx: Menu (movement) #: rc.cpp:5 msgid "&KDiff3" msgstr "KDiff3(&K)" #. i18n: file: kdiff3_part.rc:13 #. i18n: ectx: Menu (movement) #: rc.cpp:8 msgid "Configure KDiff3" msgstr "KDiff3 を設定" #. i18n: file: kdiff3_part.rc:16 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:11 msgid "KDiff3" msgstr "KDiff3" #. i18n: file: kdiff3_shell.rc:106 #. i18n: ectx: ToolBar (mainToolBar) #: rc.cpp:38 msgid "Main Toolbar" msgstr "メインツールバー" kdiff3-0.9.97/doc/0000755000175100001440000000000011626145654013077 5ustar joachimuserskdiff3-0.9.97/doc/en/0000755000175100001440000000000012010303403013451 5ustar joachimuserskdiff3-0.9.97/doc/en/navigation.html0000644000175100001440000001476511127227043016530 0ustar joachimusersNavigation And Editing
Navigation And Editing

Navigation And Editing

Much navigation will be done with the scroll bars and the mouse but you can also navigate with the keys. If you click into either window then you can use the cursor buttons left, right, up, down, page up, page down, home, end, ctrl-home, ctrl-end as you would in other programs. The overview-column next to the vertical scroll bar of the input files can also be used for navigating by clicking into it.

You can also use the wheel mouse to scroll up and down.

In the merge output editor you can also use the other keys for editing. You can toggle between insert and overwrite mode with the insert key. (Default is insert-mode.)

A left-mouse-button-click into any summary column will synchronise all windows to show the beginning of the same group of lines (as explained in section "Setting The Current Group And Synchronising Merge And Diff View Position").

The button bar also contains nine navigation buttons with which you can jump to the current/first/last difference, to the next/previous difference (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup), or to the next/previous unsolved conflict. Note that for KDiff3 a "conflict" that was not automatically solved at the start of the merge stays a "conflict" even if it is solved. Hence the necessity to distinguish "unsolved conflicts".

Auto-Advance

There also is a button "Automatically go to next unsolved conflict after source selection" (Auto-Advance). If you enable this, then, when one source is selected, KDiff3 will jump to and select the next unsolved conflict automatically. This can help when you always want to choose one source only. When you need both sources, or you want to edit after selecting, then you probably want to switch this off. Before proceeding to the next unsolved conflict KDiff3 shows you the effect of your choice for a short time. This delay is adjustable in the Diff- & Merge-Settings: You can specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint: Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts Ctrl-1/2/3 to select A/B/C for many conflicts.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/introduction.html0000644000175100001440000001330411127227043017076 0ustar joachimusersChapter 1. Introduction
Introduction

Chapter 1. Introduction

Yet Another Diff Frontend?

Several graphical diff tools exist. Why choose KDiff3? Let me say, why I wrote it.

KDiff3 started because I had to do a difficult merge. Merging is necessary when several people work on the same files in a project. A merge can be somewhat automated, when the merge-tool not only has the new modified files (called "branches"), but also the original file (called "base"). The merge tool will automatically choose any modification that was only done in one branch. When several contributors change the same lines, then the merge tool detects a conflict which must be solved manually.

The merge then was difficult because one contributor had changed many things and corrected the indentation in many places. Another contributor also had changed much text in the same file, which resulted in several merge conflicts.

The tool I used then, only showed the changed lines, but not what had changed within these lines. And there was no information about where only the indentation was changed. The merge was a little nightmare.

So this was the start. The first version could show differences within a line and showed white space differences. Later many other features were added to increase the usefulness.

For example if you want to compare some text quickly, then you can copy it to the clipboard and paste it into either diff window.

A feature that required a big effort was the directory comparison and merge facility, which turned the program almost into a full file browser.

I hope KDiff3 works for you too. Have fun!

Joachim Eibl (2003)



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/screenshot_merge.png0000644000175100001440000002427011626145653017547 0ustar joachimusersPNG  IHDRG@UPLTEo}y~|lL0*ےԘ8ہۃ܃܃ׄˆ¿ݽ؏jhf\WSP_HEED{Bt0j.00000000000012~0}3{4y4w4tKz9k2h0h*i$h$b%]%W%Oz  :o"=f"=f!>ep+=?/ 0.,;98DCBNKITSUUTUVUVWVW]]`cbdffhmnrvtwwuwywypwS^Gs g%yIDATxsǽ鲹HR$*ĎI*0`ʹijpQծQ$օ.HcT8_0`.RS+/B)Յ$ pT{wO\23}a3=o~랙%V \HגRw,y%]-H`j~ESyXՉ[5hy3 P$Kx< s ަlkQ P$]xQ&zB/K գڱz̻ŬON4ةO*.j*|u_}Z >WB=Z^v/Cl66,[2zgkVFcܹsũc~.+YRyWU,^\,ߪ=&M4׳A|5e]YԻ#ȅg5F%hj,Eǯ+Еѥ+W2hP}a 7K.t¹g,h;:%֜-N Kg vddTsʫK~+&h|\Z~z洪5k?>}z:F}{4hqj,+c3Z^|Ͽ^z_hj/$8{攪5/Fțk:Z" s"-Ts, hUIJ&h$Dx=w擏4[MZ]hqJ_JƯOΜx%^t麚0/Y"G:ti i/ghUX>F~hq؞^f)-8IXhUUE Vzim$/F3h$g4`&c' {zώz:fǖOJJ$u8ـj<αkP1Hꀢ׫WJ'2^OtSsY >"̧xWK*m: PɥM(,%]_ /KC P2t } @+Wx8^yyW;n3hgn̉ ӞpP+fWwfMB>ϽU׼׏o0_P}x$Lny{ݽ0U|5>^fD\ݞŦ1>(VAtV^>u|F?ﷷq(v4w/L/ܟ~`n#K;aWcn3=Ӧ'{\VUwӬذmv}B^n>N/{fY溺obm|Qݝ {7oSWfg濿l=?8f6rd^viw{nKȻiNXX>t l9֭>[E +Tʍ 3"^-ZPUb*wkG~|M9f9t3qH|v 6-X;{򇴇K}UU,%Է0?3{.JUnlYuޒ|5}3@UuZ{ i^Om0k6RWocorFﺦ{V|i-9w jbZ"UnlOeE;%T^ԃuWWտvy%ΫQ_m+omu{Z(o֎ؼrKXVaiSk-r|ƔQƆ}|oیWjKտ JvMf?b=DWkįirmssڳQ9[;b-qQU[ 0w~7*ajls#+_+q>S3!=?pK+67u@y5j}Chegzy^۰/3"֎ؼrK1u004oPR 3Sx̍[ӗ+,@vn 5zzgrqԻt߼b% ^S_St7˼!x^A+@+xb-(+m3P"į+("R݊R]O^s}(x~~рv6vK}o 庌I%ʏV׃\npJvcW6ɀfduve_K4OU<\WM^{=ܗe} {ir`?e6!n[6F߀xssU놇Ǐ[@ dj~Gu;Zu=/xr[6"3uX\zﭨ{Ϭ;:|v80N 4epW]oUjXuݿjy>;-^+-`5~gmw[KoKUgv" -Wjo+}z_5\f ] q٬JBX-%2.jz`}KNWJ;$Xw [w?tM,Y2$Du.?@|{kMϬ[wdx2lwa=2~p̈ٽGvڱso+yP y ۼ2$Zi?_vʁ7E Dn۹fǯHkX^랪ɋ/{Ǐ`[&]KK_ HzUnRQm)ie \iL5Gx_nbEIxlH};2F_zEuxi-/|0Y?nLfr$ |ݻ9Zqz !z`WJK]ֈ;ᵌB_;_e㆖T^ǭlV@lFsg8`uC%UH6$Zk>cW`r`絢_Vvٖ-Dk{zMdU*֣ǻvw y!.JMAֹ<ڪ"㴮8xF6# lukGGUf@xȗUN~N{=\1޲mw ǻ?Nm`$? ŗW( +WPyx]2b$]J?`g5 +NF+ԚNH/Xy)y-x.J`V].UJhZcuX2Ӭ%l@F'S}!r/}*T"O N=nP݋p>Q7@ N^\Wno^lH@эh8~EHg)g?Oo`{kY9*2WzSxt)V/2njTBs)^&W[H=d~U+QDǙ~xf4KݨS#""D* Qyn R?Y.,¾.۹9_NDǯNʫԋ1"OwѳCEpQՉ_@Ȯ?ƯBLL@BšuQD$ ~ >GM+2=p?8E@LL$6a+x?xB"Ek0bאF_9愼"IP[_C/~5f=t{D/-WG :|$E "ZZ@,Ŧk<x^=*oX^Q:Fe)6-equtJFeFe5-m.^1`*b3jz8k׀]7BمR^ʤ]y+|ɒFhX0e.'7SoH+diirZ(,qӿr,b-4闍;)YM^hy|3T3Ʃ HWƽ*C_U1~MK/_P#U _M QOɫbY]%xMKGyn_ׂ~pRΫ"M9^%$okbM<^`@4O^޼*@pC+~޼&dw3꼵ɿz31Tq ++ۉ` 갞:?ے}?|59& *RBfa|dxM W&M,Sy@.-)]sƫuL"9ƽUՅj%2He]8paY;^MwXuT[ѪX4V^d\%06~F4Ӟc0uQcq4kRL+N(#5vw+H|7|ԘWU{b9uqc*|^ao7ju ^*K~KL ut V Wx^xjF{wS9-^|gO*ɧ T(POի'Qis=rJ 6iJhۄY-tl%ɫdFԱFuWfMJ/~kx^ 5OOW_?H>rM~~xUtQbg'M࡝Hf= P LɊ( '!F]DqUq8>vnBΦ 4^}ժ2b7ff~W#Wg(kt\WQ#;Z&JOt.j,X6`Fw%5Up2ZZ(w+g4!kS%0 3?UE+JqD0nM` v"*{XǕWE&PgZ&+gyWwfE% jnဘW]Eb+w.lBvJ4oJ_tabxVA }Gc%;JDu,Sqtbܯbq.eCY& *Q\2VdA-a3)YgM+^喅5e*{b+xY|0Rë +(6*jY)Me%2/&ո&2"xo1vVyd=@R-kiO X7FWq> <,[w=ʽ9L6eawqs2i4"W7ʑ]ƟZjE۲!_]4Z(^=LzI;L G͐yLJW2?O JeW'F+~Lݟ`o#1˚{cKi<2?Okd;ůi7L_i|\MW ^oqopgIP𯞖 Qw+ë5),?}nO;MǮR^ٙr^F+(<g@@ GxjTKrcphna4-\(tfIcVH'R̫!xE^ Lwl, <0 ! +vWW4xa^,wdv ŝyd Ŏ!r@k`@eΠDWvRx P\%VPkX^}A +}q>%,^ܰV^A2u0ݥ5Gј=Hw΃|W.c/3}ǥ$϶QyE Jsa}=W2wsU滀*Ϋ5%80Tq^mm.e>!wŀW|wňWq^A @+TdRA|BW(0|T(+x_Yį o^糀YP5y@eƯ@Aȏ-)wULQX]* ūb<8^ V*$-(xEo ^;F<0D [n#N-޴i}ȧRͿ'ۺ/}' ;}_/o>r[1xyh=i͉v0Drg/Ǫ4ے~><xq<$ܒڒ n&8; ߘQS<\rRjIDWJF}bu34Y+q,@3fC)v>KwSG:/b߉ۛM xv@iEBץ?7}ޘkI9Ҁ]= !qo"'}SFKQz{H] ;P^]oEKP(1񬚓k5J;ُ #MoVꕁlԼ|s~o(~\8 q#9rUZ[;wJܒ)~d|*VawƆEo-!Id4D]h>6t}ռ$ɤ~M trwXjWEyݝV7DK4[ ktӳ DyH[tE?,=S2Q@$YQw=(xE^O Ru%ZXWjWA*pAQ-.NnO?#"\~"jگl,6EU?'/~⪃/:ģ BiBȊ!2b6 2D7u+b@fjTIFG+rx;]J͔1Np `KSB3bH'pVa\dodW'S1W`A I"Xֵ:Go%^=sp;Ns{ߩ0/yxԩ 0> Nh&q'ɝ/e ' YS `*ٰ"c aF 7PՓs٬>N>}鶋wOr-+9mI˟OYx D gxXcFG|`,;iPPՓjnָӆI-q By!kv =q[/V'abFOe/XxLY}YoGAY}YEO7r/a R[ hwv\鬌5.2ɱt"M"xb4Jtuq8;@Ϯ.n]"Gvx/%|$|äi?TjɁkZ]xs^~anBݼ+ٗtEBӨB' ^ӕ[:K ^ِD(?=.Q;cbgwG)5t a}K'/oy^EC)Q)"ZF `mKީINɝ5.1RvWՃRCP(zXOxZS {cXÆ|[Mu4V"0G08I{U+kս\@b_*mxoybBlҭ*O7GnnYI+ϾW'M@*Y!IZҀ[0rؘ7x͍+u^)+D<>!BPZh@DH_Oz2;:mڨ{GA=H,q4wk|JO :{tnj*^y9h(f3~Dd\h#粲;"Vq.7rjirTr+*?}~mwvЭ߬>}@dk, / [_)U wj[( Vi1֔-5@֗I`i(_,YEcrX2e4KL'CN$|@Dixyw(7%c?Nt2'G1!.rռ]Wk9o<;' <wBv3wώL*lF×|tRv6擅R㓧WJvHudW;vq }xVŹ !Q6]p5nVA$D& 44w)wݰ|a/q)㋶~vND]եTv6Qݿ({:{:ޫI[7BPfP=<e*/rSݟ"j_sWFfyrnBG.8YUܣ/uL93g_trԳen@Y[ѭ@X]tS-Řx( )hO vttQ[zGV0: $l'L*8#vt(;$tSRԸx ]0Zg(A>abg7OSFRhU DNn 쮃O t@|a6Ucu 1A޵wE{%ZUԕח4*p{IنBGGY kPLSIYKliy['ؙiE "* eܲ,T̉~3oLw%պC4%"Y~C١h/N݅bg:y 6 vp |!ZR: @"GWGmgt<:{>x<_S-'II{_3)x';BR_SrW V9|b ByiKm׳@֥֫AdjV5ä5bgMfJQbxP.ttqd4_>^Lpv1#DV=ī‚7:C{@V)16l&>IP(8dI*vUQ7ꭣ96i$BP(tU^*V(6ތw/7S2uHP(qxݺ$7o;HlIҺ7m< BP(mnL<ٓ%mK릇( B57(+mHP( bmƒ-%P( By65GmoP(B BP(.t BP(" BPjP( BiK-BP( -BP(" BPlN:p8zBXx1Ƹ(88cl 9r$77GVz:HׯٳSSS(V~seڨRs)**Z|9'n-b111׮]czٱ[3Wu)͛ߒpvv˗1GN46o|^gϞ=ztttt~͛wfq.R9X~By/"H40n8GGǯ%tӦb:_~ݓSRR-Z4o޼k׮XBjqvv>~L&#ϕ[nN֖`{FPQQq˗/w֍"""kFk+Ҷ~JHHHLL$*&>sѣ-llV(R\p~tR3Z].%j{4 !1CCc3u踸?f:`|Gz:L|dm۶_}ᇃ ^{0R}ǃ #Ǝ+bcc9s>L2rO=ԟ1cccIeddMHb rǟ?a8tЦM9B>}z6wV1r L2IZ*aF# 24bٮ X^"nUo۶eGauWfb3s^z'޻wϺ)狼 /NII9pիR__?p ޽_dɚ5k.^8tP$rwwkWCwn=BW\qpp0,&矏JMMrܹsJ;BhѢEqqq))).]ׯg]v{κ"̛7oݤ'ݿ?NU`{!ɽ{Ο? ._qq1Յ;wO?}7gΜyō7{$/S{ܹׯ[n]頩kD'''RF$[Fhx|=vؿ?ꚝ]\\j{mFsw $b1ڇ b>Upww~zqqL&1b[JKKù.")mH3l`zyΝ"V\mώ;O>&-Bٮh`DfǎKNN>x`dddsuX+-" 8pڵVdMt8,EcǎƩzu8k,a_nN$))b)Se A/{饗0ŬMMM]bBTZֱ,^~񅅅~~~Vdff&''>F;v͛7RSSM]>WW)S "##]\\ׯ_mm-议&L@X%mB7y e,//z*)#{ʨcǎMLLTTeee/ѣGϞ=;fF& M!TYYͤjg:thҤI0a„Ç>}zԨQz%5F3Vu `ʔ)ɛ6mbfԩ| XQ!ƌ3yuݺu .r`&I8x'ϟ?oEJCth];BH $&& B Bи/+czYSLHĞ%fV|'% ?3?C^^s=gK̙{nL6g '|'ˇ1&olk(ydÖbհ5yʨwְ"80|ѣG/ZK.3gδ1ڄ&A#5 wڥP(6lǏ_tihhɓ h6k`F+xƍ[`ŋMUy9z%2jrڵ011/ЙbكfnnrT8c1OOm۶8---??^܂ bXTy+`oӧO+W4!`^^^Z6))iذav"F6v3,ccs/8=dc.%?4vP$pH\x<h҂>!nnE/MmGM( Bh9M,&͢V9|^e{88V&d2NjNc1!ǥRKXXP(lM򢲲2ixxw˥cDп_ߩκ\+_kr%{'GwX#XYp{JM]\\E"V*]|yȠ]XHtjP(zlݺ/_n/QKF2u˗SmgG}WIZ}H٨spqsd2oo=zTVV޻wO*'<<<"""**_~  +Ws IDATXyP_/ɴ~~]+ !D䩩ד3VTresYA}DUUIٟ\4("NiP_s^сgȂN~M]]$...BPGg_R>1-(OOOOOO{IP f$M>y3zd!;^/RI Y'FA$&MiGB牲-Z iBx#]jVjID,NCT*5KOKպ:3+PЍu77Jx:nRi}]VTv jJ u*N{׊,X2$ΎΎG1{՝=jk>t^QQEE꺱/:1BUUgPMchUvy6|w,cTa^Dn6J uhʪe#S1C3+Mٙa@Qkؙo|/^.<>-EVcP(tOMܰ99#5dhf3:NRt: [N}B.WZ-JH'*{h-!d2B2cZGXQ#GbVJ;wCBA(K*EYE硞=oJ>|0JuJ Bi1><,Ym }9bwCZxŽk[fLOˆm2˗'M\#VI=ZP@u̙&xj4V?PhOꧼ'tEdZd" hLJR*l|;RWɔR,99Ɔ=:jT JrXF1j􅘾̯ϱN#ϯMNN9s ׉EBC|L.vEB3<!1ҵ˕H"VQiR›ӣӣ !Oȳba4.t侕i CUU'kŒ~aOi C=|2YĨi|u5g77KMj`ŎX[wZ5_*r*.trC^ K),ECR ɗ͝aB!ɴZmK"r\%jkUKLL1cHԼe(T* ضF.gȞ$VćIV#B#jzA#W a4I}g_TzW!>!b& &,_%Ÿgmh9CUU'2b!FNsSKDϸaeaoVc+:ɤ$ws끜j7}YUu ?-u4:Z(;ytϞݍo`U]r`8Q2 0|OLF޻w1FQTFTjږ˕]ݻG>=ssKS./7oƘaJ1 RYFБ1c#2`@HTF G@(J$bRa Rugy\ 6"bOOϕZvClhɫ%w9b!`\+ATIiбe? \πh.lII@?I˹.Z)1JHk4i15X:?]M"52fۙv 0 El<ռ-B"%r\RmڬL>D]C@QΝ.-={,4. &@`A|Nz\0"|wc@,u#63:1Nz|BQ'3y0 vkyC]̫E,@ Fad}, hlQV=!"pC{zύ >xZ~'͕1h4Z)SVF27FB`&N\[+Jeׯi= ZCa"|a=>*aT$0Od{T&x{z"n:cjcaABKz/ 3jC-]SC6c:v #v3X 5ȕXaJxWPp.0 T)*/d5+;|N|Vh4;k ߼y[DK53!\wVѕq{=$Q^YqɳasX_ 5G!>UW+ %lyڴ1,w/W'Sȹsj3+]>&ccazR ]mi>_1=cC6 r k/,2@yTA^ WC *ʠFWQW֗,u;2fh&OcѐY##gpt:hxHPI'ɠ;,Mf.?(uf.=x&<:zh4Gat1Y_4e`QJiN5@oR!ΎOrg͞: ߟeg|^˫=_[!z5cp%[/ү߫l8%e?#Z%mGb:c8sjOTPs͸c0_j5(ՌJ*\kt*V\8խLY[B!=rT={lxUUװ{ûh5pz`W,hĝ*+o}#J&*!>g`l3LT#d¬ c iɦgX#'ӥnE5'{%4)65:4Ktt_0\_2M[ :Sin1@j>+dz|3i|2}|d_M"9ҏ#Y5 ߮;߳tq7wmf&rgll1RS?hwnx[i=H$:p*RkȓѺj.JUZF!j4L'ԤZF/ GlKjx<2?o"I>^s;hd:]w~3h8h}{/(m-bj].kp} kWUZF1a@6|ZS?..+-kw$x OoOZ"_}z|ގO:jv4)J+uйe.#A1;狘'Q=ࡩu4Z>} рR5JUtj5O(ZFT:B@bZi Gv0 y'NmQ/yG?T;x~}ZJ {>!wo x<0M52w4:dv6 nqq[r!x ~'x"bF}?oE-htq2j5tEjjB\G#ks @ r/t:|$ZM;XSWVCs ת|uiyǒ5F))djW¿dW*W ݿq31FhO>BvPZVI15l aJnM\GSY,[:|>` U5 JjJTh4FɒOJp5N'JY)RD ׶>v7\#@]#x2kzbt}ѵ6FYĽBe0/!+\U]]Tv% ď7c_{稧ɕBP(Mmf:?z> O ? AFBϼiLSkl'99]+˕*^*#?#;X/3ۢ8 Byc4rͣw@ᵅ~I1Ŝ7>ՄBP(1&orj"::ZP֬z-( h( BXBHHŋGS̙3!!!r[&P( BH8se-*hdMW( Bi zaGvIn5"F9r =PUߗ# czꪪk׮edd4d=P( hC ɘ;v;Bmʣy%v5)G(J{ҥKiiivgGbogĈgΜd{N@Zg-W^{N@… (mXݐ:O[mҭϛF9J BttKjwYnݮG!=(`nzضH[`-B !CE 2dҥ[X[|>Ў+B P3C ٱcV]A{侫Co>B[B4!+$O:wb.a(G]VVf>&E("v}A]A ʆ;w\ZZj&rŋa銅 G5 }E"GݻrrT`pUf|WѩS#o϶N7 G$]jVa49>Ot|Biג=ú|r@ܬf,+路_2V8q]}' O.{B؀#w: L ~ҮK.Ŧ/ccu:6[`*((ԩS 0Ϸ)`'Mty=9p%cg͚t1cF޽oc^}Uu3Pô&Mg%1Vt֍53iҤk׮RHE6 rʌ|{hUNpkÇ֑߬ppf"\ l!*|  bYYsr g^Zn 7M6xS|7dI|Kkr%2{/ZfF6l1޸qchh\\܍7LW&{r;wL knV3Sx=2dsA9 ~H:CD>ÿ͙*ttuujXH}}T*(++317wuٲ6m*'O8~)LS`S=rrrjc\___]]&`܃D28q"33ח֯_5kּFsGd«n4>ꪫwaldffFGG'%%i4khium""ScLNZd&#.] unݻQ۷ttDª {7*1O.F\+Yƍ=0<znTFF̙Fn^&K,Au=$=@?}JpqEoe{o&R񛼯w1{_g {jՐVԆ`)))w}g,Y}F`e; `wKyA]wϞz6`wJdva :D;]^sɮN=!`w@ސʔ+ʥЮC`IؒVĤ--_r`_?:)駍 8W^#ףxƌo`{p__~ s,oow}7<,,L( Ûۖ.чt8o}T*BY{s|iaklпGGGȑ# vG+d{ my' <({nٷZ[F\ssuz%H(O^4hꋫ<|yc? ;܏a0s8pЄ6"t䢕ܚ׏$U*+599ʜT66,[s̗d $&&1|{aV/ <0޽{{0L~~7 }1 s3g0 믿Ջ`˗/$ї.]"y/ ㏬@K.|>`7~\\o0L^^o~~~eeX,.//g2''߼>I 0%I1ԭk+ܺڰ]W[ShѢE6lXpW_}e4%FVZZeݻE|{\7rN 6Fc1Zz-44'С 묞Bp8pB IDAT]Ԑ!ܦN 3g +kQl߿?4yq!]t)))! oyӵDr_0jՆ~Ƀnذ6']%KؼLݡmY c,n gN/_4n]'?|k]܂,,޽_XXX\\\ZZZVVVQQQUUUSS#J _G3eGf= Μػ S}իǍWXXد_?0I0A`ܳz1ϟ??h MVٳ/U,!!>hB k׮D"nQ nn%=SͺR{lʮ~X yyjn7G6!n]1bG2 ȵлjYjc̑o4!W= Bn}[ڬ@"W[flam(ĉ׿>L6 ]A]]aiM։X"M9ԏ/5 b4Ԫkϗe;}*!9ӫY b=8]@TS+9sհ,]Þ=K>35wuРAJr˖-Z cu:]jj* 몸1:4ydvqq>}g}6gJ{n8{ǯV޽{РA"R0WLĻ~Jn\[p|ƷDR:R({I7h[fSV׆t:qt:݂ 6mϮXk \lbaf`Qͻ'ɉ̌խY2tc99уK֬)Dgg ⒓}Nƍ~..|٨('__1{ZU'8xOߏ~o}30;w H&]tԚgbګcIM6]mW^+л-= l5f kv u:ԵkWS׈v'1s v-"=7DGX4vM~,t~k{ɑw;hͥ5u:#GB/!!y 9rSO=xbK%/bᏝ/sNHTZZJO޳g+Vp̏S _P]l5$Ӳ{9Cuuu .޽ԩS4 &GVNBYRn#-W3zZWQQQ6JPzd\nŋtG矹IEqTV񗙙k8_Ē_9%m33_r"tܖlY{5xSEk{%E`(IK WC[[$8+ʴ+dv@o%0sJ a܊_|:r9)U(+|j1͒%Ixҥ[oK$_Bp\%EÆfW쨌TU;atm9vAGiر'sڽ+8z(o9B%h-aS _N7uIWuqztxtzdeY# C`fGi67D(,333@iQCWs+܎>yyy=zᦥ z#(Ў(m 5hW`GeࡶQGCP: +Eo ]wNQ,]%5{g~HOOok-(sر#""{v-"II=`-6ʡPZԮ;|Iv嗇lG8رcG[+B$""4T޻wQ(ĉzΣCIJJ4/秡ΣL\\S(VO8aG\[QP5) PVͥh( B+ {EYS^b2FoROGѓn!_EKb<hoО(zR>r BP(-~jP( Bqyyy"|~Ox-1^`ui/^߭[7 =hV|b-e':i7ڻ_c믿χ޹s'{!k.d~קNrss0̙3d 5ڻnKO}_:uԩS Yxiq޽>|Q}Ln3fK9sT ØғB*,Hoпe=u^{SN=zjٲ7X1 K1߉J?\~Ç1";;;>>"Qo3--_~!ᘘ˗/7+C"b19x…R6bkג?֭[SL!SZLdgggqsVkFO ѡ{iӴ'OFx[Bހa[SR(ﻺvڜ+WGkׯߞ={̙: ף|2KF[O<}7|oExٳgsYW^IHHr^۴iW_}k43fo_}kj*P2sXKD}cvŊ/駟F QFZ0-mVX_mXlF0w}YWBi+:zo  >svDv#!Bi5rrrO #pD#MϜRXKD}W[_t=)}W==3-IH]m}MQOwЊ!};vnī8Y= BP(A1MQ__" BP8:pd*P(E(M4kb B1 /BPۻ(}aB[{=(dLy-dV^Q:..z8zhVu: iIGB20q/|/_3kֳΚg-]axE@ [lҥK/_fW^6x@E.̻ qRaXcWȃ"/U "" ּj"b/VUƋM0v "pƮK8-2o)e6UWl+9Ҩ(g^(ˏ?>fke2Yii)'^ݻwK$5֕0tВ@)ˋ.\P(?^ZZiA iii3gN~~EY:{z- cV|9BrssW*_ k.^{)))˖-#(*\l򲲲e˖oϞ=H$+VsջwGwinn~'Oqܕ+W-Z?AVB e2ĔʛFRGgfgg'''笨8.**cw=QJ\`t*?ee˖ΖM6DUV\.:u*{XXXhȠ,((***8q"fGW(Ν=zt߾}o޼}ve["̜93''gʕ&vľf؝xhhh-D**Jᙿ,W,KH_4SVK-A(T*h4{"##;::R)ۣhm4?\PPh;h4Mqq)*J?,O?]TThJ߿BBBuiVgdLlllKK 3))i߾},ɓ'GGDD\xcذad;wfӦM=͛uNmdy.^8sLFTT2566Xlpرm   !ZRʢto8%q,!ݕsD 7S\\\[[?d?q]r۷ozԥKx BHXXRPP I3MMMsݻm5ĉl[" 2soii.\`%K.[!Xi8\YQaQsdh0י3D[e@k׮mݺU$rˈ : <"^pWM䡆 *t;w  hTG("_Dh=V5DX/k4Ū4":~WgιĖ"h} AƮ<_d֭qqqnr=!x[Ew͎;~NH xFZNh}<_ 8z[IN>98g*Wh:c;C4J0^xA4psZE!utt8p`)]E4>/By&Lܙs]E4>/|^z9`ͻh}ly^.WН<%\rW"$c]wT*myy||j`7[YQaQsDlE9m*x/⹔J rɓ7oeC)|3g}޼y7[.^X.;zƜ>}7:sƮz.c[._.1:3BSJ͛*>͂-",!}R+mEP=_W%ˏ?>f' s3L/X>9!R%WСCKJJx^(ӘݻwK$K.]YYY .T(Ǐ/-----s(0QgOhE!/dEm401^R:on4NjPJ VRR"H0N02DN8B(%gijxk kyZ **Jijj*d]v(%%߲eKgggKK˦MD"ѪUU@.WTTL:Urj?4S̛7o.[> ˓O>om߾GihhXbEyy9qYYY{奥=SRR-[.;;;99o<ŋʪMwhĉlŎGwinn~'OP(Ν;7z}޼y322rݻD"9sfNNʕ+u?I*b=-WrWrYgdekjǑ}ɲeFgXL v &?pcc`tRX0ٳoD)?zaaL&& zdʔ)r\'B QϞ=L,`UCPI"DjGi&!(7u:tm|xʔ)cǎgϟ϶###;::tއؖ!g_]?:sř3gj///WTGh4&22RRdXcef>ׯ7665!G!˻m48|πŅPG8]ĶsrO?}@3e}`htFa=)Lϗﳱ:GLX~`J &cg`"!iEEA`:ioG":3)oֆ C[ZZ~ .,X`ɒ%|-1y1mڴL-8OKK#/Tl# %755XT}޳gԵkV\ymX\__WgϞ!!!~~~^2%ISS~km"L&suEh`> ;N:;=L6mO>];Ǐ7L kjj;El`q\`` P!㸢"^Ϣv 'No!d>>>,K%-:Fs֬Y{9okk{衇=?+B('O4]rhhJ z<G_~?744kj ce޾};,,L?RRRddo3m111Ιj 6L5tB)-+3z,ۃ޽{^0q~0eWaN8a@M1qtNR Xb1ݽ-P(f̘o>~JPmzzzmmEXO6==<<_H"}r=1F(3''gٲe۶m# 80''=+222***!AAA111̪*rTe IDATɟܹsM]6NYzV`%Ϟ={ƌRgmjjb9{コ7[B8s鿁׮]3})yW`r1! n ?Bȇvhdvss}wD$ kl~K'|? ac0aeVVVUr/̙3 `3w}733\/рّfԼ;VnݺhѢ|___ b^#qC4*| &^U`~~͜9ӖBD"֭[^jZ9ǵk׶n*w~<߫dKs~C"eu֣wcKBDžj2 6SO=3k}U] !a]ha/豫6>N{C 0X"JU~EcW)n]s|U?1+9O bٳo(l痞ٿԊw.wH8a*13b_m-n/>ߓq';vBb헳9RmY}עĬ;v_6ߟ$$t:$JJ2(`gtP*{of:E>c\? ;!d\?U3:*3\NڵF[ .0Kn(Ͷmfuedk_ZZ8??bSvW5Hx6@iK U/.cW-Dܡq8 /2xYG5g bf];w`LVA]5~x':zT?X\̯Kڵb]ԕ[s՛6;;XL23\**Q(p&2@ &0^Ǯxp%WB؁G]ŸVlU#Ʈ~ 1.8E \2)Jr„ r|ɛ7ooM܁i}8[T& x{GcG}.%K߿૯Zf РAr|Æ a]]_WL'NOo\~#b:LxBdP`0~- xJiCCüy,Y2dc'?z)S ELL̿/}6mڤP(LbzZ=wO0rҥtƍl[PTTTL:UPrvFhhhaaofee :GYfͺu W\vZKw;"ݟӧ x_ Оw+Nj&))),=:}- & &RJ) &|,r\]BhhhAA`&`)[E,!}Վ7NMZ-)Cmh4IIIh4ɓGf#"".^1l0FC)-//WTGKx X8p`]]F9|I4T*1bC*jurmLީ/S@ׯ_oll4};)h6eFö4Y0a|0jG'MLK'#m=z~#c:dDX0IHHr,??0L;"_|їٳߊc;wPJ=?h(/^lii41BTRJJett4Rza9MHJJȰK%oHtt~ʶLZ[[)GI{{;̎D`0]8^ɽ#k׮ݹs'q>>>ɄBQUUUYYIR(gϞ1cFppT*mjjzghߕrp[Bnm՘Ǐ b JiTT 0|[:55Z[VAblϻJG,%ϟZ'"_{JG`S?SO9tƮzxP(L `.2yrC۸F55m. J-nhovE+ӫalcf Mm^δ]=Nj@w=v@8{%BQJ/_|I <|r >tƮzvϋ~0qm=X7nk?[._.1lEn|=/BC-))18Fַ޽["=2TȐrOY]]p¶]vߢQJ VRR"H3mii3gN~~uN18vU =ks;҉:Lԓfc&D/Λ(->>i8{n!X/IO?gzW\yꩧƏ?|Z}d!Bަm iʜ\yX"̜93''G??OdB +&/`ҳgO~+p`b0] f۬dF񫯊.""=҈ݻw'$$W_}566RRRs]v]ro߾={lll?q&MZnݸqnjS^^Ηk?Ǐ +**ڼyW_}]#G>}m ANΨϳDEEjoPJiQ}T*_~Ag7bq^F 4H;_C)ftFx)NipD[nzk׶n*<^ ڗ#]hX0^Ğ8 8%@—uBB4l0[^{]u@,^>^cWne'3 l }y܀ wX\ `*X爉qu#_/~6-"_bWe2+C)8+HB/vݝU q;U@E/~E@ Ym^.RI,OT ̉%+#p\l-+cbP7.9B7yFX\ +y}4Jwٳg||5k f[xqYYYYYYMMp۷o9B)-**Үرc/] ۏ]' &DSJ`Bرw/{m(l現eիիqH 3mZdIIII``l۷oFEEٽmmmW޽{N$ +q5oo v؅'ט۷Ln0/n]!+jR:oCDDзo.F('eEryEEԩSBBHCCÊ+***8.]d7o\lYEE!G}m߾}bO>gΜ|2_fyy9qYYYܳgOPPhWpPRXN\3@<툷e ~rL(LD"o_6Ss3#}e:?IH:tHԥowX| .)J"2@3x{nƌSN8q_xiӦB:;w``ʟ?pywߟPPfY;Һ4+JBԶHtt~JoLb0#Κ5w^6^^ORbbbXR\\+E('O mnn 4_zGs'Gׯ;-O#:::???%%e:ݻ7)) &,bhoBCCU*UPP]*?l&1PJyl`"_%Oe$7cz@[D.WUU) ]vΝ$''*r,[l۶mB\hѢfFl2VrvvvFFFffoPPPbb"~zrr>gPPG!:Bn)Pw{05LX{0;w.{h0-_.&ܸXGlNun"xTE)*Q(t/BzB!۷[}LN>)e6U"/QBqv Xjujjj^^^HH JRեz6oJT% Oz`CpK:{BC/ y!wU`4ПᶄCώ`b!T*{6tD%%> OwB;BpG͑ѨT*Re ƚ_kˊ0י [nz]o  ۷ ̜G !"a|bLgv*E4DƋ'ly"I^{Mjs xwpu !Bƣ/Q.3:oEX+1:JXST*Hmmki78m@w0 `۷7nά?Ll@w0֭[7o@[l#݄4G!henl.`"/a8 /'pzGJyyyBW*RZ?x17_ !JlNT:|pI~'KHJmk~ϺgϞp႐JRBBH҄HH"Ej488A_w`XcͯeEDjGi&077W-LnnB644PJ"E}S}6Xho8%q,!HnnnGGG B\qE)RL-K"mݵ(&fi; !of6{H{F)RMþmoXW@Je0&ۭ+RHzei tuuڣ_DL&kmmnE"Eԑ)W|``wXL[W^~; ERb`"ڕ ߩmҥK!CX "H"ET;۾{ՠcEn޼٧OE覦&"H"E긔+͛0sƍ} tE"Eԑ)W7tv: S[[ۯ_?\GCRH:.Վ)e6Uu0R'ѣGWWRH"c蠯xT:|pK'k~-+ҽF3|pJ&. v_>9 Ah+-"J"=ШQF5|YfUVVZw0Jiuu!C(֕^FPH^N:uԩ~iܸq+V1qt7X|fԩlJ+WM6r1c|,=zttt_|A)9sfرcƌٴi{??m۶Ltx޽{Ϛ5K{жk4?xرqhѢŋ>}֭5#IDAT/8qDNN믿rKׯ/))7n+p| +y .Dg wom{0`?CJ͛77x1cF !eeeIIIG~U*YYY9uTB?ʔ׮]8rHDDz^Ȏ;XW_HHȏ?HyDB8N$9rD,9ΝP(jjj!Jvq^YYpBܖvCĦ"ׯ \z5qaaaÇaO;wΝ;111۷o8.$$dȐ!#|i)))'L`)iX9^qOVVօ lB)+))1bĨQ|MJիW'FEEQJ?> &&ȑ#|i!!!cǎ}{q\kk/h33!pI)˯ԶQJ_>}o6$$i1ٱc'k~-+4^ľ('lnn~뭷_p4c ".hpףGÇ;&"f"_z4`gf"B[lCDg~En4DtƋܿҦwE{ #=4w"5=q(9f;(- kB"IENDB`kdiff3-0.9.97/doc/en/index.docbook0000644000175100001440000033467611747601160016166 0ustar joachimusers KDiff3"> ]> The &kdiff3; Handbook Joachim Eibl
joachim.eibl at gmx.de
2002-2007 Joachim Eibl &FDLNotice; 2007-31-03 0.9.92 &kdiff3; is a file and directory diff and merge tool which compares and merges two or three text input files or directories, shows the differences line by line and character by character(!), provides an automatic merge-facility, has an editor for comfortable solving of merge-conflicts, provides networktransparency via KIO, has options to highlight or hide changes in white-space or comments, supports Unicode, UTF-8 and other file encodings, prints differences, supports version control keyword and history merging. This document describes &kdiff3;-version 0.9.92. KDE kdeextragear kdiff3 diff merge CVS triplediff compare files directories version control three-way-merge in-line-differences synchronise kpart kio networktransparent editor white space comments
Introduction Yet Another Diff Frontend? Several graphical diff tools exist. Why choose &kdiff3;? Let me say, why I wrote it. &kdiff3; started because I had to do a difficult merge. Merging is necessary when several people work on the same files in a project. A merge can be somewhat automated, when the merge-tool not only has the new modified files (called "branches"), but also the original file (called "base"). The merge tool will automatically choose any modification that was only done in one branch. When several contributors change the same lines, then the merge tool detects a conflict which must be solved manually. The merge then was difficult because one contributor had changed many things and corrected the indentation in many places. Another contributor also had changed much text in the same file, which resulted in several merge conflicts. The tool I used then, only showed the changed lines, but not what had changed within these lines. And there was no information about where only the indentation was changed. The merge was a little nightmare. So this was the start. The first version could show differences within a line and showed white space differences. Later many other features were added to increase the usefulness. For example if you want to compare some text quickly, then you can copy it to the clipboard and paste it into either diff window. A feature that required a big effort was the directory comparison and merge facility, which turned the program almost into a full file browser. I hope &kdiff3; works for you too. Have fun! Joachim Eibl (2003) Screenshots and Features This screenshot shows the difference between two text files (Using an early version of &kdiff3;): 3-way-merging is fully supported. This is useful if two people change code independently. The original file (the base) is used to help &kdiff3; to automatically select the correct changes. The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get. You can even edit the output. This screenshot shows three input files being merged: &kdiff3; also helps you to compare and merge complete directories. This screenshot shows &kdiff3; during a directory merge: More Features Line-By-Line And Char-By-Char Diff-Viewer By using the possiblities of a graphical color display &kdiff3; shows exactly what the difference is. When you have to do many code-reviews, you will like this. See White-Space Differences At One Glance Spaces and tabs that differ appear visibly. When lines differ only in the amount of white space this can be seen at one look in the summary column on the left side. (No more worries when people change the indentation.) Triple-Diff Analyze three files and see where they differ. The left/middle/right windows are named A/B/C and have the blue/green/magenta color respectively. If one file is the same and one file is different on a line then the color shows which file is different. The red color means that both other files are different. Comfortable Merge Of Two Or Three Input Files &kdiff3; can be used to merge two or three input files and automatically merges as much as possible. The result is presented in an editable window where most conflicts can be solved with a single mouseclick: Select the buttons A/B/C from the button-bar to select the source that should be used. You can also select more than one source. Since this output window is an editor even conflicts which need further corrections can be solved here without requiring another tool. And ... Fast navigation via buttons. A mouse-click into a summary column sync's all windows to show the same position. Select and copy from any window and paste into the merge result window. Overview column that shows where the changes and conflicts are. The colors are adjustable to your specific preferences. Adjustable Tab size. Option to insert spaces instead of tabs. Open files comfortably via dialog or specify files on the command line. Search for strings in all text windows. Find (Ctrl-F) and Find Next (F3) Show the line numbers for each line. Paste clipboard or drag text into a diff input window. Networktransparency via KIO. Can be used as diff-viewer in KDevelop 3. Word-wrap for long lines. Support for Unicode, UTF-8 and other codecs. Support for right to left languages. ... File Comparison And Merge Command-Line Options Comparing 2 files: kdiff3 file1 file2 Merging 2 files: kdiff3 file1 file2 -m kdiff3 file1 file2 -o outputfile Comparing 3 files: kdiff3 file1 file2 file3 Merging 3 files: kdiff3 file1 file2 file3 -m kdiff3 file1 file2 file3 -o outputfile Note that file1 will be treated as base of file2 and file3. Special case: Files with the same name If all files have the same name but are in different directories, you can reduce typework by specifying the filename only for the first file. E.g.: kdiff3 dir1/filename dir2 dir3 Commandline for starting a directory comparison or merge: This is very similar, but now it's about directories. kdiff3 dir1 dir2 kdiff3 dir1 dir2 -o destdir kdiff3 dir1 dir2 dir3 kdiff3 dir1 dir2 dir3 -o destdir For directory comparison and merge you can continue to read here. Other command line options To see all available command line options type kdiff3 --help Example output: Options: -m, --merge Merge the input. -b, --base file Explicit base file. For compatibility with certain tools. -o, --output file Output file. Implies -m. E.g.: -o newfile.txt --out file Output file, again. (For compatibility with certain tools.) --auto No GUI if all conflicts are auto-solvable. (Needs -o file) --qall Don't solve conflicts automatically. (For compatibility...) --L1 alias1 Visible name replacement for input file 1 (base). --L2 alias2 Visible name replacement for input file 2. --L3 alias3 Visible name replacement for input file 3. -L, --fname alias Alternative visible name replacement. Supply this once for every input. --cs string Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1" --confighelp Show list of config settings and current values. --config file Use a different config file. The option allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs. But be aware that when &kdiff3; then terminates the changed value will be stored along with the other settings. With you can find out the names of the available items and current values. Via you can specify a different config file. When you often use &kdiff3; with completely different setups this allows you to easily switch between them. Ignorable command line options Many people want to use &kdiff3; with some version control system. But when that version control system calls &kdiff3; using command line parameters that &kdiff3; doesn't recognise, then &kdiff3; terminates with an error. The integration settings allow to specify command line parameters that should be ignored by &kdiff3;. They will appear in the usage help like in this example: --foo Ignored. (User defined.) Command line options to ignore: A list of options, separated via semicolon ';'. When one of these options appears on the commandline, then &kdiff3; will ignore it and run without reporting an error. (Default is "u;query;html;abort"). When this isn't enough, then it is recommended to write a shell script that does the option translation. Open-Dialog Since many input files must be selectable, the program has a special open dialog: The open dialog allows to edit the filenames by hand, selecting a file via the file-browser ("File...") or allows to choose recent files from the drop-down lists. If you open the dialog again, then the current names still remain there. The third input file is not required. If the entry for "C" remains empty, then only a two file diff analysis will be done. You can also select a directory via "Dir...". If for A a directory is specified then a directory-comparison/merge starts. If A specifies a file but B, C or the output specify a directory, then &kdiff3; uses the filename from A in the specified directories. If "Merge" is selected, then the "Output"-line becomes editable. But it is not required to specify the output filename immediately. You can also postpone this until saving. The "Configure..."-button opens the options-dialog, so that you can set the options before running the analysis. Paste and Drop Input Sometimes you want to compare parts of a text that is not an own file. &kdiff3; also allows you to paste text from the clipboard into the diff input window that has the focus. The diff analysis happens immediately then. In the open dialog you need not specify files then, but just close it via "Cancel". You can also use drag and drop: Drag a file from a file manager or selected text from an editor and drop it onto a diff input window. What's the idea? Sometimes a file contains two similar functions, but checking how similar they really are is a big effort if you first must create two files and then load them. Now you can simply copy, paste and compare the relevant sections. Note: Currently you cannot drag anything from &kdiff3;. Only dropping in the diff input is supported. Warning: Some editors still interpret the drag and drop into another program like cut (instead of copy) and paste. Your original data might be lost then. Comparing Files And Interpreting The Information In The Input Windows Info Line At the top of each text window is its "info line". The info lines of the input windows contain a letter "A", "B" or "C", the editable filename, a button for browsing, and the line number of the first visible line in the window. (Note that window "C" is optional.) Each info line appears in a different color. When you selected another file via browsing or finished editing the filename here by pressing enter, the new file will be loaded and compared with the already loaded file(s). Coloring The three input windows are assigned the letters "A", "B" and "C". "A" has color blue, "B" has green and "C" has magenta. (These are the defaults, but can be changed in the Settings-Menu.) When a difference is detected then the color shows which input file differs. When both other input files differ then the color used to express this is red by default ("Conflict color" in the Settings). This colorscheme is especially useful in the case of three input files, which will be seen in the next section (Merging). Summary Column Left of each text is the "summary column". If differences occurred on a line then the summary column shows the respective color. For a white-space-only difference the summary is chequered. For programming languages where white space is not so important this is useful to see at one glance if anything of importance was modified. (In C/C++ white space is only interesting within strings, comments, for the preprocessor, and some only very esoteric situations.) The vertical line separating the summary column and the text is interrupted if the input file had no lines there. When word-wrap is enabled then this vertical line appears dotted for wrapped lines. Overview Column On the right side a "overview"-column is visible left of the vertical scrollbar. It shows the compressed summary column of input "A". All the differences and conflicts are visible at one glance. When only two input windows are used, then all differences appear red here because every difference is also a conflict. A black rectangle frames the visible part of the inputs. For very long input files, when the number of input lines is bigger than the height of the overview column in pixels, then several input lines share one overview line. A conflict then has top priority over simple differences, which have priority over no change, so that no difference or conflict is lost here. By clicking into this overview column the corresponding text will be shown. Manually Aligning Lines Sometimes the algorithm places the wrong lines next to each other. Or you want to compare one piece of text with text at a completely different position in the other file. For these situations you can manually instruct &kdiff3; to align certain lines. Mark the text for which you want to improve the alignment with the mouse as you would for copy and paste in the first diff view and then choose "Add Manual Diff Alignment" in the "Diffview"-menu (keyboard shortcut "Ctrl-Y") . An orange bar will appear in the summary column next to the chosen text. Repeat this for the second and (if available) third diff view. &kdiff3; will immediately recalculate the differences everytime you do this. and will align the chosen lines. Of course some of the previously matching lines in between might not match anymore. Currently merging doesn't support the use of manual diff help. Manually Joining and Splitting Diff Sections In some cases &kdiff3; will see too many or too few diff sections for merging. In such a case you can join or split existing sections. Add new sections by first selecting text in the lines that belong together in either input window (as for copying to the clipboard). Then choose "Split Diff At Selection" in the "Merge" menu. Splits will be added above the first line and below the last line of the selected text. If you only want to add one section, then select text beginning at another section-split. For joining sections in either input window select something in the lines from the sections to join. (You can join several sections in one step too.) Then choose "Join selected Diffs" in the "Merge"-menu. Merging And The Merge Output Editor Window The merge output editor window (below the diff input windows) also has an info line at the top showing "Output:", the filename and "[Modified]" if you edited something. Usually it will contain some text through the automatic merge facilities, but often it will also contain conflicts. !!! Saving is disabled until all conflicts are resolved !!! (Use the "Go to prev/next unsolved conflicts"-buttons to find the remaining conflicts.) With only two input files every difference is also a conflict that must be solved manually. With three input files the first file is treated as base, while the second and third input files contain modifications. When at any line only either input B or input C have changed but not both then the changed source will automatically be selected. Only when B and C have changed on the same lines, then the tool detects a conflict that must be solved manually. When B and C are the same, but not the same as A, then C is selected. The Summary Column The merge output editor window also has a summary column on the left. It shows the letter of the input from which a line was selected or nothing if all three sources where equal on a line. For conflicts it shows a questionmark "?" and the line shows "<Merge Conflict>", all in red. Because solving conflicts line by line would take very long, the lines are grouped into groups that have the same difference and conflict characteristics. But only-white-space-conflicts are separated from non-white-space-conflicts in order to ease the merging of files were the indentation changed for many lines. Setting The Current Group And Synchronising Merge And Diff View Position When clicking into the summary column with the left mouse button in either window then the beginning of the group belonging to that line will shown in all windows. This group then becomes the "current group". It is highlighted with the "Current range (diff) background color" and a black bar appears on the left side of the text. Choosing Inputs A, B or C For Current Conflict And Editing The button bar below the menubar contains three input selector buttons containing the letters "A", "B" and "C". Click the input selector button to insert (or remove if already inserted) the lines from the respective source. To choose the lines from several inputs click the respective buttons in the needed order. For example if you want that the lines from "B" appear before the lines from "A" in the output, first click "B", then "A". If you use the auto-advance option ("Automatically go to next unsolved conflict after source selection"), you should disable this before choosing lines from several inputs or if you want to edit the lines after your choice. Otherwise &kdiff3; will jump to the next conflict after choosing the first input. It is often helpful directly edit the merge output. The summary column will show "m" for every line that was manually modified. When for instance the differences are aligned in a way that simply choosing the inputs won't be satisfactory, then you can mark the needed text and use normal copy and paste to put it into the merge output. Sometimes, when a line is removed either by automatic merge or by editing and no other lines remain in that group, then the text <No src line> will appear in that line. This is just a placeholder for the group for when you might change your mind and select some source again. This text won't appear in the saved file or in any selections you want to copy and paste. The text "<Merge Conflict>" will appear in the clipboard if you copy and paste some text containing such a line. But still be careful to do so. Choosing Input A, B, or C for All Conflicts The normal merge will start by solving simple conflicts automatically. But the "Merge"-menu provides some actions for other common needs. If you have to select the same source for most conflicts, then you can choose "A", "B" or "C" everywhere, or only for the remaining unsolved conflicts, or for unsolved white space conflicts. If you want to decide every single delta yourself, you can "Set deltas to conflicts". Or if you want to return to the automatic choices of &kdiff3; then select "Automatically solve simple conflicts". &kdiff3; then restarts the merge. For actions that change your previous modifications &kdiff3; will ask for your confirmation before proceeding. Note: When choosing either source for unsolved white space conflicts and the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in numbers or comments will be treated like white space too. Automatic Merge of Version Control Keywords and History (Log) Many version control systems support special keywords in the file. (e.g. "$Date$", "$Header$", "$Author$", "$Log$" etc.) During the check-in the version control system (VCS) changes these lines. For instance "$Date$" will turn into "$Date: 2005/03/22 18:45:01 $". Since this line will be different in every version of the file, it would require manual interaction during the merge. &kdiff3; offers automatic merge for these items. For simple lines that match the "Auto merge regular expression"-option in all input-files &kdiff3; will choose the line from B or - if available - from C. (Additionally it is necessary that the lines in question line up in the comparison and the previous line contains no conflict.) This auto merge can either be run immediately after a merge starts (activate the option "Run regular expression auto merge on merge start") or later via the merge menu "Run Regular Expression Auto Merge". Automatic merge for version control history (also called "log") is also supported. The history automerge can either run immediately when the merge starts by activating the option "Merge version control history on merge start" or later via the merge menu "Automatically Solve History Conflicts". Usually the version control history begins with a line containing the keyword "$Log$". This must be matched by the "History start regular expression"-option. &kdiff3; detects which subsequent lines are in the history by analysing the leading characters that came before the "$Log$"-keyword. If the same "leading comment"-characters also appears in the following lines, then they are also included in the history. During each check-in the VCS writes a unique line specifying version-, date- and time-information followed by lines with user comments. These lines form one history-entry. This history section grows with every check-in and the most recent entries appear at the top (after the history start line). When for parallel development two or more developers check-in a branch of the file then the merge history will contain several entries that appear as conflicts during the merge of the branches. Since merging these can become very tedious, &kdiff3; offers support with two possible strategies: Just insert the history information from both contributors at the top or sort the history information by a user defined key. The just-insert-all-entries-method is easier to configure. &kdiff3; just needs a method to detect, which lines belong to one history entry. Most VCS insert an empty line after each history entry. If there are no other empty lines, this is a sufficient criterion for &kdiff3;. Just set an empty "History entry start regular expression". If the empty line criterion isn't sufficient, you can specify a regular expression to detect the history entry start. Note that &kdiff3; will remove duplicate history entrys. If a history entry appeared several times in the history of a input file, only one entry will remain in the output. If you want to sort the history, then you have to specify how the sort key should be built. Use parentheses in the "History entry start regular expression" to group parts of the regular expression that should later be used for the sort key. Then specify the "History entry start sort key order" specifying a comma "," separated list of numbers referring to the position of the group in the regular expression. Because this is not so easy to get right immediately, you are able to test and improve the regular expressions and key-generation in a dedicated dialog by pressing the "Test your regular expressions"-button. Example: Assume a history that looks like this: /************************************************************************** ** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ ** ** \main\integration_branch_12 2 Apr 2001 10:45:41 tom ** Merged branch simon_branch_15. ** ** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry ** Improved the speed for subroutine convertToMesh(). ** Fixed crash. **************************************************************************/ The history start line matches the regular expression ".*\$Log.*\$.*". Then follow the history entries. The line with the "$Log$"-keyword begins with two "*" after which follows a space. &kdiff3; uses the first non-white-space string as "leading comment" and assumes that the history ends in the first line without this leading comment. In this example the last line ends with a string that also starts with two "*", but instead of a space character more "*" follow. Hence this line ends the history. If history sorting isn't required then the history entry start line regular expression could look like this. (This line is split in two because it wouldn't fit otherwise.) \s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* For details about regular expressions please see the regular expression documentation by Trolltech. Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space. In our example the history entry start contains first the version info with reg. exp. "\\main\\\S+", the date consisting of day "[0-9]+", month "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" and year "[0-9][0-9][0-9][0-9]", the time "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" and finally the developers login name ".*". Note that the "leading comment"-characters (in the example "**") will already be removed by &kdiff3; before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*". Because comment characters can differ in each file (e.g. C/C++ uses other comment characters than a Perl script) &kdiff3; takes care of the leading comment characters and you should not specify them in the regular expression. If you require a sorted history. Then the sortkey must be calculated. For this the relevant parts in the regular expression must be grouped by parentheses. (The extra parentheses can also stay in if history sorting is disabled.) \s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name. But if we want to sort by date and time, we need to construct a key with the elements in a different order of appearance: First the year, followed by month, day, time, version info and name. Hence the sortkey order to specify is "4,3,2,5,1,6". Because month names aren't good for sorting ("Apr" would be first) &kdiff3; detects in which order the month names were given and uses that number instead ("Apr"->"04"). And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting. Finally the resulting sort key for the first history entry start line will be: 2001 04 0002 10:45:41 integration_branch_12 tom For more information also see Merge Settings. Navigation And Editing Much navigation will be done with the scroll bars and the mouse but you can also navigate with the keys. If you click into either window then you can use the cursor buttons left, right, up, down, page up, page down, home, end, ctrl-home, ctrl-end as you would in other programs. The overview-column next to the vertical scroll bar of the input files can also be used for navigating by clicking into it. You can also use the wheel mouse to scroll up and down. In the merge output editor you can also use the other keys for editing. You can toggle between insert and overwrite mode with the insert key. (Default is insert-mode.) A left-mouse-button-click into any summary column will synchronise all windows to show the beginning of the same group of lines (as explained in section "Setting The Current Group And Synchronising Merge And Diff View Position"). The button bar also contains nine navigation buttons with which you can jump to the current/first/last difference, to the next/previous difference (ctrl-down/ctrl-up), to the next/previous conflict (ctrl-pgdown/ctrl-pgup), or to the next/previous unsolved conflict. Note that for &kdiff3; a "conflict" that was not automatically solved at the start of the merge stays a "conflict" even if it is solved. Hence the necessity to distinguish "unsolved conflicts". Auto-Advance There also is a button "Automatically go to next unsolved conflict after source selection" (Auto-Advance). If you enable this, then, when one source is selected, &kdiff3; will jump to and select the next unsolved conflict automatically. This can help when you always want to choose one source only. When you need both sources, or you want to edit after selecting, then you probably want to switch this off. Before proceeding to the next unsolved conflict &kdiff3; shows you the effect of your choice for a short time. This delay is adjustable in the Diff- & Merge-Settings: You can specify the "Auto-Advance delay" in milli seconds between 0 and 2000. Hint: Tired of many clicks? - Use a small Auto-Advance-delay and the shortcuts Ctrl-1/2/3 to select A/B/C for many conflicts. Select, Copy And Paste The input windows don't show a cursor, so selections must be made with the mouse by clicking with the left mouse button at the start, holding down the mousebutton and moving to the end, where you release the mouse button again. You can also select a word by double clicking it. In the merge output editor you can also select via the keyboard by holding the "shift"-button and navigation with the cursor keys. If the selection exceeds the visible range you can move the mouse over the window borders which causes &kdiff3; to scroll in that direction. For very large selections you can also use the navigation keys while holding down the mouse. E.g. use page up and page down to quickly go to a certain position. At the end position release the mouse button. In order to select everything in the current window use menu "Edit"->"Select All" (Ctrl-A). To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert). But there exists an option "Auto Copy Selection". If this is enabled, then whatever you select is copied immediately and you don't need to explicitely copy. But pay attention when using this because the contents of the clipboard might then be destroyed accidentally. "Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the selected text. "Paste" (Ctrl-V or Shift-Insert) inserts the text in the clipboard at the cursorposition or over the current selection. If you paste to either diff input window the contents of the clipboard will be shown in that window and the comparison will restart immediately. This is useful if you want to quickly grab a piece of text from somewhere and compare it with something else without first creating files. Saving Saving will only be allowed, when all conflicts were solved. If the file already exists and the "Backup files"-option is enabled then the existing file will be renamed with an ".orig"-extension, but if such a file exists it will be deleted. When you exit or start another diff-analysis and data wasn't saved yet, then &kdiff3; will ask if you want to save, cancel or proceed without saving. (&kdiff3; does not catch any signals. So if you "kill" &kdiff3; then your data will be lost.) Line endings are saved according to the normal method on the underlying operating system. For Unices each line ends with an linefeed-character "\n", while for Win32-based systems each line ends with a carriage-return + a linefeed "\r\n". &kdiff3; does not preserve the line-endings of the input files, which also means that you shouldn't use &kdiff3; with binary files. Finding Strings You can search for a string in any text-window of &kdiff3;. The "Find ..."-command (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string to search for. You can also select the windows which should be searched. Searching will always start at the top. Use the "Find Next"-command (F3) to proceed to the next occurrence. If you select to search several windows then the first window will be searched from top to bottom before the search starts in the next window at the top again, etc. Printing &kdiff3; supports printing for textfile differences. The "Print..."-command (Ctrl-P) in the File-menu opens a dialog that allows you to select the printer and to adjust other options. There are several possibilities to adjust the range. Due to different printing dialogs on different operating systems, the method to achieve certain range selections varies. All:Print everything. Current:Print a page starting at the first visible line in the window. (On systems without this option this can be achived by specifying page number 10000 for printing.) Selection: Before choosing to print select text with the mouse (like for copy and paste) in one of the diff input windows to define the start and end line. If no text in one of the diff input windows was selected, then this won't be an available choice. (On systems without this option this can be achived by specifying page number 9999 for printing.) Range:Specify the first and last page. Other important options for printing will be taken from the normal options: Font, font size Show line numbers Word wrap Colors etc. Landscape formatting is also recommended for printing. Options Options and the recent-file-list will be saved when you exit the program, and reloaded when you start it. (Menu Settings->Configure &kdiff3; ...) Font Select a fixed width font. (On some systems this dialog will also present variable width fonts, but you should not use them.) Italic Font for Deltas: If you select this, then text differences will be drawn with the italic version of the selected font. If the font doesn't support italic, then this does nothing. Colors Foreground color: Usually black. Background color: Usually white. Diff Background color: Usually light gray. Color A: Usually dark blue. Color B: Usually dark green. Color C: Usually dark magenta. Conflict Color: Usually red. Current range background color: Usually light yellow. Current range diff background color: Usually dark yellow. Color for manually selected diff ranges: Usually orange. Newest file color in directory comparison: Usually green. Oldest file color in directory comparison: Usually red. Middle age file color in directory comparison: Usually dark yellow. Color for missing files in directory comparison: Usually black. Changing the colors for directory comparison will be effective only when starting the next directory comparison. On systems with only 16 or 256 colors some colors are not available in pure form. On such systems the "Defaults"-button will choose a pure color. Editor Settings Tab inserts spaces: If this is disabled and you press the tabulator key, a tab-character is inserted, otherwise the appropriate amount of characters is inserted. Tab size: Can be adjusted for your specific needs. Default is 8. Auto indentation: When pressing Enter or Return the indentation of the previous line is used for the new line. Auto copy selection: Every selection is immediately copied to the clipboard when active and you needn't explicitely copy it. Line end style: When saving you can select what line end style you prefer. The default setting is the common choice for the used operating system. Diff Settings When comparing files, &kdiff3; first it tries to match lines that are equal in all input files. Only during this step it might ignore white space. The second step compares each line. In this step white space will not be ignored. Also during the merge white space will not be ignored. Ignore numbers: Default is off. Number characters ('0'-'9', '.', '-') will be ignored in the first part of the analysis in which the line matching is done. In the result the differences will be shown nevertheless, but they are treated as white space. Ignore C/C++ comments: Default is off. Changes in comments will be treated like changes in white space. Ignore case: Default is off. Case-differences of characters (like 'A' vs. 'a') will be treated like changes in white space. Preprocessor-Command: See next section. Line-Matching Preprocessor-Command: See next section. Try Hard: Try hard to find an even smaller delta. (Default is on.) This will probably be effective for complicated and big files. And slow for very big files. Merge Settings Auto Advance Delay (ms): When in auto-advance-mode this setting specifies how long to show the result of the selection before jumping to the next unsolved conflict. White space 2/3-file merge default: Automatically solve all white-space conflict by choosing the specified file. (Default is manual choice.) Useful if white space really isn't important in many files. If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts" in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments" then this auto-choice also applies for conflicts in numbers or comments. Auto merge regular expression: Regular expression for lines where &kdiff3; should automatically choose one source. See also Automatic Merge ... Run regular expression auto merge on merge start: If activated &kdiff3; runs the automatic merge using the "Auto merge regular expression" when a merge is started. History start regular expression: Regular expression for the start of the merge history entry. Usually this line contains the "$Log$"-keyword. Default value: ".*\$Log.*\$.*" History entry start regular expression: A merge history entry consists of several lines. Specify the regular expression to detect the first line (without the leading comment). Use parentheses to group the keys you want to use for sorting. If left empty, then &kdiff3; assumes that empty lines separate history entries. See also Automatic Merge ... History merge sorting: Enable version control history sorting. History entry start sort key order: Each parentheses used in the regular expression for the history start entry groups a key that can be used for sorting. Specify the list of keys (that are numbered in order of occurrence starting with 1) using ',' as separator (e.g. "4,5,6,1,2,3,7"). If left empty, then no sorting will be done. See also Automatic Merge ... Merge version control history on merge start: If activated &kdiff3; runs the automatic history merging using aforementioned options when a merge is started. Max number of history entries: &kdiff3; truncates the history list after the specified number of entries. Use -1 to avoid truncation. (Default is -1). Test your regular expressions This button shows a dialog that allows you to improve and test the regular expressions above. Just copy the respective data from your files into the example lines. The "Match results" will immediately show whether the match succeeds or not. The "Sort key result" will display the key used for history merge sorting. Irrelevant merge command: Specify a command of your own that should be called when &kdiff3; detects that for a three file merge the file from B doesn't contribute any relevant data that isn't already contained in the file from C. The command is called with the three filenames as parameters. Data matched by the "Auto merge regular expression" or in the history isn't considered relevant. Directory Merge These options are concerned with scanning the directory and handling the merge: See the Directory Comparison/Merge Docs for details. Yet there is one option here that is also relevant for saving single files: Backup files: When a file is saved and an older version already exists, then the original version will be renamed with an ".orig" extension. If an old backup file with ".orig" extension already exists then this will be deleted without backup. Regional and Language Options Language:Adjust the language of the user interface. Changing this option doesn't affect the running program. You have to exit and restart &kdiff3; so that the language is changed. (This option is not available in the KDE version of &kdiff3; because the language is adjustable in the global KDE settings.) Use the same encoding for everything: The following encoding options can be adjusted separately for each item or if this option is true, all values will take the first value. Local Encoding:Above the codec-selectors appears a note that tells you what the local encoding is. (This is not adjustable but for your information just in case you don't know your local encoding, but need to select it.) File Encoding for A/B/C: Adjust the file encoding for input files. This has an effect on how the special characters are interpreted. Since you can adjust each codec separately you can even compare and merge files that were saved using different codecs. File Encoding for Merge Output and Saving: When you have edited a file, then you can adjust which encoding will be used when saving to disk. File Encoding for Preprocessor Files:When you define preprocessors then they might not be able to operate on your codec. (e.g.: Your files are 16-bit-unicode and your preprocessor can only take 8-bit-ascii.) With this option you can define the encoding of preprocessor output. Right To Left Language:Some languages are written right to left. When this option is enabled, &kdiff3; draws the text from right to left in the diff input windows and in the merge output window. Note that if you start &kdiff3; with the command line option "--reverse" then all layouting will be done right to left too. (This is a feature provided by Qt.) This documentation was written assuming that "Right To Left Language" or reverse layout are disabled. So some references to "left" or "right" must be replaced by their respective counterpart if you use these options. Miscellaneous (These options and actions are available in menus or the buttonbar.) Show line numbers: You can select if line numbers should be shown for the input files. Show space and tabulator characters for differences: Sometimes the visible spaces and tabs are disturbing. You can turn this off. Show white space: Turn this off to suppress any highlighting of white-space-only changes in the text or overview-columns. (Note that this also applies to changes in numbers or comments if the options "Ignore numbers" or "Ignore C/C++ comments" are active.) Overview options: These choices are only available when you compare three files. In normal mode all differences are shown in one color-coded overview-column. But sometimes you are especially interested in the differences between only two of these three files. Selecting "A vs. B", "A vs. C" or "B vs. C"-overview will show a second overview column with the required information next to the normal overview. Word wrap diff windows: Wrap lines when their length would exceed the width of a window. Show Window A/B/C: Sometimes you want to use the space on the screen better for long lines. Hide the windows that are not important. (In the Windows-menu.) Toggle Split Orientation: Switch between diff windows shown next to each other (A left of B left of C) or above each other (A above B above C). This should also help for long lines. (In the Windows-menu.) Start a merge quickly: Sometimes you are viewing the deltas and decide to merge. "Merge current file" in the Directory-menu also works if you only compare two files. A single click starts the merge and uses the filename of the last input-file as the default output filename. (When this is used to restart a merge, then the output filename will be preserved.) Configuring Keyboard-Shortcuts Currently only the KDE-version supports user-configurable keyboard-shortcuts. (Menu Settings->Configure Shortcuts...) Preprocessor Commands &kdiff3; supports two preprocessor options. Preprocessor-Command: When any file is read, it will be piped through this external command. The output of this command will be visible instead of the original file. You can write your own preprocessor that fulfills your specific needs. Use this to cut away disturbing parts of the file, or to automatically correct the indentation etc. Line-Matching Preprocessor-Command: When any file is read, it will be piped through this external command. If a preprocessor-command (see above) is also specified, then the output of the preprocessor is the input of the line-matching preprocessor. The output will only be used during the line matching phase of the analysis. You can write your own preprocessor that fulfills your specific needs. Each input line must have a corresponding output line. The idea is to allow the user greater flexibility while configuring the diff-result. But this requires an external program, and many users don't want to write one themselves. The good news is that very often sed or perl will do the job. Example: Simple testcase: Consider file a.txt (6 lines): aa ba ca da ea fa And file b.txt (3 lines): cg dg eg Without a preprocessor the following lines would be placed next to each other: aa - cg ba - dg ca - eg da ea fa This is probably not wanted since the first letter contains the actually interesting information. To help the matching algorithm to ignore the second letter we can use a line matching preprocessor command, that replaces 'g' with 'a': sed 's/g/a/' With this command the result of the comparison would be: aa ba ca - cg da - dg ea - eg fa Internally the matching algorithm sees the files after running the line matching preprocessor, but on the screen the file is unchanged. (The normal preprocessor would change the data also on the screen.) <command>sed</command> Basics This section only introduces some very basic features of sed. For more information see info:/sed or http://www.gnu.org/software/sed/manual/html_mono/sed.html. A precompiled version for Windows can be found at http://unxutils.sourceforge.net. Note that the following examples assume that the sed-command is in some directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute path for the command. Also note that the following examples use the single quotation mark (') which won't work for Windows. On Windows you should use the double quotation marks (") instead. In this context only the sed-substitute-command is used: sed 's/REGEXP/REPLACEMENT/FLAGS' Before you use a new command within &kdiff3;, you should first test it in a console. Here the echo-command is useful. Example: echo abrakadabra | sed 's/a/o/' -> obrakadabra This example shows a very simple sed-command that replaces the first occurance of "a" with "o". If you want to replace all occurances then you need the "g"-flag: echo abrakadabra | sed 's/a/o/g' -> obrokodobro The "|"-symbol is the pipe-command that transfers the output of the previous command to the input of the following command. If you want to test with a longer file then you can use cat on Unix-like systems or type on Windows-like systems. sed will do the substitution for each line. cat filename | sed options Examples For <command>sed</command>-Use In &kdiff3; Ignoring Other Types Of Comments Currently &kdiff3; understands only C/C++ comments. Using the Line-Matching-Preprocessor-Command you can also ignore other types of comments, by converting them into C/C++-comments. Example: To ignore comments starting with "#", you would like to convert them to "//". Note that you also must enable the "Ignore C/C++-Comments" option to get an effect. An appropriate Line-Matching-Preprocessor-Command would be: sed 's/#/\/\//' Since for sed the "/"-character has a special meaning, it is necessary to place the "\"-character before each "/" in the replacement-string. Sometimes the "\" is required to add or remove a special meaning of certain characters. The single quotation marks (') before and after the substitution-command are important now, because otherwise the shell will try to interpret some special characters like '#', '$' or '\' before passing them to sed. Note that on Windows you will need the double quotation marks (") here. Windows substitutes other characters like '%', so you might have to experiment a little bit. Caseinsensitive Diff Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase: sed 's/\(.*\)/\U\1/' Here the ".*" is a regular expression that matches any string and in this context matches all characters in the line. The "\1" in the replacement string refers to the matched text within the first pair of "\(" and "\)". The "\U" converts the inserted text to uppercase. Ignoring Version Control Keywords CVS and other version control systems use several keywords to insert automatically generated strings (info:/cvs/Keyword substitution). All of them follow the pattern "$KEYWORD generated text$". We now need a Line-Matching-Preprocessor-Command that removes only the generated text: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' The "\|" separates the possible keywords. You might want to modify this list according to your needs. The "\" before the "$" is necessary because otherwise the "$" matches the end of the line. While experimenting with sed you might come to understand and even like these regular expressions. They are useful because there are many other programs that also support similar things. Ignoring Numbers Ignoring numbers actually is a built-in option. But as another example, this is how it would look as a Line-Matching-Preprocessor-command. sed 's/[0123456789.-]//g' Any character within '[' and ']' is a match and will be replaced with nothing. Ignoring Certain Columns Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are other columns you want to preserve for analysis. In the following example the first five columns (characters) are ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved. sed 's/.....\(..........\).....\(.*\)/\1\2/' Each dot '.' matches any single character. The "\1" and "\2" in the replacement string refer to the matched text within the first and second pair of "\(" and "\)" denoting the text to be preserved. Combining Several Substitutions Sometimes you want to apply several substitutions at once. You can then use the semicolon ';' to separate these from each other. Example: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO Using <command>perl</command> instead of <command>sed</command> Instead of sed you might want to use something else like perl. perl -p -e 's/REGEXP/REPLACEMENT/FLAGS' But some details are different in perl. Note that where sed needed "\(" and "\)" perl requires the simpler "(" and ")" without preceding '\'. Example: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Order Of Preprocessor Execution The data is piped through all internal and external preprocessors in the following order: Normal preprocessor, Line-Matching-Preprocessor, Ignore case (conversion to uppercase), Detection of C/C++ comments, Ignore numbers, Ignore white space The data after the normal preprocessor will be preserved for display and merging. The other operations only modify the data that the line-matching-diff-algorithm sees. In the rare cases where you use a normal preprocessor note that the line-matching-preprocessor sees the output of the normal preprocessor as input. Warning The preprocessor-commands are often very useful, but as with any option that modifies your texts or hides away certain differences automatically, you might accidentally overlook certain differences and in the worst case destroy important data. For this reason during a merge if a normal preprocessor-command is being used &kdiff3; will tell you so and ask you if it should be disabled or not. But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until all conflicts are solved. If you disabled "Show White Space" then the differences that were removed with the Line-Matching-Preprocessor-command will also be invisible. If the Save-button remains disabled during a merge (because of remaining conflicts), make sure to enable "Show White Space". If you don't wan't to merge these less important differences manually you can select "Choose [A|B|C] For All Unsolved White space Conflicts" in the Merge-menu. Directory Comparison and Merge with &kdiff3; Introduction into Directory Comparison and Merge Often programmers must modify many files in a directory to achieve their purpose. For this &kdiff3; also lets you compare and merge complete directories recursively! Even though comparing and merging directories seems to be quite obvious, there are several details that you should know about. Most important is of course the fact that now many files might be affected by each operation. If you don't have backups of your original data, then it can be very hard or even impossible to return to the original state. So before starting a merge, make sure that your data is safe, and going back is possible. If you make an archive or use some version control system is your decision, but even experienced programmers and integrators need the old sources now and then. And note that even though I (the author of &kdiff3;) try to do my best, I can't guarantee that there are no bugs. According to the GNU-GPL there is NO WARRANTY whatsoever for this program. So be humble and always keep in mind:
To err is human, but to really mess things up you need a computer.
So this is what this program can do for you: &kdiff3; ... ... reads and compares two or three directories recursively, ... takes special care of symbolic links, ... lets you browse files on mouse double click, ... for each item proposes a merge operation, which you can change before starting the directory merge, ... lets you simulate the merge and lists the actions that would take place, without actually doing them, ... lets you really do the merge, and lets you interact whenever manual interaction is needed, ... lets you run the selected operation for all items (key F7) or the selected item (key F6), ... lets you continue the merge after manual interaction with key F7, ... optionally creates backups, with the ".orig" extension, ...
Starting Directory Comparison Or Merge This is very similar to the single file merge and comparison. You just have to specify directories on the command line or in the file-open dialog. Compare/Merge two directories: kdiff3 dir1 dir2 kdiff3 dir1 dir2 -o destdir If no destination directory is specified, then &kdiff3; will use dir2. Compare/Merge three directories: kdiff3 dir1 dir2 dir3 kdiff3 dir1 dir2 dir3 -o destdir When three directories are merged then dir1 is used as the base for the merge. If no destination directory is specified, then &kdiff3; will use dir3 as the destination directory for the merge. Note that only the comparison starts automatically, not the merge. For this you first must select a menu entry or the key F7. (More details later.) Directory Merge Visible Information While reading the directories a message-box appears that informs you of the progress. If you abort the directory scan, then only files that have been compared until then will be listed. When the directory scan is complete then &kdiff3; will show a listbox with the results left, ... ... and details about the currently selected item on the right: The Name Column Each file and directory that was found during the scan is shown here in a tree. You can select an item by clicking it with the mouse once. The directories are collapsed by default. You can expand and collapse them by clicking on the "+"/"-" or by double-clicking the item or by using the left/right-arrow-keys. The "Directory"-menu also contains two actions "Fold all subdirs" and "Unfold all subdirs" with which you can collapse or expand all directories at once. If you double-click a file item then the file comparison starts and the file-diff-window will appear. The image in the name column reflects the file type in the first directory ("A"). It can be one of these: Normal file Normal directory (directory-image) Link to a file (file-image with a link arrow) Link to a directory (directory-image with a link arrow) If the file type is different in the other directories, then this is visible in the columns A/B/C and in the window that shows the details about the selected item. Note that for such a case no merge operation can be selected automatically. When starting the merge, then the user will be informed of problems of that kind. The Columns A/B/C and the Coloring Scheme As can be seen in the image above the colors red, green, yellow and black are used in the columns A/B/C. Black: This item doesn't exist in this directory. Green: Newest item. Yellow: Older than green, newer than red. Red: Oldest item. But for items that were identical in the comparison their color also is identical even if the age is not. Directories are considered equal if all items they contain are identical. Then they also will have the same color. But the age of a directory is not considered for its color. The idea for this coloring scheme I came upon in dirdiff. The colors resemble the colors of a leaf that is green when new, turns yellow later and red when old. The Operation Column After comparing the directories &kdiff3; also evaluates a proposal for a merge operation. This is shown in the "Operation" column. You can modify the operation by clicking on the operation you want to change. A small menu will popup and allows you to select an operation for that item. (You can also select the most needed operations via keyboard. Ctrl+1/2/3/4/Del will select A/B/C/Merge/Delete respectively if available.) This operation will be executed during the merge. It depends on the item and on the merge-mode you are in, what operations are available. The merge-mode is one of Three directory-merge ("A" is treated as older base of both). Two directory-merge. Two directory-sync-mode (activate via option "Synchronize Directories"). In three directory merge the operation proposal will be: If for an item ... ... all three directories are equal: Copy from C ... A and C are equal but B is not: Copy from B (or if B does not exist, delete the destination if exists) ... A and B are equal but C is not: Copy from C (or if C does not exist, delete the destination if exists) ... B and C are equal but A is not: Copy from C (or if C does not exist, delete the destination if exists) ... only A exists: Delete the destination (if exists) ... only B exists: Copy from B ... only C exists: Copy from C ... A, B and C are not equal: Merge ... A, B and C don't have the same file type (e.g. A is a directory, B is a file): "Error: Conflicting File Types". While such items exist the directory merge cannot start. In two directory merge the operation proposal will be: If for an item ... ... both directories are equal: Copy from B ... A exists, but not B: Copy from A ... B exists, but not A: Copy from B ... A and B exist but are not equal: Merge ... A and B don't have the same file type (e.g. A is a directory, B is a file): "Error: Conflicting File Types". While such items exist the directory merge cannot start. Sync-mode is active if only two directories and no explicit destination were specified and if the option "Synchronize directories" is active. &kdiff3; then selects a default operation so that both directories are the same afterwards. If for an item ... ... both directories are equal: Nothing will be done. ... A exists, but not B: Copy A to B ... B exists, but not A: Copy B to A ... A and B exist, but are not equal: Merge and store the result in both directories. (For the user the visible save-filename is B, but then &kdiff3; copies B also to A.) ... A and B don't have the same file type (e.g. A is a directory, B is a file): "Error: Conflicting File Types". While such items exist the directory merge cannot start. When two directories are merged and the option "Copy newer instead of merging" is selected, then &kdiff3; looks at the dates and proposes to choose the newer file. If the files are not equal but have equal dates, then the operation will contain "Error: Dates are equal but files are not." While such items exist the directory merge cannot start. The Status Column During the merge one file after the other will be processed. The status column will show "Done" for items where the merge operation has succeeded, and other texts if something unexpected happened. When a merge is complete, then you should make a last check to see if the status for all items is agreeable. Statistics Columns When the file comparison mode "Full Analysis" is enabled in the options, then &kdiff3; will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace conflicts. (The solved-column will only show when comparing or merging three directories.) Selecting Listed Files Several options influence which files are listed here. Some are accessible in the settings dialog. The Directory-menu contains the entries: "Show Identical Files": Files that have been detected equal in all input directories. "Show Different Files": Files that exist in two or more directories but are not equal. "Show Files only in A": Files that exist only in A, but not in B or C. "Show Files only in B": Files that exist only in B, but not in A or B. "Show Files only in C": Files that exist only in C, but not in A or B. Activate only the "Show"-options for the items you want listed. If for example you only want to list all items that exist either in A or in B but not in both, you'll have to activate "Show Files only in A" and "Show Files only in B" and deactivate all others ("Show Identical Files", "Show Different Files", "Show Files only in C"). The list will be updated immediately to reflect the change. These options also apply for directories with one exception: Disabling "Show Different Files" will not hide any complete directories. This will work only for files within. Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting &kdiff3;. Doing A Directory Merge You can either merge the currently selected item (file or directory), or all items. When you have made all your operation choices (in all subdirectories too) then you can start the merge. Be aware that if you didn't specify a destination directory explicitely, then the destination will be "C" in three directory mode, "B" in two directory merge mode, and in sync-mode it will be "A" or/and "B". If you have specified a destination directory also check that all items that should be in the output, are in the tree. There are some options that cause certain items to be omitted from the directory comparison and merge. Check these options to avoid unpleasant surprises: "Recursive Directories": If this is off, then items in subdirectories will not be found. "Pattern"/"Anti-Pattern": Include/exclude items that match "Find hidden files and directories" "Show"-options (Show Identical/Different Files, Files only in A/B/C) If you change the settings in order to list more files, you must do a rescan via menu "Directory"->"Rescan" yourself. (The reason for this is that for faster comparison-speed &kdiff3; omits the comparison for files suppressed by these criteria.) If you changed your file and dir patterns to exclude files, then the file-list will immediately be updated on closing the options-dialog. Note that when you write to a completely new directory then you usually also want to copy the identical files. In that case enable the "Show Identical Files"-option. If your destination-directory is one of the inputs, then this isn't necessary because the file is already there. If you are satisfied so far, the rest is easy. To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu or press F7 (which is the default shortcut). To merge only the current item: Select "Run Operation For Current Item" or press F6. If due to conflicting filetypes still some items with invalid operations exist, then a messagebox will appear and these items will be pointed out, so you can select a valid operation for the item. If you merge all items a dialog will appear giving you the options "Do it", "Simulate it" and "Cancel". Select "Simulate it" if you want to see what would be done without actually doing it. A verbose list of all operations will be shown. Otherwise select "Do it" to really start merging. Then &kdiff3; will run the specified operation for all items. If manual interaction is required (single file merge), then a merge window will open (see the big screenshot). When you have finished with manually merging a file, again select "Start/Continue directory merge" or the key F7. If you haven't saved it yet, a dialog will ask you to do so. Then &kdiff3; will continue with the next item. When &kdiff3; encounters an error, it will tell you so and will show the verbose-status-information. At the bottom of this list, there will be some error messages which should help you to understand the cause of the problem. When you continue merging (F7 key) &kdiff3; will give you the choice to retry or skip the item that caused the problem. This means that before continuing you can choose another operation or solve the problem by other means. When the merge is complete, then &kdiff3; will inform you via a message box. If some items were merged individually before running the directorymerge then &kdiff3; remembers this (while this merge-session goes on), and doesn't merge them again when later the merge for all items is run. Even when the merge was skipped or nothing was saved these items count as completed. Only when you change the merge operation the "Done"-status of the item will be removed and it can be merged again. Options for Comparing and Merging Directories The &kdiff3;-preferences (menu "Settings"->"Configure &kdiff3;") has a section called "Directory Merge" with these options: Recursive Directories: Select whether to search directories recursively. File Pattern(s): Only files that match any pattern here will be put in the tree. More than one pattern may be specified here by using the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h"). Default is "*". This pattern is not used on directories. File Anti-Pattern(s): Files that match this pattern will be excluded from the tree. More than one pattern may be specified here via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default is "*.orig;*.o;*.obj". Directory Anti-Pattern(s): Directories that match this pattern will be excluded from the tree. More than one pattern may be specified here via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default is "CVS;deps;.svn". Use CVS-Ignore: Ignore files and directories that would also be ignored by CVS. Many automatically generated files are ignored by CVS. The big advantage is that this can be directory specific via a local ".cvsignore"-file. (See info:/cvs/cvsignore.) Find Hidden Files and Directories: On some file systems files have an "Hidden"-attribute. On other systems a filename starting with a dot "." causes it to be hidden. This option allows you to decide whether to include these files in the tree or not. Default is on. Follow File Links: For links to files: When disabled, then the symbolic links are compared. When enabled, then the files behind the links are compared. Default is off. Follow Directory Links: For links to directories: When disabled, then the symbolic links will be compared. When enabled then the link will be treated like a directory and it will be scanned recursively. (Note that the program doesn't check if the link is "recursive". So for example a directory that contains a link to the directory would cause an infinite loop, and after some time when the stack overflows or all memory is used up, crash the program.) Default is off. Case Sensitive Filename Comparison: Default is false on Windows, true for other operating systems. File Comparison Mode: Binary Comparison: This is the default file comparison mode. Full Analysis: Do a full analysis of each file and show the statistics information columns. (Number of solved, unsolved, nonwhite and white conflicts.) The full analysis is slower than a simple binary analysis, and much slower when used on files that don't contain text. (Specify the appropriate file-antipatterns.) Trust the modification date: If you compare big directories over a slow network, it might be faster to compare the modification dates and file length alone. But this speed improvement comes with the price of a little uncertainty. Use this option with care. Default is off. Trust the size: Similar to trusting the modification date. No real comparison happens. Two files are considered equal if their file-sizes are equal. This is useful when the file-copy operation didn't preserve the modification date. Use this option with care. Default is off. Synchronize Directories: Activates "Sync-Mode" when two directories are compared and no explicit destination directory was specified. In this mode the proposed operations will be chosen so that both source directories are equal afterwards. Also the merge result will be written to both directories. Default is off. Copy newer instead of merging: Instead of merging the proposed operation will copy the newer source if changes happened. (Considered unsafe, because it implies that you know, that the other file hasn't been edited too. Check to make sure in every case.) Default is off. Backup files: If a file or complete directory is replaced by another or is deleted then the original version will be renamed with an ".orig" extension. If an old backup file with ".orig" extension already exists then this will be deleted without backup. This also affects the normal merging of single files, not only in directory-merge mode. Default is on. Other Functions in Directory Merge Window Split/Full Screen Mode Usually the directory merge list view remains visible while a single file is compared or merged. With the mouse you can move the the splitter bar that separates the file list from the text-diff windows. If you don't want this, you can disable "Split Screen View" in the "Directory"-menu. Then you can use "Toggle View" in the "Directory"-menu to switch between the file list and the text-diff view that then occupy the full screen. Comparing or Merging a Single File Probably you will prefer a simple double mouse click on a file in order to compare it. Nevertheless there also exists an entry in the "Directory"-menu. You can also directly merge a single file by selecting it and choosing "Merge current file" in the "Merge"-Menu. On saving the result, the status will be set to done, and the file will not be merged again if a directory merge is started. But note that this status information will be lost when you rerun a directory scan: "Directory"-menu: "Rescan" Comparing or Merging Files with Different Names Sometimes you need to compare or merge files with different names (e.g. the current file and the backup in the same folder). Select the exact file by clicking onto the icon in the column A, B or C. The first file selected thus will be marked with an "A", the second and third with "B" and "C" regardless on what column they are in. Only up to three files can be chosen like this. Proceed by choosing "Compare Explicitely Selected Files" or "Merge Explicitely Selected Files" from the "Directory"-menu. For your convenience these menu entries also appear as context menu when you right-click the last selected file. The comparison or merge of a file will happen in the same window. If this method is used for directories a new window will be opened.
Miscellaneous Topics Networktransparency via KIO KIO-Slaves KDE supports networktransparency via KIO-slaves. &kdiff3; uses this for reading input files and for scanning directories. This means that you can specify files and directories on local and remote resources via URLs. Example: kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp kdiff3 tar:/home/hacker/archive.tar.gz/dir ./dir The first line compares a local file with a file on an FTP-server. The second line compares a directory within an compressed archive with a local directory. Other KIO-slaves that are interesting are: Files from the WWW (http:), Files from the FTP (ftp:), Encrypted file transfer (fish:, sftp:), Windows-ressources (smb:), Local files (file:), Other things that are possible, but probably less useful are: Man-pages (man:), Info-pages (info:), How To Write URLs An URL has a different syntax compared with paths for local files and directories. Some things should be considered: A path can be relative and can contain "." or "..". This is not possible for URLs which are always absolute. Special characters must be written with "escaping". ("#"->"%23", space->"%20", etc.) E.g. A file with the name "/#foo#" would have the URL "file:/%23foo%23". When URLs don't work as expected, try to open them in Konqueror first. Capabilities of KIO-Slaves Networktransparency has one drawback: Not all ressources have the same cababilities. Sometimes this is due to the file system of the server, sometimes due to the protocol. Here is a short list of restrictions: Sometimes there is no support for links. Or there is no way to distinguish if a link points to a file or a directory; always assuming a file. (ftp:, sftp:). Can't always determine the filesize. Limited support for permissions. No possibility to modify permissions or modification time, so permissions or time of a copy will differ from the original. (See the option "Trust the size".) (To modify permissions or modification time is only possible for local files.) Using &kdiff3; as a KPart &kdiff3; is a KPart. Currently it implements the KParts::ReadOnlyPart-interface. It's main use is as difference-viewer in KDevelop. KDevelop always starts the internal difference viewer first. To invoke &kdiff3; press the right mouse button on the difference viewer window and select "Show in KDiff3Part" from the contextmenu. &kdiff3; normally requires two complete files as input. When used as part &kdiff3; will assume that the inputfile is a patch-file in the unified format. &kdiff3; then retrieves the original filenames from the patch-file. At least one of the two files must be available. &kdiff3; will then invoke patch to recreate the second file. In Konqueror you can select a patch-file and select "Preview in"-"KDiff3Part" from the contextmenu. Be aware that this won't work if none of the original files are available, and it is not reliable if the original file(s) have changed since the patch-file was generated. When run as a part &kdiff3; only provides the a two-file-diff, a very small toolbar and menu. Merging or directory-comparison are not supported then. Questions and Answers &reporting.bugs; &updating.documentation; Why is it called "&kdiff3;"? Tools named "KDiff" and "KDiff2" (now called "Kompare") already exist. Also "KDiff3" should suggest that it can merge like the "diff3"-tool in the Diff-Tool collection. Why did I release it under GPL? I'm using GPL programs for a very long time now and learned very much by having a look at many of the sources. Hence this is my "Thank You" to all programmers that also did so or will do the same. Some buttons and functions are missing. What's wrong? You compiled from source but you probably didn't specify the correct KDE-prefix with configure. By default configure wants to install in /usr/local but then KDE can't find the user-interface ressource file (i.e. kdiff3ui.rc). The README-file contains more information about the correct prefix. Often lines that are similar but not identical appear next to each other but sometimes not. Why? Lines where only the amount of white space characters is different are treated as "equal" at first, while just one different non-white character causes the lines to be "different". If similar lines appear next to each other, this actually is coincidence but this fortunately is often the case. See also Manual Diff Help. Why must all conflicts be solved before the merge result can be saved? For each equal or different section the editor in the merge result window remembers where it begins or ends. This is needed so that conflicts can be solved manually by simply selecting the source button (A, B or C). This information is lost while saving as text and it is too much effort to create a special file format that supports saving and restoring all necessary information. How can I synchronise the diff and merge views, so that all views show the same text position? Click into the summary column left of the text. (See also here.) Why does the editor in the merge result window not have an "undo"-function? This was too much effort until now. You can always restore a version from one source (A, B or C) by clicking the respective button. For big editing the use of another editor is recommended anyway. When I removed some text, then suddenly "<No src line>" appeared and cannot be deleted. What does that mean and how can one remove this? For each equal or different section the editor in the merge result window remembers where it begins or ends. "<No src line>" means that there is nothing left in a section, not even a new line character. This can happen either while merging automatically or by editing. This is no problem, since this hint won't appear in the saved file. If you want the orignal source back just select the section (click on the left summary column) and then click the source button with the needed contents (A/B or C). Why doesn't &kdiff3; support syntax-highlighting? &kdiff3; already uses many colors for difference highlighting. More highlighting would be confusing. Use another editor for this. Can I use &kdiff3; to compare OpenOffice.Org, Word, Excel, PDF-, &etc; files? Although &kdiff3; will analyse any kind of file the result will probably not be very satisfactory for you. &kdiff3; was made to compare pure text files. OpenOffice, Word, Excel etc. store much more information in the files (about fonts, pictures, pages, colors etc.) which &kdiff3; doesn't know about. So &kdiff3; will show you the contents of the file interpreted as pure text, but this might be unreadable or at least it will look very odd. Since most programs nowadays store their contents in XML-format, you might be able to read it as pure text. So if the change was only small, &kdiff3; still might help you. The best solution if you only want to compare the text (without embedded objects like pictures) is to use "Select All" and "Copy" in your program to copy the interesting text to the clipoard and then in &kdiff3; paste the text into either diff input window. (See also Select, Copy And Paste.) Where has the the directory option "List only deltas" gone? There are now several "Show"-options in the directory menu. Disabling "Show identical files" will achieve what enabling "List only deltas" used to do. How can I make a big selection in the diff input window because scrolling takes so long? Start the selection as usual (click and hold the left mouse button). Then use the navigation keys (e.g. page up, page down) while holding the left mouse button down. (See also Select, Copy And Paste.) There is so much information here, but your question is still not answered? Please send me your question. I appreciate every comment. Credits and License &kdiff3; - File and Directory Comparison and Merge Tool Program copyright 2002-2007 Joachim Eibl joachim.eibl at gmx.de Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you! Documentation Copyright © 2002-2007 Joachim Eibl joachim.eibl at gmx.de &underFDL; &underGPL; Installation How to obtain &kdiff3; You can download the latest version of &kdiff3; from its homepage http://kdiff3.sourceforge.net. &kdiff3; is also available for other platforms. See the homepage for details. Requirements In order to successfully use all features of &kdiff3;, you need &kde; >4.4. For information about how to run &kdiff3; on other platforms without KDE please see the homepage. You can find a list of changes at http://kdiff3.sourceforge.net/ChangeLog or in the "ChangeLog"-file of the source package. Compilation and Installation &install.compile.documentation; If you don't use KDE, follow the instructions for Qt-only systems in the README file. &documentation.index;
kdiff3-0.9.97/doc/en/merge_current.png0000644000175100001440000000027111626145653017047 0ustar joachimusersPNG  IHDRZl pHYsekIDAT8˽ 0o9i%* <9)6p5GAHH ~ȼ6?JMmF4@IFn=F6ACFIdo D˭ھV/U6.\IENDB`kdiff3-0.9.97/doc/en/preprocessors.html0000644000175100001440000005243411127227043017275 0ustar joachimusersPreprocessor Commands
Preprocessor Commands

Preprocessor Commands

KDiff3 supports two preprocessor options.

Preprocessor-Command:

When any file is read, it will be piped through this external command. The output of this command will be visible instead of the original file. You can write your own preprocessor that fulfills your specific needs. Use this to cut away disturbing parts of the file, or to automatically correct the indentation etc.

Line-Matching Preprocessor-Command:

When any file is read, it will be piped through this external command. If a preprocessor-command (see above) is also specified, then the output of the preprocessor is the input of the line-matching preprocessor. The output will only be used during the line matching phase of the analysis. You can write your own preprocessor that fulfills your specific needs. Each input line must have a corresponding output line.

The idea is to allow the user greater flexibility while configuring the diff-result. But this requires an external program, and many users don't want to write one themselves. The good news is that very often sed or perl will do the job.

Example: Simple testcase: Consider file a.txt (6 lines):

      aa
      ba
      ca
      da
      ea
      fa
And file b.txt (3 lines):
      cg
      dg
      eg
Without a preprocessor the following lines would be placed next to each other:
      aa - cg
      ba - dg
      ca - eg
      da
      ea
      fa
This is probably not wanted since the first letter contains the actually interesting information. To help the matching algorithm to ignore the second letter we can use a line matching preprocessor command, that replaces 'g' with 'a':
   sed 's/g/a/'
With this command the result of the comparison would be:
      aa
      ba
      ca - cg
      da - dg
      ea - eg
      fa
Internally the matching algorithm sees the files after running the line matching preprocessor, but on the screen the file is unchanged. (The normal preprocessor would change the data also on the screen.)

sed Basics

This section only introduces some very basic features of sed. For more information see info:/sed or http://www.gnu.org/software/sed/manual/html_mono/sed.html. A precompiled version for Windows can be found at http://unxutils.sourceforge.net. Note that the following examples assume that the sed-command is in some directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute path for the command.

Note

Also note that the following examples use the single quotation mark (') which won't work for Windows. On Windows you should use the double quotation marks (") instead.

In this context only the sed-substitute-command is used:

   sed 's/REGEXP/REPLACEMENT/FLAGS'
Before you use a new command within KDiff3, you should first test it in a console. Here the echo-command is useful. Example:
   echo abrakadabra | sed 's/a/o/'
   -> obrakadabra
This example shows a very simple sed-command that replaces the first occurance of "a" with "o". If you want to replace all occurances then you need the "g"-flag:
   echo abrakadabra | sed 's/a/o/g'
   -> obrokodobro
The "|"-symbol is the pipe-command that transfers the output of the previous command to the input of the following command. If you want to test with a longer file then you can use cat on Unix-like systems or type on Windows-like systems. sed will do the substitution for each line.
   cat filename | sed options

Examples For sed-Use In KDiff3

Ignoring Other Types Of Comments

Currently KDiff3 understands only C/C++ comments. Using the Line-Matching-Preprocessor-Command you can also ignore other types of comments, by converting them into C/C++-comments. Example: To ignore comments starting with "#", you would like to convert them to "//". Note that you also must enable the "Ignore C/C++-Comments" option to get an effect. An appropriate Line-Matching-Preprocessor-Command would be:

   sed 's/#/\/\//'
Since for sed the "/"-character has a special meaning, it is necessary to place the "\"-character before each "/" in the replacement-string. Sometimes the "\" is required to add or remove a special meaning of certain characters. The single quotation marks (') before and after the substitution-command are important now, because otherwise the shell will try to interpret some special characters like '#', '$' or '\' before passing them to sed. Note that on Windows you will need the double quotation marks (") here. Windows substitutes other characters like '%', so you might have to experiment a little bit.

Caseinsensitive Diff

Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase:

   sed 's/\(.*\)/\U\1/'
Here the ".*" is a regular expression that matches any string and in this context matches all characters in the line. The "\1" in the replacement string refers to the matched text within the first pair of "\(" and "\)". The "\U" converts the inserted text to uppercase.

Ignoring Version Control Keywords

CVS and other version control systems use several keywords to insert automatically generated strings (info:/cvs/Keyword substitution). All of them follow the pattern "$KEYWORD generated text$". We now need a Line-Matching-Preprocessor-Command that removes only the generated text:

   sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
The "\|" separates the possible keywords. You might want to modify this list according to your needs. The "\" before the "$" is necessary because otherwise the "$" matches the end of the line.

While experimenting with sed you might come to understand and even like these regular expressions. They are useful because there are many other programs that also support similar things.

Ignoring Numbers

Ignoring numbers actually is a built-in option. But as another example, this is how it would look as a Line-Matching-Preprocessor-command.

   sed 's/[0123456789.-]//g'
Any character within '[' and ']' is a match and will be replaced with nothing.

Ignoring Certain Columns

Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are other columns you want to preserve for analysis. In the following example the first five columns (characters) are ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved.

   sed 's/.....\(..........\).....\(.*\)/\1\2/'
Each dot '.' matches any single character. The "\1" and "\2" in the replacement string refer to the matched text within the first and second pair of "\(" and "\)" denoting the text to be preserved.

Combining Several Substitutions

Sometimes you want to apply several substitutions at once. You can then use the semicolon ';' to separate these from each other. Example:

   echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/'
   -> OBROKODOBRO

Using perl instead of sed

Instead of sed you might want to use something else like perl.

   perl -p -e 's/REGEXP/REPLACEMENT/FLAGS'
But some details are different in perl. Note that where sed needed "\(" and "\)" perl requires the simpler "(" and ")" without preceding '\'. Example:
   sed 's/\(.*\)/\U\1/'
   perl -p -e 's/(.*)/\U\1/'

Order Of Preprocessor Execution

The data is piped through all internal and external preprocessors in the following order:

  • Normal preprocessor,

  • Line-Matching-Preprocessor,

  • Ignore case (conversion to uppercase),

  • Detection of C/C++ comments,

  • Ignore numbers,

  • Ignore white space

The data after the normal preprocessor will be preserved for display and merging. The other operations only modify the data that the line-matching-diff-algorithm sees.

In the rare cases where you use a normal preprocessor note that the line-matching-preprocessor sees the output of the normal preprocessor as input.

Warning

The preprocessor-commands are often very useful, but as with any option that modifies your texts or hides away certain differences automatically, you might accidentally overlook certain differences and in the worst case destroy important data.

For this reason during a merge if a normal preprocessor-command is being used KDiff3 will tell you so and ask you if it should be disabled or not. But it won't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until all conflicts are solved. If you disabled "Show White Space" then the differences that were removed with the Line-Matching-Preprocessor-command will also be invisible. If the Save-button remains disabled during a merge (because of remaining conflicts), make sure to enable "Show White Space". If you don't wan't to merge these less important differences manually you can select "Choose [A|B|C] For All Unsolved White space Conflicts" in the Merge-menu.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/dirmerge.html0000644000175100001440000001506111127227043016155 0ustar joachimusersChapter 3. Directory Comparison and Merge with KDiff3
Directory Comparison and Merge with KDiff3

Chapter 3. Directory Comparison and Merge with KDiff3

Introduction into Directory Comparison and Merge

Often programmers must modify many files in a directory to achieve their purpose. For this KDiff3 also lets you compare and merge complete directories recursively!

Even though comparing and merging directories seems to be quite obvious, there are several details that you should know about. Most important is of course the fact that now many files might be affected by each operation. If you don't have backups of your original data, then it can be very hard or even impossible to return to the original state. So before starting a merge, make sure that your data is safe, and going back is possible. If you make an archive or use some version control system is your decision, but even experienced programmers and integrators need the old sources now and then. And note that even though I (the author of KDiff3) try to do my best, I can't guarantee that there are no bugs. According to the GNU-GPL there is NO WARRANTY whatsoever for this program. So be humble and always keep in mind:

To err is human, but to really mess things up you need a computer.

So this is what this program can do for you: KDiff3 ...

  • ... reads and compares two or three directories recursively,

  • ... takes special care of symbolic links,

  • ... lets you browse files on mouse double click,

  • ... for each item proposes a merge operation, which you can change before starting the directory merge,

  • ... lets you simulate the merge and lists the actions that would take place, without actually doing them,

  • ... lets you really do the merge, and lets you interact whenever manual interaction is needed,

  • ... lets you run the selected operation for all items (key F7) or the selected item (key F6),

  • ... lets you continue the merge after manual interaction with key F7,

  • ... optionally creates backups, with the ".orig" extension,

  • ...



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/dirbrowser.png0000644000175100001440000001767711626145653016412 0ustar joachimusersPNG  IHDR,0PLTEܑڃ܉Ŀޠx}ꖠɟwvyzxb ;聀|tylxc|X}NF{=y4z+x$rnm dZO yoe)g.l3q;v?x@zByAyBxAyEyM}PV[qҶ|}rzp{lyg|_}VyJw3e(^0cr~zzzuvurrqklkjsegiecmZaba^]^[[ZXZXSUSRSRQTQOKMKJIIHIDEC@?@;:;898676232,/,*+*()(#$# "  +!     foq %zIDATx_hWNji>ZiM<;fQnc{-N7Ο_ݽM染E(R6X6؈a@ .,,s̙9#H?#hQF#Is|33~/u!<9<' X@pᆟ+\gl#Wx,( =Bs/>b*也W8mVQ&nVތI7My:UF1[%F-|8(~%XʙU%v+$7CCX]Ű#Q1ɉdKE]PUQ*OEfe_%2hbx~+?l#3QHl\݋TDEXFgSD{ eDNu cDʖY "SOLƱ\m4BDݷ;p m_eq",g+,U yx2f8pO*(u}6膟l\gq '޳jh+\gl#v?ʌ|~L+⓳^hnGgC{?.3G/]*a7֔*X_XSygF?TKg3SÿǍk73֑; *?Z'ϟ3=w̹3KxJYK>?pXȩ'|^$Hm`uuOj僣G=griyy?,0OfyGLheĩ'bA2JcB|+ru{>Fhw!=٥GW/]zXg =K N8䉓?_U!@ S)-9PPB @#bo>|Y>RAZ9Y..t+W3dIdp䫅d4gw%K?>pp;S - =)OozC,WVW!ҊY>8zΡQFg|}+/tό2Ma8^p=̅#y}_|_ޙ@FhXF3zAX,1˓'AX,X}X^r.t>p(.Dͧ%pt\_bQ.$9 0xH,_} NAC׈ Dc߭[Ǐ?GI9wvii~T,\Wn||$ sqw$}oCN/O޾zG&ΒΘeG=g|pμEgk.^]t+WnK,$4ϡbEu7bySLz?~*}}Ev< R ͝lE έsSΆrߝ &דr U,VY2 #X,_zkY&/ܰCYjJ@A3^uƤ0ah9v5iFŒ{k[,گ0r oQ{A=o:K3RΌKgUV,ZMPE YLH9`rjp CV[cLO4H|| tf\՜Ŋ{lHo*`@d #%D{AE٫b8%0Vrjpφ,vlği-.1V,j"wGJ0Ԇ'eZ,7'ζ=5'WpdduX7'mO xYL5fg17km9検bQGWwI9^0og鿘r-#t\,)2Bb4#d;yL:RSG)],1ZFHC],XjH9rXbʵ)*wV,vI9rX,cʵЩΒb!|XǔkSksgbc/r-#twPR\|)2BY w+4 b)2BGEHpg<j@1φbʵ)5y;u[XĔkeqsXbʵqtsXĔkb^; /\,]gyS-wfhT \Cb銳''?rpgi\>w\-(viMpRΞ ~7ՆXlsopR#Gxu!])% 1Hr45+^-gH'-)K*_L2Ri ': x75gInG[8SN$SjZU&i)]_m5fq0<]i7ir,C##oPga; SF#Yj0Vt՘U]pRY胊ekFQg!!$GR`tb/Őŵ&u>; '嚌YÇ:K:.If5Wc$-,,5[}IcCp(Ifeë1b IK?XjZuIc#Gkqj\Z4E$f5ƜcIK?c7y[Y\[{I"rk~_,G^ y}k?{b,ʘCY4.}xQ襳 /Y8)bloU 'X,I9s X7ÝXrOb`ph’r -T2rI¨M8HJŒYωY: C1hz0ùZ1E7B^_`q*2o4#UG(btF1h:܉$S-JX`5 s"T HX;7 >Kˤљx6b%XMH%o&:4ϝ@hhtoSLijuehFR-yŒMy, ,RNEʧO. 1RT@p@8HA8yInT3Y,FRNE*gCoTڊ(tZFR-y[.YI^ q,"19)YI9.,ur\,.^xq`I9.gC&Z vp64>튳Bqpgi,,) |#7O,id $RA8B1bϷ?b1R ߷֘rד/4mA'|?ի_|k:;dc$20idҕ!9T43 w|X4XL)ܰKM*ݨ6YTR|W=~3x ŵtwbaD M#̅#yh6L%%BMg.PTT|Q\nr1&$7ugo9zbs㈂udUu /]vcq6*pr~ׇWX,f1唛0B&+X@ʹY1]xYrjvUE%<)ޯq=H98SNͮʆPqbT, Ɣ*9k"P7RnqL9D,bq?)cCL9 gXO)b1KML9%jM8~;c1MYSߤ\ǔkDY‹ 'xqjI9.gC}JYc9ORҜ\-[³rFltbWYr%L)t!^$PBbWzNW5:sXxU[ҐCSN$$|M^яʹӕ@Sfn ϾjgҘhʉ{sʒ"&8я*!ӕ*Rfn Ͼj,-rh8T%.-E $kjU &k, .\" .de P! .fl \!!1 setgray .fl \\&.\" .fl \!!0 setgray .fl \" force out current output buffer \!!save /psv exch def currentpoint translate 0 0 moveto \!!/showpage{}def .fl \" prolog .sy sed -e 's/^/!/' \\$1\" bring in postscript file \!!psv restore . .de pF .ie \\*(f1 .ds f1 \\n(.f .el .ie \\*(f2 .ds f2 \\n(.f .el .ie \\*(f3 .ds f3 \\n(.f .el .ie \\*(f4 .ds f4 \\n(.f .el .tm ? font overflow .ft \\$1 .. .de fP .ie !\\*(f4 \{\ . ft \\*(f4 . ds f4\" ' br \} .el .ie !\\*(f3 \{\ . ft \\*(f3 . ds f3\" ' br \} .el .ie !\\*(f2 \{\ . ft \\*(f2 . ds f2\" ' br \} .el .ie !\\*(f1 \{\ . ft \\*(f1 . ds f1\" ' br \} .el .tm ? font underflow .. .ds f1\" .ds f2\" .ds f3\" .ds f4\" '\" t .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n .TH "KDIFF3" "1" .SH "NAME" kdiff3 \(em compares two or three input files or directories .SH "SYNOPSIS" .PP \fBkdiff3\fR [\fBQT options\fP] [\fBKDE options\fP] [\fBkdiff3 options\fP] [\fB\fIFile1\fR\fP] [\fB\fIFile2\fR\fP] [\fB\fIFile3\fR\fP] .SH "DESCRIPTION" .PP This manual page documents briefly the \fBkdiff3\fR tool. .PP This manual page was written for the \fBDebian\fP distribution because the original program does not have a manual page. For comprehensive help, please see \fBkhelpcenter help:/kdiff3\fR. .PP \fBkdiff3\fR is a program that .IP " \(bu" 6 compares two or three input files .IP " \(bu" 6 shows the differences line by line and character by character .IP " \(bu" 6 provides an automatic merge-facility and .IP " \(bu" 6 an integrated editor for comfortable solving of merge-conflicts .IP " \(bu" 6 and has an intuitive graphical user interface .IP " \(bu" 6 and allows directory comparison and merge. .SH "OPTIONS" .PP This program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. For a full summary of options, run \fBkdiff3 --help\fR. .IP "\fB-m, --merge\fP " 10 Merge the input. .IP "\fB-b, --base file\fP " 10 Explicit base file. For compatibility with certain tools. .IP "\fB-o, --output file\fP " 10 Output file. Implies -m. E.g.: -o newfile.txt .IP "\fB--out file\fP " 10 Output file, again. (For compatibility with certain tools.) .IP "\fB--auto\fP " 10 No GUI if all conflicts are auto-solvable. (Needs -o file) .IP "\fB--qall\fP " 10 Don't solve conflicts automatically. (For compatibility...) .IP "\fB--fname alias\fP " 10 Visible name replacement. Supply this once for every input. .IP "\fB-v, --version\fP " 10 Show version of program. .SH "AUTHOR" .PP This manual page was written by Eike Sauer for the \fBDebian\fP system (but may be used by others). Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 (or, at your option, any later version published by the Free Software Foundation). .PP On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL. .\" created by instant / docbook-to-man, Fri 07 Nov 2003, 15:46 kdiff3-0.9.97/doc/en/startingdirmerge.html0000644000175100001440000001563711127227043017742 0ustar joachimusersStarting Directory Comparison Or Merge
Starting Directory Comparison Or Merge

Starting Directory Comparison Or Merge

This is very similar to the single file merge and comparison. You just have to specify directories on the command line or in the file-open dialog.

Compare/Merge two directories:

   kdiff3 dir1 dir2
   kdiff3 dir1 dir2 -o destdir

If no destination directory is specified, then KDiff3 will use dir2.

Compare/Merge three directories:

   kdiff3 dir1 dir2 dir3
   kdiff3 dir1 dir2 dir3 -o destdir

When three directories are merged then dir1 is used as the base for the merge. If no destination directory is specified, then KDiff3 will use dir3 as the destination directory for the merge.

Note that only the comparison starts automatically, not the merge. For this you first must select a menu entry or the key F7. (More details later.)



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/printing.html0000644000175100001440000001263211127227043016212 0ustar joachimusersPrinting
Printing

Printing

KDiff3 supports printing for textfile differences. The "Print..."-command (Ctrl-P) in the File-menu opens a dialog that allows you to select the printer and to adjust other options.

There are several possibilities to adjust the range. Due to different printing dialogs on different operating systems, the method to achieve certain range selections varies.

All:

Print everything.

Current:

Print a page starting at the first visible line in the window. (On systems without this option this can be achived by specifying page number 10000 for printing.)

Selection:

Before choosing to print select text with the mouse (like for copy and paste) in one of the diff input windows to define the start and end line. If no text in one of the diff input windows was selected, then this won't be an available choice. (On systems without this option this can be achived by specifying page number 9999 for printing.)

Range:

Specify the first and last page.

Other important options for printing will be taken from the normal options:

  • Font, font size

  • Show line numbers

  • Word wrap

  • Colors

  • etc.

Landscape formatting is also recommended for printing.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/index.html0000644000175100001440000003472111127227043015472 0ustar joachimusersThe KDiff3 Handbook
The KDiff3 Handbook

The KDiff3 Handbook

Joachim Eibl

Revision 0.9.92 (2007-31-03)

KDiff3 is a file and directory diff and merge tool which

  • compares and merges two or three text input files or directories,

  • shows the differences line by line and character by character(!),

  • provides an automatic merge-facility,

  • has an editor for comfortable solving of merge-conflicts,

  • provides networktransparency via KIO,

  • has options to highlight or hide changes in white-space or comments,

  • supports Unicode, UTF-8 and other file encodings,

  • prints differences,

  • supports version control keyword and history merging.

This document describes KDiff3-version 0.9.92.


Table of Contents

1. Introduction
Yet Another Diff Frontend?
Screenshots and Features
More Features
Line-By-Line And Char-By-Char Diff-Viewer
See White-Space Differences At One Glance
Triple-Diff
Comfortable Merge Of Two Or Three Input Files
And ...
2. File Comparison And Merge
Command-Line Options
Comparing 2 files:
Merging 2 files:
Comparing 3 files:
Merging 3 files:
Special case: Files with the same name
Commandline for starting a directory comparison or merge:
Other command line options
Ignorable command line options
Open-Dialog
Paste and Drop Input
Comparing Files And Interpreting The Information In The Input Windows
Info Line
Coloring
Summary Column
Overview Column
Manually Aligning Lines
Manually Joining and Splitting Diff Sections
Merging And The Merge Output Editor Window
The Summary Column
Setting The Current Group And Synchronising Merge And Diff View Position
Choosing Inputs A, B or C For Current Conflict And Editing
Choosing Input A, B, or C for All Conflicts
Automatic Merge of Version Control Keywords and History (Log)
Navigation And Editing
Auto-Advance
Select, Copy And Paste
Saving
Finding Strings
Printing
Options
Font
Colors
Editor Settings
Diff Settings
Merge Settings
Directory Merge
Regional and Language Options
Miscellaneous
Configuring Keyboard-Shortcuts
Preprocessor Commands
sed Basics
Examples For sed-Use In KDiff3
Order Of Preprocessor Execution
Warning
3. Directory Comparison and Merge with KDiff3
Introduction into Directory Comparison and Merge
Starting Directory Comparison Or Merge
Compare/Merge two directories:
Compare/Merge three directories:
Directory Merge Visible Information
The Name Column
The Columns A/B/C and the Coloring Scheme
The Operation Column
The Status Column
Statistics Columns
Selecting Listed Files
Doing A Directory Merge
Options for Comparing and Merging Directories
Other Functions in Directory Merge Window
Split/Full Screen Mode
Comparing or Merging a Single File
Comparing or Merging Files with Different Names
4. Miscellaneous Topics
Networktransparency via KIO
KIO-Slaves
How To Write URLs
Capabilities of KIO-Slaves
Using KDiff3 as a KPart
5. Questions and Answers
6. Credits and License
A. Installation
How to obtain KDiff3
Requirements
Compilation and Installation


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/compilation.html0000644000175100001440000001314511127227043016676 0ustar joachimusersCompilation and Installation
Compilation and Installation

Compilation and Installation

In order to compile and install KDiff3 on a system with KDE, type the following in the base directory of the KDiff3 distribution:

% ./configure --prefix=kde-dir
% make
% make install

kde-dir specifies the directory containing KDE on your system. If you are not sure, read the README-file for details.

If you don't use KDE don't use configure but follow the instructions for Qt-only systems in the README file.

Since KDiff3 uses autoconf and automake you should have no trouble compiling it. Should you run into problems please report them to the KDE mailing lists.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/dirmergebig.png0000644000175100001440000007417311626145653016502 0ustar joachimusersPNG  IHDRd?PLTENG   !"!***030777:9::;:ABAEFEKIKQTQRTRSTSSVS[[[ceaikisyirtttttuvu|x|^y$r@|`{|䁙~z~izY{'`=]X^~SbPbJ`|?Wu#>h%Gu$N|%V']#e"i,j6b8b1e2h2h9l@n:j:f:hEtd~ݭT>(M|»w% @Fѱ,Kx4Es<+,Ç?~Yu7| ]P!KN@bEw~cF* V)H[Gz !OH;=pܸu&7O8/H3=C}_x ۾K !BnyoZ"m I9LeFy9a~c?,lmݺykcA0&d1:)p;~^&[?=^k{YKd謴yew5 0֏=87ʷn,>& `CǞ7يDN+zg}^|!R0K B#j"ȲdG>pC fcY_ p<6O}?zۏcLW 둔y7EKK49Sp? B6kc #v^|<:d~{$ͭlG:[Ok&ӏ?xM}//>#fq{j|zh `kYZ o?o,}={tIw/+ K?חHKo)"C~N K2<O~;]|}c!~b[S / ΐA jnl>3KrVdmɾzu{i8J8li%81F+8l? DR DRKH%U X"u]/.3K2>ۘferr"Z Bn|pLEB&SLg%Y_i|~HKé G{Slx#5,㑒,\SqhdIR$%SUs6ʩJNUsH+& *#h!D//\ ̲rYHk_R3ҮI1Z!p0d44/E=B*":Y &9'5RA@FL`,`$jdYf  *ZUEsDTIH&hU!2JZEu9LeƠ;&T+Z@UaCE%i|U+^C?e9-(JR*j.TAjei"1cymkHe34%ҎO;&ArUTmg䚈U l#|0lm|Wpa>P:0dYNAlyxpP2Kpx.7i5KrIHacHe-T ~\QS~ U̟!;JGk䨠?@V2ZLмG<Ǫj,ae6T?c9hSP U^TtTʭӽQ-YEֆ:%=lDH{"&2ZMZ#fT@0A*5sܑxCJmYb_ *C C zQQ|R^)F$R,Q/ ײcdM)7j?mglXa_r1<,PVr̐)ÕM2cq/@ Z}V,z+65F/ph!@0A& @ 22 @Y @ŠY ( #MOemrmKt+MjϻP3B< Φv^ G5l[O ؜u/+k+G7u,k9ieMn#bes&mѬw;f#z KHhShUX_]VCۖWpZZ[7o]X@m mϤuw5Kٰw R,)@Mn-|-}%]yʕ+Lz~Д+F56Wbkyӑڵ@c[zȤ-[IUf˚ͻ2n]S~a{ R Ś"^f.rrJɬTrWpd\rmD[7_8t$kW7h]vJLZeVM2pj$@ߝF^w.^9Lo\i:&RX_E""YTi*#Xvk++ ۪Dxk+# s(N^LZ`լFWuLjBȸg(xMb#HhSUtw|r֭[[o kat$Fb٠1(SP[Y_\rHks\ 25VgRiZkcM\V ?ck} Oh)@f/9ɯ׈Nگxa/VnXѧW/HjUUղśs++[ŪQ_X(I5Lou&V-kV=d\E5kͪ^Ϩ#IF-6Ո-HP@%I&w2nzeܬ WV.6i0bUa Њ?,U}ְ|w4[kMm:Ǐ$ @*ibfhSW ۺu񷎜8qrb!@i&HxMm-nбm 38Fe!gNMPSǪc&R!3*+Y62 HW_*iP.#n9~3gμT,ڕ.6X ⑕_:;w%x-h_|qS f02gbp3}P_ӞY!ܪYpڧCjXY}V_z<qP%D-WϜ9uĩ':{ر#LﴋE W2kMݧ}pW+٢ӯQ`\ܥ44 7$TV.jHv'oPn־Of4nY>[-EɈp??:wG|rWN>+YdJڅ8 n ئ}Y5:[7kXG!55%46UmHYݚ$1nXq>}|QR,BAPԦEڋ|+wooݽ}G^y+k$ut/2,d_Xfra={\=_?kxA@\^];/2jLq+GFIJ6y%L޴i< HIҙhzqO޽}>x~2gQ.d23d%v>Ra=r= _k:)\~O*Lu<|SM̐.=>CM.QǚLSM~`RM]@Bh7!@(pXצ4ȗG?{ϣʯE]\̐n^'@`B&A35/7k;= qyVd@<`kƘ.NCܵSmFk Pq Vfۀ<p t8l4(6 G!ógϾsmRX/lnj ^[/CL=3,_}݀[t_`ɟ MuK4ZeQS2k}uk7jԌO\O{m Pٷn߾s:*i_4suյ+W2/y&${,=_}`]Gq7 " ł-Sj^g&5iт眱W5A@: #~Sׯza V\YpʅL63F"%~ zdwE|A~6"oV_sC}kh=,B3hw6 Wk">ٷt`X,]XhqXQsZn 뉑\3GL&n\P՞Of~|LP`59OeeS&)N "Ԟwm%実.]hƀKm0@[xHؘOTi@~5s~quOZ{+Z\,Wn =[3Uf+ >!@(h -T5PkY-kֻ?X5E7:'[;hUk}5hwګ=BM:p uM nHA>g:Kwˌ'?2NJ}/@vj4d"A86J$'M} MbLc?bD}#4QuZ*#l?"{G:1zi2QQ_hB Rz[^vr )ͪ]nQUdV Z j,) <pmrZRSYS`8M6F6=ssҚ2mY,VYˠMDȞ_O)'&@X!m \! u [ձ ahäI㍯YFU7gd(ɢZVSܸsF YͅTTTy2z>on,/u*2Ar cϦ)ng9Kʀ*@-8esM3Cj5XeCBc#*NϖHP}`I7$q49%e*Jַ>CeT yli+I !)2V7oN7hn/:j4ScJl`2 &թ!6$;fzbclݔ3ݨ3bstcn֞gx}" ĪTV7dXhFVh(utƏqB6 v$KVْ!UύjlGKlӫi$ ' "~F7j9tP7IV,=E#hYK)gV/j0ǩaLm7ځ궆>isA)N̑Z- kq5Mcj&x62NM;ds{ҔglgP7onL=p8Yg>(Lu6ҩ[ SX3/ȡ a:\E@Bbe|lajqָmA& n)r ֜9ePN**J+I|ýmVzHpe ե)-CEVr!)VVDb䯆h1hh<+=*RUcͱ4x%5rLI5 bYg&P إi%38`wV,hY+;^h9 }˱UqhځkΔ2(dSK̦Nl[bc Wݗ]$ىYBɜԖF6iȱB:S؋חh YdL? vJgiL%2xnh=X掗dw]\Z;Trq|*Ѡa|{!܁O-d':$=my3 ebl#+l M|\f-jQX~cf߯CLV:kM`0< Kq [yU K7cv(%L3볨ye%M?C}(zH͌RfLLj\ lXv3 Px57Bb))̢"dKj>k,1Cj,RbG"R U+m2t&ۄ}jQ&V .:\;؇w>}mmk"m+d;𡳶RDg"t5g2kY\&3 RfVIY%B$89#C~0l5wDgs 9čMv$v6qQVlPF$XjuI `4$Ysmr_t*z aiܳ :KҤ@[wЕaf2W/M.:tQ#^zmQ]\t;Q3Hg=8F/M?X |߃ ${`-tpmr_ݙSOxS{TZA@M6cᾷFp3t{d_yӧ/Y8v ,M_(ۀ!q3t{'OuW2|@Xz8#ckx y}8wu`@Iw="sT~`,=Ё>b]oĬp7h-Y;$-dHwGnX\VrĠX'FAb7z dwkz3|6/q;ݣ?6zXV)$Yc&  `>(\2ۿ[Gw> ỷϝ;֑r 0n Բ`d#f k|up7%3n KdzB`h%QFhZ T0O}߽kプ1~p`0.w|sL`̦@o]>bOFbeJ*)`< o~NnV+lD> 9^O`8xI`N z pt'$e)nBf#jiH @r 01`wܹ]b7N9ǂ` R.1-ɥ ogqRlyy@= jh~s3X궯"A{wWMD{< Q{>IK!0,A]0a@-+7N,A6Gp>DiV 5%h M#z(U03+0ZY˒}rϿݣ?@Xa7F<C5N@_---csu䗔%HFJjd6 tF,@J{+ `w8A|$` ;:K B7.hԄ86X`Xb3<|WBYtz !9S-B xSO<]@׾:| 憎Q7׬:q@2f昅0CfN-|)˷7cݷD>U-OLc#Ϳ%HW#he}<9dvʌTPz:p LN'-T꽡 ,3h-l32 z ~ ]qvF sv O>գۀWo{Ȍ0?ETpgԍO##N?zH o{(/mXd#BԍO##^zCfߪ$M@[2,A]XGF j] |`XgJ 0vaZb.@VL>ns ҽ Ue &-MG `s @~Y;##2ѯpAw=0@ @@-f__Gl7n` N#\D#%S~a>b؇7bVpfBl1 ҇;g{O05n<0g8(Jw=fZD{܍n>w[G? P,Z(YbQ}L `&HϞ/x})`kKAeMI?#f @8_7[:#нF ľ{؍>w|Ng" x.rxcT 8JuCX ҳkQbd>긧o{;u#,h)>H$.[;,|t|o}Tk$s=,1HEH~I,%G+k4Az-͌)Hf짿?0 ew 72%e]>D $ w~%U8w|fM# Jt3Z>Rxfk4AzTǵ@ `8xI`N z ob"MgR³짍,{! sDɷ/ϵ$.1D!tC:~Jv)/lrBȩ"t":6e3TC㎉s;w1+J/O9b4f]TPINO %ejS!4qwp7 ]c[nK?VF F)ә09PHH,+y.k<=[n&ަٵ`8"\ 9HD]"\TmQU]P;؞}{UWF }+hϞ='0> |/{bD>£,@l h3LrmӘ|v<^oni%WMՆQMMUrAvu^(M֎z TI(9ݬ[֬+b fF*5͜f=˄>MZFuLNŴE%"j6I9rjfU(؈ԛUGx֙p+F>CۻtO/w(#GFLipԈ SP kcd%2Zm.B6"Y5T35› ӛFTͩmVEc^.j5%S5L6Lp<.l+)Ǔz}mOp tDeC$m}S(Gۀgbw L/i2} HPT+Bg#$1_r:Tj &IZ<&nxSj2oV讪tZIOxbFDe1go{Vr,W WXLeynrjrH4"粼GE UP7_Z'[.W$m}S( £YVK*"2"t]d/۞7Z*i\|F6Q4URs3S*U96].~e^żdR:,3bK*%LW!"b"G\QQ-3~Òޔ~:ŰDVt}htT푷4"d,r\B%;)Q/y(Y\ ͇IʪtLU2A$%yɾ$YY?5YYY_.1%V)st[ɖKP"V7K)QFΐMרVdO%YکG%eѳ@v,KsJzl%be,Q8e%-nXSP|FdvL3H;ENɶXVSET(jkP;b0> @f3i 3==Ŗj>Oaj!s~ X85VD~y[Z{Ѱ-O2ʻ4zLv(n791&鞛h|vDh6&Phn5r Rf6kpxc.DcXEjo[2y/mHIdL 0A~(;7(9榨?r4+t"~ o/$7MNM:*7ȍ>bKIc1K0 I6}.I~JGȍ`|V!-on(t>/;i콰4u؍m3Z7}-GXt?x ԛ˃mZ{RrX{jz/l' vvc=d2gg~nҼo칉vS2jU&hMqsISxlq7mF cz\}  ldbS Yxχiify-@kzt7NTcىt #׏H.s֟5 M`%PlI'AڏmF׏H*{֟ﳍku%P$șJ9: HHw.9A2Q;׏H.s֟w\}} 5lDer0NN4F$J .9A5ӯ>|0MQ > }z z4'CШ7;L ԭ4H )cS졓 j[XDl08<`6-CJEJ=ƿE d} 15#P#OOH:+h:@=x,+frA*#m-Mb3]5STR,DIvZBONgh٥ׁ=->8>X=D*:cYK6[Ob+L۔+ē1<)Z" #E?{ k))MN4#O#Y$Ϸ6 HJJ@@hc`Wl&bB4@c[dy r8sD|"1v^,@eJ4VQ-EU .5Yq%F~ ~|G1}c N-{V`{Wz=mHI d`]SIw\SLVĶg*XQ+A1O? xG@gTA,gl:#ޫ :Zm, y1Fڌ}zҠjƃX %yn }+HMkzt_ةbd,cuH71RM?H"cO?4c t1C} }amxltLYC` H"}dp~+1uL FЂH"g s0;Ac ~KgnXmV@M HprS 3]>>!ccs_>$`TA kzhawK A01:?W*c@g'gr4<]5؎Hj[+c?rtF~2P'TA [힝ȑ Ht`F m^ƁG"18 ׁwI [y;#NG d(-H[ȅ >2Im r N9Dq`F@g'}gr@RۢG'Ex2ir Xu>ܨ,##$%֛3st^֕DW&q`'`}FdyAc4gphC[_ @g'}gQ/F m^ƁGEz~eŭ /GVl!*zQF|-HkFdY;# q`H//@.@㋛W׺x0#PgHI7>^_ZPJ & AԘ¿7tKJ0eBieJyi_8L@7@*$ZEIFEWߟ'-dww}#F@-] `J@2-SU֍7@:#Aמ1i N}l@ZJ~rlR),tjRZ:#Xx|:o;#LĹ}@"e2YOD~rJ_Ysͳ$6m=aV5n;#HAM Uҵyg@‰H_}@Zd)ڡJ)et@MY1#*qX,9ouP~#,Bʓ## 2 #H}@ fP0z@n vߔ'H[81U$BC[1fd\>2#Xd`a5#Pu]mX-Z= @}l@GGz>~`Bj`@O$Q NS1~3A6{Eu4?ޥ:S) MHCjf;t$QhpFJjdV˘ ([Pz̞ҌGFg S"j1OGP}5 $Qh S PQQ{Ue#B$')XCb`(|Ă4>Mv'DoJktw6XM~W,`b2(|Jf @؂&N#-( ohwW|` Q.bc#*}D|w*YdQK~vw `}fF ' K<`p^!4Ղ 'WD#z@ `-gF _z2< @oix:d<3#H["nB}gSƦ:#tڠHk"HX;r)ȵpfikP敼[hY5:_AyǶŪVCJYZkځŢj)2/F }\yQgfMQ#Pr3h<>Gm@yǶŪVCJ lr&lb&VY ۲0.*Oe:X1Zri<]3iSqj29҈#[)EOH>~iDO%UMf8u; těׇ6rd6 8jEhU(SN]z;n?sQe:fD%yԀcx[ۖ6 `/D,Sj :#PN@}ß,nf7h68>@W@yӤjf,eDz>~`&5&䔾 :#.[.g-mfBQ;_':Z@W@y)&>K(h6.)}{5#q8@sg*&.G#P3 /b3qh2J@ځ᱐CO h:@O$X}$iUd2 >RtFN} }2i>HVE&MjYF GH>Ҫ,̩] ԩd@-wF 14^y՜}w7-` `|2#_9,@I gd #X01 Vws&F @ ``ү0ҟ0`-F٠ ҽ@4S@c@ $X]rF Fa[, in F8/n@ߣ<,փmdxL<0>D6~tww-ߢtG?n޺vT,b>3>bJ&Tdb&~eC"D"3~4[ie># nh@d?=,@~ѷn&wX dCwbCvI?kOX/@J6 ͟_XVH֎Gb1|2f#jiYP4z(KؘX хgp&pis==``@. HDv @0@KF NtYJ"SA. GTȬQ^C"}1O, "t @g0Z3QZ+GU&R<%sX'UQ\"|H, P@0@G@$|8NjJ!3JUR/ -5&iRЉ0R>6@wL'Tlh/ʾ)D` #|8S""f@*0:DTGT52khe}<|Xd\Nd*` #XQÙ'DP\RIQ0.S3u7p` ppQAF -4} >ܬ7` `02 xȰ,<E=DKI#P UUY}ɧtw$[KCou,Z@v@ҋj#ǿՓէk}=Z,hֹ%05Ч'|[oZ->?ɣun uF @Rk&NH1j9st_S@ljVE0 `\yAVÓU2Q3gNu8sj9ɡCΥkЍ`vh4{XN>>oZ}}@SYdE?@gi ?a4[L=M,DCM d<}'=/ p!aި#@{ hnzQMּ`er,G>r52dSo<~qqKZ->\bP @_H:o, |@e0n I9'eQJ &`kA43* ; _ Fs1~"L21,tajLIoPDgpb"Qj$C}NZ}~~!t^kXѽhL@:|?42=[_BR@'"Z$hgA x+[O$ـ8-"t^oT_%_Z}~oZkbQ&|e & o̦ÓK2y "e=wA_V'ʍSKuOKH$'71kPkTU;^@['>$tBD!8dbFJky"Tƚ&c!&AbcV6% IP@&@iL:ׅo _J H',ǂ "څS?_(Jz$HdJlw-rnC7ՒjX K}|%|j~Is2NS~(ԃe 9QKFJ[ zhF \Rh-JUXkPWMϢ'=MXb. ¢sKHD9g> HoFCZqIRFJ|4J>*e3abPINOd03fƥ>9dp4K$MׁA@z)j z 5Qu`l & #(Qpnu&ٶ8=՗#QRI0|{u\i*jTJQˬvZ .-Huc #/t_{[[^Ck{^c{uMGbMyea[[8:96uMGbMy/nQ;$**}J HՖ`a2B p8Z[s=sz߯] mc29^KQ1{^Dye@5c-sLaKQ1p{`t,Ae:R.͚/X,`| ҅objƅraAZs-T[-l*ӂ4|-Gun~vd0;5.$DKj D)[PR, .1H5v_I/\%VKRX4R2ebat֎~F/cNBi9[lخv |ǃ$6h1j/L,Wb`A>ze)~vfxKWGYt]ߋ-{{MZ#+je)~[Np /Ցwx``u?l),Fyl*WYdZrlaĮckm3O*ʘw [AZbZ9xٯYn:J^mvlu^uܞ Gx`%s[o3d:CubZ[ BIyl#OJl=],X~v<}8 j0Tպ{]8@ӑ}8 jaau76q׭,c &ON/!Zb Rz v {f4SuNmz߯Ԏf+f|(5]X@kek%Zy~owasՋ;}{-ݝ6c1C f Zz ,JjVƆVW/nNXxد[;Xr4] .6`+}Kmo=B|wܽg~v˽;hm;}/t]W[~`kfn? ^f6w#̆>nM$W `d»^m @/v{e&A*@QfѬW %趠QbkFQk4 @MPQUJ~*j^@MeCM-,׋ZSl^n !H Et[HY`@Mt[$ۂ&eCMj3K.>p()oM&@0 miUo]^@ -$A :ae>u:P4 < |*ˠ [f!j7(cM&{  I%}bFaRum>g]bb u 4 pӎжR#z[n M)ֱgKƔ p۶}٥xyjm30+fI Aۨ֟4 `@)B;uFmA#Ixp_Mw*A 7l!>C ۂ&A=d-R +B^Nmq/n MT=h.RmOTYBT>X=ky[{п-^n MVx@iA[]RS%hsgl#YV[ۥ MLOlie;`_Vke>趠Id7 zGm vl'ۂ&A>k'h:!cB$UcU6=eF-r34 &{ctwUPghMۂ&A=do|mԵ4 ܾ&Ix~ 4oқw/A>u:CB4$4 q@ֲz pbzM&w3PZs}Bj8-h49rFl+gܞBmAɁxQ秮ֲ/'b-h4I+n RM&ٮԒ3PfԕKR}_S`u 49ǩ>趠QN8qn I ǻ}붠I[N[ң2,whM@&7O>}w^y@zz^Ӈ[ѵ~8۶,huװ0t^So %Oi_F{Qk>@;dFV~uɩ/̲^FϬǏ!'䈪_bRD%Ueuڏ߹J-_n갣a?\-?T~TFvVB&62amtZ=e4>]"!9\Sէ[X-܊}T'i-lvX5b}Xo<*ve`'6uӎf.-l c% }v]|Ou < s+vޗ6;ל[@jsV.>YUu۽T:2&:Ч;8r !84 oAۂ&n H `,趠In np >趠In t[$Xl趠Ѱ4 XmA1@ u[$hr,YhA}Ǻ-h4O>ʰfb7n Mưƹfn M@tk3ۂ&Aj@M̄zd+h49@7ۂ&AC@+m]&Ac =>Cc_I -Q# {.t[9C {I@I@ɚ8&أo` >O`D@k`@B @3 =: ܦAZh/'{`ۂ&A@ۂ&Ahn&A}eCMʆn mHM&h|mA@`@MtWM&@t[$X mA#n  -h| mA`@M-t[$XmAI@M&n &rNx#趠I[KY\AM&k 8ۂ&Ac cJF ʻn&A0 I F:Q6\@a趠I0n[`&Aktg趠Iau_M&A@n  -h| mA`@M-t[$XmAI@M&n t[$XmA@ChU͆t[$hr,9s!w4 ¦&@_u 4 H%L#:6Ml@e M.kqQjT*%deu 4 ]HT:Y4q ĶHAu 4 A @-UެBοfЯ9m3.dAz-趠IZj²uЍu 4  IѯQ#PQ/ځ&AoT9wrm- ݷ(ޯn Mx@~]@ɾSt[$@mA`8mmA>*`u 49n6j @M7:XmAkkv[$ho|ƃ@$]@@n Xc} mAn : 49@O@M,趠In =@'| mA4-hr,@MXn 9 $l4+`@MP뵦ZR|Y"mAnTjZK(4 #pH' rQ@dL@@TQY(8A@F 2J$2BQu$`JN>D4¨ţȵ^ ::NZvLG(ϒuhFC-Z4G8j=;3,EŠC!3 y/jQ-Tz-o"*HG}aU# hX%tI-Vc0FTeb;w_[;Ȧ$t:a n٨'_"L|)s-$_eW\y,$5jnIߖc' 8|Ye$28@Azq?-WF pG)nxG >rQ yҼ[wck+8yܯk;`  _G>1ا%Xcw,l5Q%LCѺՋӱh_vdKJO@V`2ꠥu!ȧNw |- `{{pD @@@FBם-0XA@(ul6jaA{OPh} ({6q|7Px-LÝa(%wL彛y/L $yIfUѦlʋKZO:eSK:ߏj'VyczoԂ@D{'7dM %U e 2] 3}_]W1ޘc%J[x>|M6c.~3s}@W/7^'LDP.{΍; >3?# ,1ISB @|Ŝ/$c?@Y"6276Cl0z,P {aKjXXYUAY24foLl#hפe(cKQk0}t6~ˍ<(QHژFJYfjvFcRK}e2 hh@Cqh0 z^wh7f3 ~ [`>hjțP @H  jFodOřAP1&v__Ix]k(@wn}pM ʿ$ZgF(:vNJJ 'b=p?=쏮g=-~UT֐Vيl6t=ew[aeI9s3PptMDP2@z' 6 0w y:Bʓ޾mOtt^;hR M&(le' H @` `.R|`c ]WE2Cl:p&9O}UXX|F5S $=" >7ʜV L4`ڋD(@JD(]d=gO@*V8Hy=Z=Ug9a@2E(eW:X(e?`sP@ <@y@ᙀT= k[[ 9>(ReM q P@sFo 0>w.3'CeQR:3{zJ` X( Tz {H :7 P y6M@{Ezu{ P ; +IwP6E.{ [Խ UlEVS T?`EPzH 2(f @rԡ v oEv$ @=#P~v@P@?K5ID?*D]6^<@@=?@Pu9P{ 9zH zJCSXdCo0 mXwysGJp4p{ +w0CK#_DAPHm ~k/sL~)3f|N<N{~z X*Ow줣ӎyQI03#?nf&`^[7i_/w)Ö?K~֯=c,tnn5w޾ݫrT _Z.VX6w\v[?_N-fpxۺ Dz xȗ2}NO;ݪ-f9i eYbhG؂=n3T/hZghYֱXGcY}lIZ毷l{vGj-fodqc99FL`i=|+^.=>:>y)Öf8t-F~Xz% Vp9:i۹/%L0N/b3 %ܹ!8uvqjw~;oP,(cy &2@C$Ãe.eLUuH(±< &-op޽W.~93TBE>ÏORuL `͛-f_pH@]Jn(^/s)Öfz&},nR 7w[\*./B ƒ\^nb/%.+M JV&*O~O5OQk~GL㫯q?e{pkGgyZ'+_?>tŹ|8;?kq@P'xZ'?8;JsT&kO_ǃԺc8<up>m9zu<꽐ެ:\;Oqq^>jno>|3nv `gy&l-V&$% $@V'ߑ(L^IENDB`kdiff3-0.9.97/doc/en/requirements.html0000644000175100001440000001064411127227043017104 0ustar joachimusersRequirements
Requirements

Requirements

In order to successfully use all features of KDiff3, you need KDE >3.1.

For information about how to run KDiff3 on other platforms without KDE please see the homepage.

You can find a list of changes at http://kdiff3.sourceforge.net/ChangeLog or in the "ChangeLog"-file of the source package.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/selections.html0000644000175100001440000001331111127227043016523 0ustar joachimusersSelect, Copy And Paste
Select, Copy And Paste

Select, Copy And Paste

The input windows don't show a cursor, so selections must be made with the mouse by clicking with the left mouse button at the start, holding down the mousebutton and moving to the end, where you release the mouse button again. You can also select a word by double clicking it. In the merge output editor you can also select via the keyboard by holding the "shift"-button and navigation with the cursor keys.

If the selection exceeds the visible range you can move the mouse over the window borders which causes KDiff3 to scroll in that direction.

For very large selections you can also use the navigation keys while holding down the mouse. E.g. use page up and page down to quickly go to a certain position. At the end position release the mouse button.

In order to select everything in the current window use menu "Edit"->"Select All" (Ctrl-A).

To copy to the clipboard you must press the "Copy"-button (Ctrl-C or Ctrl-Insert). But there exists an option "Auto Copy Selection". If this is enabled, then whatever you select is copied immediately and you don't need to explicitely copy. But pay attention when using this because the contents of the clipboard might then be destroyed accidentally.

"Cut" (Ctrl-X or Shift-Delete) copies to the clipboard and deletes the selected text.

"Paste" (Ctrl-V or Shift-Insert) inserts the text in the clipboard at the cursorposition or over the current selection. If you paste to either diff input window the contents of the clipboard will be shown in that window and the comparison will restart immediately. This is useful if you want to quickly grab a piece of text from somewhere and compare it with something else without first creating files.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/new.png0000644000175100001440000000037711626145653015006 0ustar joachimusersPNG  IHDR IDATxTA  >C>~Ndq(1Ph5YNNtwZq_$G= y"a i/7qTc+7sLSy"?"<aIEІ"nw."-vVZND' &"_y^ϥmD$Oy\z,Dݼ>tUIENDB`kdiff3-0.9.97/doc/en/open_dialog.png0000644000175100001440000001244711626145653016476 0ustar joachimusersPNG  IHDRT$LPLTE # * -!/-D Bf%Lw$Ny$Oz$S}$T~$U$V%W$X$Y$Z$[$]$]&^+_(_$`$b#b#d#e$g#g$i$j$j$j.j1i1i1i2k2l2m5n9n:n:mtgOگ?CeѝCwסz_0CZ.Tk=Tzb?WVY _A%ȐMUƍڰ^ц h|૒Qk/WW鍃/1ٗ<8>>>dCq&K/6%}L~AumpLGGgDGf[FjsOO}/zU*U6SGyrc'WjǠ|irg:'nҝIQ.-[-~^xV!fe~>>xi15qlZx''P4=r/{qPIk]G-&סܳu۶mJ-Tü~sh1֟?9Ǐt3׾YP4:{ڣfG-ÓGԡڲ/^!?>ReJo+kv~?23NT_=u '~Q`4;;b> *QPpUs߾ċO[}?S3ߙ/؛ofrejYՏ0srkSP73>t;f?ʢ 3'&!38~m]rmoj\>Ty=>3?2u9G)Uq*N?7nڼef4>~db8TbMMo1O515}2̴=,W ȠY@*PA ^(U @*xh-RBjTMi5(*Th5(*Tˆ$Ce(T P*@UzH*xSAF"/^9HYhyPP)R)g y;/Qrȳ1\ٍ*P 4 Pe(rQ@|R ExH( *ڡ`0;T^TpJ)4-D D// ;𽇓|""lmqtC(¼vj*S T˞Ơa$IЭ*V$~{9 7XmB"CwҚWJY{*RPѲ!6`J%'XZ9:,UɶHCp wgXZ5S R U_"#25** HDڡr,@7 *(kT$5՟Z5SqTU]C=3PlPl[. T6ڠ"N(Ni(6<* 7O̙T7V~j*"Gjo u?MDJ#}$區Μl|)3&jJ3+yD=jՈ:qi:*ƔU[QU.(2T P*%c2oP *LC[p3)n&m-TKPC @ : PA T TP`D=lo5*(TytT/aCb[B]CAzE1*] 7beQ6UgMT*3fUgT:{hT*PfzFeXPwYDWtR$r:TcԤpJHo4mT9"7b2z4Pe(rQjR2HP&!*kP2M " J H-I߅Ȁ[b[0b"H0~eBytF=w+{@^owB+`x M UHk^*sU ʩR qxrtXE&?m@2;EWb@rHTr95ɚr,@1r8ދ*LU(ڼ 0=cTIE)C6 %BѦA"@z_x 7>dJTnIy#b3'[:_JIs* 7O{EЈ:U"iL P*8*@ ʀ P*@T P*@J1Tk3*D~f§Zc(Yʙʲ# 0wA4D~FFn_(O **]gTJH qrjTL * T2+GG{NWlPU'9 U"?m0TQ΂JE<~J)޾-zӒ@qu wTqhS!PIrQ*pAPSBE PT}iVTP*S UD~jS}P*S T O@ E~jS}*sPu`&9E'2:0S?(?sP03  TQ;f'3TkΤ<9qPP*e@Te*p{h'KJ8sTϗB{Qzea *jvQ? 2 *Mk T:P0T @/n7 Djf"繥a; P*w鬺TQd*yJ Kxrh E~;k P=R/r.%PUh4UN"?umƏ[\IC\ TT1 D~"kqm*ߩX2U%'PQ*T䧄m=U" ]hComparing Files And Interpreting The Information In The Input Windows
Comparing Files And Interpreting The Information In The Input Windows

Comparing Files And Interpreting The Information In The Input Windows



Info Line

At the top of each text window is its "info line". The info lines of the input windows contain a letter "A", "B" or "C", the editable filename, a button for browsing, and the line number of the first visible line in the window. (Note that window "C" is optional.) Each info line appears in a different color.

When you selected another file via browsing or finished editing the filename here by pressing enter, the new file will be loaded and compared with the already loaded file(s).

Coloring

The three input windows are assigned the letters "A", "B" and "C". "A" has color blue, "B" has green and "C" has magenta. (These are the defaults, but can be changed in the Settings-Menu.)

When a difference is detected then the color shows which input file differs. When both other input files differ then the color used to express this is red by default ("Conflict color" in the Settings). This colorscheme is especially useful in the case of three input files, which will be seen in the next section (Merging).

Summary Column

Left of each text is the "summary column". If differences occurred on a line then the summary column shows the respective color. For a white-space-only difference the summary is chequered. For programming languages where white space is not so important this is useful to see at one glance if anything of importance was modified. (In C/C++ white space is only interesting within strings, comments, for the preprocessor, and some only very esoteric situations.)

The vertical line separating the summary column and the text is interrupted if the input file had no lines there. When word-wrap is enabled then this vertical line appears dotted for wrapped lines.

Overview Column

On the right side a "overview"-column is visible left of the vertical scrollbar. It shows the compressed summary column of input "A". All the differences and conflicts are visible at one glance. When only two input windows are used, then all differences appear red here because every difference is also a conflict. A black rectangle frames the visible part of the inputs. For very long input files, when the number of input lines is bigger than the height of the overview column in pixels, then several input lines share one overview line. A conflict then has top priority over simple differences, which have priority over no change, so that no difference or conflict is lost here. By clicking into this overview column the corresponding text will be shown.

Manually Aligning Lines

Sometimes the algorithm places the wrong lines next to each other. Or you want to compare one piece of text with text at a completely different position in the other file. For these situations you can manually instruct KDiff3 to align certain lines. Mark the text for which you want to improve the alignment with the mouse as you would for copy and paste in the first diff view and then choose "Add Manual Diff Alignment" in the "Diffview"-menu (keyboard shortcut "Ctrl-Y") . An orange bar will appear in the summary column next to the chosen text. Repeat this for the second and (if available) third diff view. KDiff3 will immediately recalculate the differences everytime you do this. and will align the chosen lines. Of course some of the previously matching lines in between might not match anymore.

Currently merging doesn't support the use of manual diff help.

Manually Joining and Splitting Diff Sections

In some cases KDiff3 will see too many or too few diff sections for merging. In such a case you can join or split existing sections.

Add new sections by first selecting text in the lines that belong together in either input window (as for copying to the clipboard). Then choose "Split Diff At Selection" in the "Merge" menu. Splits will be added above the first line and below the last line of the selected text. If you only want to add one section, then select text beginning at another section-split.

For joining sections in either input window select something in the lines from the sections to join. (You can join several sections in one step too.) Then choose "Join selected Diffs" in the "Merge"-menu.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/credits.html0000644000175100001440000001106211127227043016011 0ustar joachimusersChapter 6. Credits and License
Credits and License

Chapter 6. Credits and License

KDiff3 - File and Directory Comparison and Merge Tool

Program copyright 2002-2007 Joachim Eibl

Several cool ideas and bugreports came from colleagues and many people out in the Wild Wild Web. Thank you!

Documentation Copyright (c) 2002-2007 Joachim Eibl

This documentation is licensed under the terms of the GNU Free Documentation License.

This program is licensed under the terms of the GNU General Public License.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/other.html0000644000175100001440000001452711127227043015506 0ustar joachimusersOther Functions in Directory Merge Window
Other Functions in Directory Merge Window

Other Functions in Directory Merge Window

Split/Full Screen Mode

Usually the directory merge list view remains visible while a single file is compared or merged. With the mouse you can move the the splitter bar that separates the file list from the text-diff windows. If you don't want this, you can disable "Split Screen View" in the "Directory"-menu. Then you can use "Toggle View" in the "Directory"-menu to switch between the file list and the text-diff view that then occupy the full screen.

Comparing or Merging a Single File

Probably you will prefer a simple double mouse click on a file in order to compare it. Nevertheless there also exists an entry in the "Directory"-menu. You can also directly merge a single file by selecting it and choosing "Merge current file" in the "Merge"-Menu. On saving the result, the status will be set to done, and the file will not be merged again if a directory merge is started.

But note that this status information will be lost when you rerun a directory scan: "Directory"-menu: "Rescan"

Comparing or Merging Files with Different Names

Sometimes you need to compare or merge files with different names (e.g. the current file and the backup in the same folder).

Select the exact file by clicking onto the icon in the column A, B or C. The first file selected thus will be marked with an "A", the second and third with "B" and "C" regardless on what column they are in. Only up to three files can be chosen like this.

Proceed by choosing "Compare Explicitely Selected Files" or "Merge Explicitely Selected Files" from the "Directory"-menu. For your convenience these menu entries also appear as context menu when you right-click the last selected file.

The comparison or merge of a file will happen in the same window. If this method is used for directories a new window will be opened.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/CMakeLists.txt0000644000175100001440000000013511626145652016236 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kdiff3) kdiff3-0.9.97/doc/en/options.html0000644000175100001440000005465611127227043016067 0ustar joachimusersOptions
Options

Options

Options and the recent-file-list will be saved when you exit the program, and reloaded when you start it. (Menu Settings->Configure KDiff3 ...)

Font

Select a fixed width font. (On some systems this dialog will also present variable width fonts, but you should not use them.)

Italic Font for Deltas:

If you select this, then text differences will be drawn with the italic version of the selected font. If the font doesn't support italic, then this does nothing.

Colors

Foreground color:

Usually black.

Background color:

Usually white.

Diff Background color:

Usually light gray.

Color A:

Usually dark blue.

Color B:

Usually dark green.

Color C:

Usually dark magenta.

Conflict Color:

Usually red.

Current range background color:

Usually light yellow.

Current range diff background color:

Usually dark yellow.

Color for manually selected diff ranges:

Usually orange.

Newest file color in directory comparison:

Usually green.

Oldest file color in directory comparison:

Usually red.

Middle age file color in directory comparison:

Usually dark yellow.

Color for missing files in directory comparison:

Usually black.

Changing the colors for directory comparison will be effective only when starting the next directory comparison.

On systems with only 16 or 256 colors some colors are not available in pure form. On such systems the "Defaults"-button will choose a pure color.

Editor Settings

Tab inserts spaces:

If this is disabled and you press the tabulator key, a tab-character is inserted, otherwise the appropriate amount of characters is inserted.

Tab size:

Can be adjusted for your specific needs. Default is 8.

Auto indentation:

When pressing Enter or Return the indentation of the previous line is used for the new line.

Auto copy selection:

Every selection is immediately copied to the clipboard when active and you needn't explicitely copy it.

Line end style:

When saving you can select what line end style you prefer. The default setting is the common choice for the used operating system.

Diff Settings

When comparing files, KDiff3 first it tries to match lines that are equal in all input files. Only during this step it might ignore white space. The second step compares each line. In this step white space will not be ignored. Also during the merge white space will not be ignored.

Preserve Carriage Return:

Some editors (on some systems) save carriage return '\r' and linefeed '\n'-characters at the end of line, while others will only save the linefeed '\n'. Usually KDiff3 ignores the carriage return, but then files that don't have equal sizes, look equal in side by side comparison. When this option is on, then the carriage return characters are made visible but are treated as white space. This option must be off during a merge. Default is off.

Ignore numbers:

Default is off. Number characters ('0'-'9', '.', '-') will be ignored in the first part of the analysis in which the line matching is done. In the result the differences will be shown nevertheless, but they are treated as white space.

Ignore C/C++ comments:

Default is off. Changes in comments will be treated like changes in white space.

Ignore case:

Default is off. Case-differences of characters (like 'A' vs. 'a') will be treated like changes in white space.

Preprocessor-Command:

See next section.

Line-Matching Preprocessor-Command:

See next section.

Try Hard:

Try hard to find an even smaller delta. (Default is on.) This will probably be effective for complicated and big files. And slow for very big files.

Merge Settings

Auto Advance Delay (ms):

When in auto-advance-mode this setting specifies how long to show the result of the selection before jumping to the next unsolved conflict.

White space 2/3-file merge default:

Automatically solve all white-space conflict by choosing the specified file. (Default is manual choice.) Useful if white space really isn't important in many files. If you need this only occasionally better use "Choose A/B/C For All Unsolved Whitespace Conflicts" in the merge menu. Note that if you enable either "Ignore numbers" or "Ignore C/C++ comments" then this auto-choice also applies for conflicts in numbers or comments.

Auto merge regular expression:

Regular expression for lines where KDiff3 should automatically choose one source. See also Automatic Merge ...

Run regular expression auto merge on merge start:

If activated KDiff3 runs the automatic merge using the "Auto merge regular expression" when a merge is started.

History start regular expression:

Regular expression for the start of the merge history entry. Usually this line contains the "$Log$"-keyword. Default value: ".*\$Log.*\$.*"

History entry start regular expression:

A merge history entry consists of several lines. Specify the regular expression to detect the first line (without the leading comment). Use parentheses to group the keys you want to use for sorting. If left empty, then KDiff3 assumes that empty lines separate history entries. See also Automatic Merge ...

History merge sorting:

Enable version control history sorting.

History entry start sort key order:

Each parentheses used in the regular expression for the history start entry groups a key that can be used for sorting. Specify the list of keys (that are numbered in order of occurrence starting with 1) using ',' as separator (e.g. "4,5,6,1,2,3,7"). If left empty, then no sorting will be done. See also Automatic Merge ...

Merge version control history on merge start:

If activated KDiff3 runs the automatic history merging using aforementioned options when a merge is started.

Max number of history entries:

KDiff3 truncates the history list after the specified number of entries. Use -1 to avoid truncation. (Default is -1).

Test your regular expressions

This button shows a dialog that allows you to improve and test the regular expressions above. Just copy the respective data from your files into the example lines. The "Match results" will immediately show whether the match succeeds or not. The "Sort key result" will display the key used for history merge sorting.

Irrelevant merge command:

Specify a command of your own that should be called when KDiff3 detects that for a three file merge the file from B doesn't contribute any relevant data that isn't already contained in the file from C. The command is called with the three filenames as parameters. Data matched by the "Auto merge regular expression" or in the history isn't considered relevant.

Directory Merge

These options are concerned with scanning the directory and handling the merge: See the Directory Comparison/Merge Docs for details.

Yet there is one option here that is also relevant for saving single files:

Backup files:

When a file is saved and an older version already exists, then the original version will be renamed with an ".orig" extension. If an old backup file with ".orig" extension already exists then this will be deleted without backup.

Regional and Language Options

Language:

Adjust the language of the user interface. Changing this option doesn't affect the running program. You have to exit and restart KDiff3 so that the language is changed. (This option is not available in the KDE version of KDiff3 because the language is adjustable in the global KDE settings.)

Use the same encoding for everything:

The following encoding options can be adjusted separately for each item or if this option is true, all values will take the first value.

Local Encoding:

Above the codec-selectors appears a note that tells you what the local encoding is. (This is not adjustable but for your information just in case you don't know your local encoding, but need to select it.)

File Encoding for A/B/C:

Adjust the file encoding for input files. This has an effect on how the special characters are interpreted. Since you can adjust each codec separately you can even compare and merge files that were saved using different codecs.

File Encoding for Merge Output and Saving:

When you have edited a file, then you can adjust which encoding will be used when saving to disk.

File Encoding for Preprocessor Files:

When you define preprocessors then they might not be able to operate on your codec. (e.g.: Your files are 16-bit-unicode and your preprocessor can only take 8-bit-ascii.) With this option you can define the encoding of preprocessor output.

Right To Left Language:

Some languages are written right to left. When this option is enabled, KDiff3 draws the text from right to left in the diff input windows and in the merge output window. Note that if you start KDiff3 with the command line option "--reverse" then all layouting will be done right to left too. (This is a feature provided by Qt.) This documentation was written assuming that "Right To Left Language" or reverse layout are disabled. So some references to "left" or "right" must be replaced by their respective counterpart if you use these options.

Miscellaneous

(These options and actions are available in menus or the buttonbar.)

Show line numbers:

You can select if line numbers should be shown for the input files.

Show space and tabulator characters for differences:

Sometimes the visible spaces and tabs are disturbing. You can turn this off.

Show white space:

Turn this off to suppress any highlighting of white-space-only changes in the text or overview-columns. (Note that this also applies to changes in numbers or comments if the options "Ignore numbers" or "Ignore C/C++ comments" are active.)

Overview options:

These choices are only available when you compare three files. In normal mode all differences are shown in one color-coded overview-column. But sometimes you are especially interested in the differences between only two of these three files. Selecting "A vs. B", "A vs. C" or "B vs. C"-overview will show a second overview column with the required information next to the normal overview.

Word wrap diff windows:

Wrap lines when their length would exceed the width of a window.

Show Window A/B/C:

Sometimes you want to use the space on the screen better for long lines. Hide the windows that are not important. (In the Windows-menu.)

Toggle Split Orientation:

Switch between diff windows shown next to each other (A left of B left of C) or above each other (A above B above C). This should also help for long lines. (In the Windows-menu.)

Start a merge quickly:

Sometimes you are viewing the deltas and decide to merge. "Merge current file" in the Directory-menu also works if you only compare two files. A single click starts the merge and uses the filename of the last input-file as the default output filename. (When this is used to restart a merge, then the output filename will be preserved.)

Configuring Keyboard-Shortcuts

Currently only the KDE-version supports user-configurable keyboard-shortcuts. (Menu Settings->Configure Shortcuts...)



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/letter_by_letter.png0000644000175100001440000000367211626145653017566 0ustar joachimusersPNG  IHDR?7{ PLTE~|~b^bUPURMRPLPNLNKLKJLJJLJJLJFPF-j-   ՔR{IDATx;s0S;ӤJ2ͶR3^VH.8Hۻ D˧3o=^ǟ.5Sv@0a/TˇzBmҲ_  0xC'$A`Ү[(^Gr9hjZ\o)RGS--[(iO%Gy,O5Edm꯰ :%L94*EW*2]|nj}z߬dQy/HuTMz:rR6qվߠ>.jFߥ߼NEXa-չPܰ,-Ex/Y4i/GXqbgͶè:ͽyisT{uró[3uq,_^eP=8_%^=k@^Ko[aU˫yj9' ɭ+::`V8ʟg3uqFNz޲.^]C6S՝,^rvhY'<15/t$G2?WsEuƫ >\Yt\LFydXʠ֨VFL#eXɾnΫ_gZŶ,tT92{>Γeү٫WK³:!'pWs/phIENDB`kdiff3-0.9.97/doc/en/merging.html0000644000175100001440000004322111127227043016006 0ustar joachimusersMerging And The Merge Output Editor Window
Merging And The Merge Output Editor Window

Merging And The Merge Output Editor Window



The merge output editor window (below the diff input windows) also has an info line at the top showing "Output:", the filename and "[Modified]" if you edited something. Usually it will contain some text through the automatic merge facilities, but often it will also contain conflicts.

!!! Saving is disabled until all conflicts are resolved !!! (Use the "Go to prev/next unsolved conflicts"-buttons to find the remaining conflicts.)

With only two input files every difference is also a conflict that must be solved manually.

With three input files the first file is treated as base, while the second and third input files contain modifications. When at any line only either input B or input C have changed but not both then the changed source will automatically be selected. Only when B and C have changed on the same lines, then the tool detects a conflict that must be solved manually. When B and C are the same, but not the same as A, then C is selected.

The Summary Column

The merge output editor window also has a summary column on the left. It shows the letter of the input from which a line was selected or nothing if all three sources where equal on a line. For conflicts it shows a questionmark "?" and the line shows "<Merge Conflict>", all in red. Because solving conflicts line by line would take very long, the lines are grouped into groups that have the same difference and conflict characteristics. But only-white-space-conflicts are separated from non-white-space-conflicts in order to ease the merging of files were the indentation changed for many lines.

Setting The Current Group And Synchronising Merge And Diff View Position

When clicking into the summary column with the left mouse button in either window then the beginning of the group belonging to that line will shown in all windows. This group then becomes the "current group". It is highlighted with the "Current range (diff) background color" and a black bar appears on the left side of the text.

Choosing Inputs A, B or C For Current Conflict And Editing

The button bar below the menubar contains three input selector buttons containing the letters "A", "B" and "C". Click the input selector button to insert (or remove if already inserted) the lines from the respective source. To choose the lines from several inputs click the respective buttons in the needed order. For example if you want that the lines from "B" appear before the lines from "A" in the output, first click "B", then "A".

If you use the auto-advance option ("Automatically go to next unsolved conflict after source selection"), you should disable this before choosing lines from several inputs or if you want to edit the lines after your choice. Otherwise KDiff3 will jump to the next conflict after choosing the first input.

It is often helpful directly edit the merge output. The summary column will show "m" for every line that was manually modified. When for instance the differences are aligned in a way that simply choosing the inputs won't be satisfactory, then you can mark the needed text and use normal copy and paste to put it into the merge output.

Sometimes, when a line is removed either by automatic merge or by editing and no other lines remain in that group, then the text <No src line> will appear in that line. This is just a placeholder for the group for when you might change your mind and select some source again. This text won't appear in the saved file or in any selections you want to copy and paste.

The text "<Merge Conflict>" will appear in the clipboard if you copy and paste some text containing such a line. But still be careful to do so.

Choosing Input A, B, or C for All Conflicts

The normal merge will start by solving simple conflicts automatically. But the "Merge"-menu provides some actions for other common needs. If you have to select the same source for most conflicts, then you can choose "A", "B" or "C" everywhere, or only for the remaining unsolved conflicts, or for unsolved white space conflicts. If you want to decide every single delta yourself, you can "Set deltas to conflicts". Or if you want to return to the automatic choices of KDiff3 then select "Automatically solve simple conflicts". KDiff3 then restarts the merge. For actions that change your previous modifications KDiff3 will ask for your confirmation before proceeding.

Note: When choosing either source for unsolved white space conflicts and the options "Ignore Numbers" or "Ignore C/C++ Comments" are used then changes in numbers or comments will be treated like white space too.

Automatic Merge of Version Control Keywords and History (Log)

Many version control systems support special keywords in the file. (e.g. "$Date$", "$Header$", "$Author$", "$Log$" etc.) During the check-in the version control system (VCS) changes these lines. For instance "$Date$" will turn into "$Date: 2005/03/22 18:45:01 $". Since this line will be different in every version of the file, it would require manual interaction during the merge.

KDiff3 offers automatic merge for these items. For simple lines that match the "Auto merge regular expression"-option in all input-files KDiff3 will choose the line from B or - if available - from C. (Additionally it is necessary that the lines in question line up in the comparison and the previous line contains no conflict.) This auto merge can either be run immediately after a merge starts (activate the option "Run regular expression auto merge on merge start") or later via the merge menu "Run Regular Expression Auto Merge".

Automatic merge for version control history (also called "log") is also supported. The history automerge can either run immediately when the merge starts by activating the option "Merge version control history on merge start" or later via the merge menu "Automatically Solve History Conflicts".

Usually the version control history begins with a line containing the keyword "$Log$". This must be matched by the "History start regular expression"-option. KDiff3 detects which subsequent lines are in the history by analysing the leading characters that came before the "$Log$"-keyword. If the same "leading comment"-characters also appears in the following lines, then they are also included in the history.

During each check-in the VCS writes a unique line specifying version-, date- and time-information followed by lines with user comments. These lines form one history-entry. This history section grows with every check-in and the most recent entries appear at the top (after the history start line).

When for parallel development two or more developers check-in a branch of the file then the merge history will contain several entries that appear as conflicts during the merge of the branches. Since merging these can become very tedious, KDiff3 offers support with two possible strategies: Just insert the history information from both contributors at the top or sort the history information by a user defined key.

The just-insert-all-entries-method is easier to configure. KDiff3 just needs a method to detect, which lines belong to one history entry. Most VCS insert an empty line after each history entry. If there are no other empty lines, this is a sufficient criterion for KDiff3. Just set an empty "History entry start regular expression". If the empty line criterion isn't sufficient, you can specify a regular expression to detect the history entry start.

Note that KDiff3 will remove duplicate history entrys. If a history entry appeared several times in the history of a input file, only one entry will remain in the output.

If you want to sort the history, then you have to specify how the sort key should be built. Use parentheses in the "History entry start regular expression" to group parts of the regular expression that should later be used for the sort key. Then specify the "History entry start sort key order" specifying a comma "," separated list of numbers referring to the position of the group in the regular expression.

Because this is not so easy to get right immediately, you are able to test and improve the regular expressions and key-generation in a dedicated dialog by pressing the "Test your regular expressions"-button.

Example: Assume a history that looks like this:

/**************************************************************************
** HISTORY:    $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $
**
**     \main\integration_branch_12   2 Apr 2001 10:45:41   tom
**  Merged branch simon_branch_15.
**
**     \main\henry_bugfix_branch_7\1   30 Mar 2001 19:22:05   henry
**  Improved the speed for subroutine convertToMesh().
**  Fixed crash.
**************************************************************************/
The history start line matches the regular expression ".*\$Log.*\$.*". Then follow the history entries.

The line with the "$Log$"-keyword begins with two "*" after which follows a space. KDiff3 uses the first non-white-space string as "leading comment" and assumes that the history ends in the first line without this leading comment. In this example the last line ends with a string that also starts with two "*", but instead of a space character more "*" follow. Hence this line ends the history.

If history sorting isn't required then the history entry start line regular expression could look like this. (This line is split in two because it wouldn't fit otherwise.)

\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
 [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
For details about regular expressions please see the regular expression documentation by Trolltech. Note that "\s" (with lowercase "s") matches any white space and "\S" (with uppercase "S") matches any non-white-space. In our example the history entry start contains first the version info with reg. exp. "\\main\\\S+", the date consisting of day "[0-9]+", month "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" and year "[0-9][0-9][0-9][0-9]", the time "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" and finally the developers login name ".*".

Note that the "leading comment"-characters (in the example "**") will already be removed by KDiff3 before trying to match, hence the regular expression begins with a match for none or more white-space characters "\s*". Because comment characters can differ in each file (e.g. C/C++ uses other comment characters than a Perl script) KDiff3 takes care of the leading comment characters and you should not specify them in the regular expression.

If you require a sorted history. Then the sortkey must be calculated. For this the relevant parts in the regular expression must be grouped by parentheses. (The extra parentheses can also stay in if history sorting is disabled.)

\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
 ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
The parentheses now contain 1. version info, 2. day, 3. month, 4. year, 5. time, 6. name. But if we want to sort by date and time, we need to construct a key with the elements in a different order of appearance: First the year, followed by month, day, time, version info and name. Hence the sortkey order to specify is "4,3,2,5,1,6".

Because month names aren't good for sorting ("Apr" would be first) KDiff3 detects in which order the month names were given and uses that number instead ("Apr"->"04"). And if a pure number is found it will be transformed to a 4-digit value with leading zeros for sorting. Finally the resulting sort key for the first history entry start line will be:

2001 04 0002 10:45:41 integration_branch_12   tom 

For more information also see Merge Settings.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/pasteinput.html0000644000175100001440000001210711127227043016551 0ustar joachimusersPaste and Drop Input
Paste and Drop Input

Paste and Drop Input

Sometimes you want to compare parts of a text that is not an own file. KDiff3 also allows you to paste text from the clipboard into the diff input window that has the focus. The diff analysis happens immediately then. In the open dialog you need not specify files then, but just close it via "Cancel".

You can also use drag and drop: Drag a file from a file manager or selected text from an editor and drop it onto a diff input window.

What's the idea? Sometimes a file contains two similar functions, but checking how similar they really are is a big effort if you first must create two files and then load them. Now you can simply copy, paste and compare the relevant sections.

Note: Currently you cannot drag anything from KDiff3. Only dropping in the diff input is supported.

Warning: Some editors still interpret the drag and drop into another program like cut (instead of copy) and paste. Your original data might be lost then.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/screenshots.html0000644000175100001440000001217611127227043016723 0ustar joachimusersScreenshots and Features
Screenshots and Features

Screenshots and Features

This screenshot shows the difference between two text files

(Using an early version of KDiff3):



3-way-merging is fully supported. This is useful if two people change code independently. The original file (the base) is used to help KDiff3 to automatically select the correct changes. The merge-editor below the diff-windows allows you to solve conflicts, while showing you the output you will get. You can even edit the output. This screenshot shows three input files being merged:



KDiff3 also helps you to compare and merge complete directories. This screenshot shows KDiff3 during a directory merge:





Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/documentation.html0000644000175100001440000003225711127227043017236 0ustar joachimusersChapter 2. File Comparison And Merge
File Comparison And Merge

Chapter 2. File Comparison And Merge

Command-Line Options

Comparing 2 files:

   kdiff3 file1 file2

Merging 2 files:

   kdiff3 file1 file2 -m
   kdiff3 file1 file2 -o outputfile

Comparing 3 files:

   kdiff3 file1 file2 file3

Merging 3 files:

   kdiff3 file1 file2 file3 -m
   kdiff3 file1 file2 file3 -o outputfile

Note that file1 will be treated as base of file2 and file3.

Special case: Files with the same name

If all files have the same name but are in different directories, you can reduce typework by specifying the filename only for the first file. E.g.:

   kdiff3 dir1/filename dir2 dir3

Commandline for starting a directory comparison or merge:

This is very similar, but now it's about directories.

   kdiff3 dir1 dir2
   kdiff3 dir1 dir2 -o destdir
   kdiff3 dir1 dir2 dir3
   kdiff3 dir1 dir2 dir3 -o destdir

For directory comparison and merge you can continue to read here.

Other command line options

To see all available command line options type

kdiff3 --help

Example output:

Options:
  -m, --merge               Merge the input.
  -b, --base file           Explicit base file. For compatibility with certain tools.
  -o, --output file         Output file. Implies -m. E.g.: -o newfile.txt
  --out file                Output file, again. (For compatibility with certain tools.)
  --auto                    No GUI if all conflicts are auto-solvable. (Needs -o file)
  --qall                    Don't solve conflicts automatically. (For compatibility...)
  --L1 alias1               Visible name replacement for input file 1 (base).
  --L2 alias2               Visible name replacement for input file 2.
  --L3 alias3               Visible name replacement for input file 3.
  -L, --fname alias         Alternative visible name replacement. Supply this once for every input.
  --cs string               Override a config setting. Use once for every setting. E.g.: --cs "AutoAdvance=1"
  --confighelp              Show list of config settings and current values.
  --config file             Use a different config file.

The option --cs allows you to adjust a configuration value that is otherwise only adjustable via the configure dialogs. But be aware that when KDiff3 then terminates the changed value will be stored along with the other settings. With --confighelp you can find out the names of the available items and current values.

Via --config you can specify a different config file. When you often use KDiff3 with completely different setups this allows you to easily switch between them.

Ignorable command line options

Many people want to use KDiff3 with some version control system. But when that version control system calls KDiff3 using command line parameters that KDiff3 doesn't recognise, then KDiff3 terminates with an error. The integration settings allow to specify command line parameters that should be ignored by KDiff3. They will appear in the usage help like in this example:

  --foo                     Ignored. (User defined.)
Command line options to ignore:

A list of options, separated via semicolon ';'. When one of these options appears on the commandline, then KDiff3 will ignore it and run without reporting an error. (Default is "u;query;html;abort").

When this isn't enough, then it is recommended to write a shell script that does the option translation.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/common/0000755000175100001440000000000011626145654014771 5ustar joachimuserskdiff3-0.9.97/doc/en/common/3.png0000644000175100001440000000037711626145652015646 0ustar joachimusersPNG  IHDR |l pHYs  tIME -"CݘbKGD̿IDATAA'ȓ I ȗHZ $2ea&i0Mo;)]-!˕-<:%.]rjIL%KC<\ А$w]2$oNɯ)9,Oɩݒa,tu I+%N0-_v?N8HIENDB`kdiff3-0.9.97/doc/en/common/bottom-right.png0000644000175100001440000000023111626145653020111 0ustar joachimusersPNG  IHDRdsRGB pHYs B(xtIME (`PLTEMIDATx1 ^ O`|P&IENDB`kdiff3-0.9.97/doc/en/common/lgpl-license0000644000175100001440000006350611626145653017303 0ustar joachimusers GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! kdiff3-0.9.97/doc/en/common/top-right.png0000644000175100001440000001023011626145652017406 0ustar joachimusersPNG  IHDRnsRGB pHYs 7˭tIME , PLTEE%_bKGD*SԞIDATx s`*6 $MH$bf$g*3Ov A;q8^41if9f5ǔ}<){A~Fpr,3mmiQ-\)/S,V VZ2ZW=j`AZ鵚Dw_-p=|p֡\KF`1Z{n셺^xƸ^xƸjcZZ \i#:kou&"\hj5"-`Nޣ"-˘]ZQ-ʅզhPMopecsₕNFݘj X\mǂV7zzxxhQ,SK,h!մeX[Wi\J.(]a^Z\B`ɵ#Zj.j5!ĭcjXF%Z,|--i5 3-[ɵBZ򕴘& s&5H"V2C\8+1hq4`ŵ\\CEdZ5,h%~ 0Z"ZwADeZ!Xp|R(/Z>iaT k+5aQ6ppJhb%▩_+`i c0deX4,A Vrz-K'`V[a:niI-2Q,c\6`ˈ"i 8nCG+K$X2Zkc)딖jVh) 3:O+ٵ`iVZӱ'ZkY)2b-:H \~K cCZ!vC+3<"nC "ҿgiVMTK %Vkq0fZLK 3 chZ>WkjdhɋKexiZ=|mps jϣЂU[hc,hkkVK“cZxkZ*P@+p,nC Z!Okk "XzL \V 1:{%KȵZ}O&ղ 0ZF5qek˴pN 77uҖkYc!La鵌k0VYZ(.h <>2%ZJiHEl&u-.;De,V-pqZ2-r1nuV().;2EZdFi\KEϱōkuFڒVhgZ+thxQkh+|wd Z&7 *WK"-2ZѲPrR \Q#"r1GpmhV8b-Z河X*Z\(X.`hE#{xzC[!T+Ɣk-.h4Z,Z-}i,D2Ik\ gA+׆J[kG׀jbZ`Ih3kBF+NjY?V;jV8iuggkYʵ ַDZ+.`͵ZVkV- 3^"-S[ku$ XfC+q!%`pZ .ﷴZN9N \gW`Vaqh 崜POΗT\*2U(rR- b'h1sxeZXEZQk4---,.J% 9-2UVn5~oiyF VioW\_B+XLUn~a0@iia:B jMZܭvZ \+劵-yײVeL%V -5`Zr-GUjuZ XJ vq 0\W%:jeo a.`Rp.<.L ^jry_W uUq Vk@˪`U_ V]Ln E\ ՝*".ӲXԾkXZ i:J- ^Ծvj|jV\Vp/Wbu+zZ`MZƅ,aqIJPaanEWӌ֐jm%,-P,Bhu匈Բ:-{SG!l܀,BUq4͈ )ՂH)Co揌>L/1f-_e O߾Y߆̇|d 3ϔ-w_öz|Rx!qHS;!:^q1_hhn\Ue#kF XEZ+LE.cRK2HϵWk`|k%prƄիhYA$Vz@.`ekld0-pMX}"Yekkj-p*WH|V>iuzziZ^ \:Z͠uk]~izSR \qI}-XA+Q\/FA)J*ki3Hq*huBVuXV \Bو[5 Z).`kٚZkɹz9]\ /H㕸-5־x-sȠuYj֠L`U%$/l<-{<2i]ʴUekjkZcyi=wຮNZQ5 /Ҳ5U(VNq]Wq߇VHqZCVuEXeak*n7h]DZB\VOV֢\'XV3ii)N2D:~`eh bŕ굞lM-sw-q<-sLޓ0n5Y2յ(V+EZa reTԢXki-/rYqu/s֚K`UKJqE( \^\ 2Z!VSSS V`E޳LcMZ"-`Q.V5-sW-`Q.`A˴\?ɄkB=i5!-`Q+hy[i+VX\ L X XDˍAqj5Zg.`i)~Q\9| ZjkZ,fR蠅V",Dֲ,CV(,Z\VH :,p)`-pA+ Ec.[6\+X49ZMm-[]Ї`XY[VekkK*rT Z=ؖɓ*jjkZ`)EV7q_P^J`UkRhmm`pZn#>z+-+CekJE[ֲKE'.G7.:Gaj5le-`ɯhj20V .ƪB \Kju9is>z&V:Pf ?g3lE\KkyhνhZ8-=W5Ņ˹ U[VRr:uxeIENDB`kdiff3-0.9.97/doc/en/common/block_title_bottom.png0000644000175100001440000000044411626145652021356 0ustar joachimusersPNG  IHDRc$6bKGD pHYs  tIME 3yIDATxM @ _PP(e`qc]x 7+$"!@>J>R#?/R3YT3陆nΪUi/}~eID~62Lgj}gc$(v eK.pǵvr~$؏=λ K}PXxIENDB`kdiff3-0.9.97/doc/en/common/10.png0000644000175100001440000000041711626145653015720 0ustar joachimusersPNG  IHDR |l pHYs  tIME 'l|bKGD̿IDAT@'Xk![H i%NI$%9?FjuG$r=(`qF"U4Ϗٝ|M.4MoX)9ł"Ĉ(k./1 .KIENDB`kdiff3-0.9.97/doc/en/common/top-middle.png0000644000175100001440000000035011626145653017532 0ustar joachimusersPNG  IHDRClisRGB pHYs 7˭tIME *|tEXtCommentCreated with GIMPWPLTE7i bKGDo*IDATc`@@0Ll@ "@@ԉ  B IENDB`kdiff3-0.9.97/doc/en/common/block_title_top.png0000644000175100001440000000050311626145653020651 0ustar joachimusersPNG  IHDRc$6bKGD pHYs  tIME 2,ɚIDATx1 1E nl#XxAa=BSPu60H$ a@|@NkYVCnWnOewɾXs|qO|B/VL_Bb~%35?SW@ma20S5{}K",f}4UT(9X/0+Ve{Lup9_W(IENDB`kdiff3-0.9.97/doc/en/common/mainheader.html0000644000175100001440000000506511626145653017761 0ustar joachimusers $title
kdiff3-0.9.97/doc/en/common/6.png0000644000175100001440000000040611626145652015642 0ustar joachimusersPNG  IHDR |l pHYs  tIME ,?3bKGD̿IDATA@'"_H@I XdJ<9$۫jwfdJ6vkfַelvɯj3$i<\Nӓdh9eKvɏCrtH\=vɧfn>$Y^60$4O3ذZ9IENDB`kdiff3-0.9.97/doc/en/common/block_title_mid.png0000644000175100001440000000031211626145652020615 0ustar joachimusersPNG  IHDRC pHYs  tIME 39\vbKGDWIDATx} BFB2Cyp8dqB;y$JCZ(7}~%QwPX1,/IENDB`kdiff3-0.9.97/doc/en/common/x11-license.html0000644000175100001440000000440311626145653017710 0ustar joachimusers X Window System License - X11R6.4

X Window System License - X11R6.4

Copyright (c) 1998 The Open Group

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of The Open Group shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group.

X Window System is a trademark of The Open Group

kdiff3-0.9.97/doc/en/common/top-left.jpg0000644000175100001440000000116711626145653017231 0ustar joachimusersJFIFHHExifMM*C  !"$"$C3"/QRaq!1Uc&Qq"A!#b ?k+{Ugx4)=fC %,].s!ncfOwehӲ'dZ ڶ';y":I]_"IUZKħy&Ke_"df2w;+ 2S 7.OjO)`ag׼/sxu8ZrmfDJ#~7+vgt@ai%B{"9rerV=E ڱ0éKEp=$7Tg,3<,vGoHU/kdiff3-0.9.97/doc/en/common/7.png0000644000175100001440000000036511626145652015647 0ustar joachimusersPNG  IHDR |l pHYs  tIME /bKGD̿IDATaP@'HtD2SdeWDfzazxIit-flwt G6ޒ$))IryKk$ad&I>.I2d!I6]< $yJ$Q$NILVO#.!i,eIENDB`kdiff3-0.9.97/doc/en/common/lgpl-license.html0000644000175100001440000006233611626145653020246 0ustar joachimusers GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSE

Version 2.1, February 1999

Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.

When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.

To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.

To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others.

Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.

We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.

For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.

In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.

Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run.

GNU Lesser General Public License
Terms And Conditions For Copying, Distribution And Modification

0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you".

A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)

"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

  1. The modified work must itself be a software library.

  2. You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

  3. You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

  4. If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

    (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

  1. Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

  2. Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.

  3. Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

  4. If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

  5. Verify that the user has already received a copy of these materials or that you have already sent this user a copy.

For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

  1. Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

  2. Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.

11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

No Warranty

15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS
kdiff3-0.9.97/doc/en/common/kde-default.css0000644000175100001440000001546611626145653017703 0ustar joachimusers/* KDE-wide default CSS for HTML documentation (all media types). Copyright (C) 2000 Frederik Fouvry This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Send comments, suggestions, etc. to Frederik Fouvry . */ /* Important note: these setting may be overridden by localised CSS. Do not add here any localization-sensitive style declarations. Any updates should be validated, e.g. http://jigsaw.w3.org/css-validator/ */ /* Note: "should be inherit" means that in a proper browser inherit should work. Somehow Netscape manages to interpret "inherit" as bright green. Yuck. */ body { background: white none; color: black; font-family: sans-serif; padding: 0 15px 0 0; margin: 0; } .legalnotice, .copyright { padding: 0; margin: 0; } .abstract { font-weight: bolder; padding-right: 1em; } .toc, .list-of-tables { padding-left: 1em; } .sect1, .chapter, .synopsis, .appendix, .preface, .article, .refsect1, .index, .glossary, .section { padding-left: 1em; } .toc .chapter { padding: 0em 0em 0em 1em; } .author { color: rgb(82,80,82); font-weight: bolder; padding: 0; margin: 0; } .othercredit { line-height: 1em; } .chapter .sect1, .chapter .titlepage, .sect1 .titlepage, .article .titlepage { padding: 0em; } .titlepage { padding-left: 1em; padding-right: 1em; } /* Links in Navigation */ .navLeft a:link, .navCenter a:link, .navRight a:link, .header a:link, .header a:visited, .bottom-nav a:link, .bottom-nav a:visited { color: #41597A; font-weight: bold; } /* Nice link colors for the main text */ :link { color: #41597A; } :visited { color: #597ba8; } .navLeft { position: absolute; left: 20px; } .navRight { position: absolute; right: 20px; } .navCenter { text-align: center; align: center; } .bannerBottomLeft { position: absolute; left: 0px; } .bannerBottomRight { position: absolute; right: 0px; } .header { background: #3E91EB none; border-bottom: 1px solid #206dcd; border-top: 1px solid white; color: white; font-size: small; height: 1.7em; line-height: 1em; margin: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 0px; vertical-align: middle; } .bottom-nav { background-color: #3E91EB; border-bottom: 1px solid #206dcd; border-top: 1px solid white; color: white; font-size: small; height: 1.7em; line-height: 1em; margin: 0px; padding-bottom: 0px; padding-left: 1em; padding-right: 0px; padding-top: 10px; vertical-align: middle; } #logo { background: url('kde_logo_bg.png') transparent repeat; } /* A little bit of padding makes the tables for keybindings etc much easier to read */ table { padding: 5px; } dl { margin-top: 0em; margin-bottom: 0.5em; } dt { margin-top: 1em; } div.toc dt { margin-top: 0px; } div.screenshot { margin-bottom: 1em; margin-top: 1em; } div.informalexample { border-style: dotted; padding: 10px; } /* But no padding for navigation elements */ .toplogo, .navbackground { padding: 0px; } table.programlisting table.screen { border-style: none; background-color: rgb(224,224,224); table-layout: auto; /* 100%? */ color: rgb(0,0,0); /* should be inherit */ } /* Same as previous block, but more general (previous is HTML only) Not all browsers understand this yet. TABLE[class~=programlisting] TABLE[class~=screen] { border-style: none; background-color: rgb(224,224,224); table-layout: auto; color: inherit; } */ p { text-align: justify; } /* More specific settings */ /* Temporary patch: browsers break on bad HTML */ /* P, H1, H2, H3, H4, H5, TD, TH { font-family: Helvetica, Arial, sans-serif; } */ p, h1, h2, h3, h4, h5, h6, td, th { font-family: sans-serif; } /* Visual cues for GUI elements etc in the text */ .guimenu, .guimenuitem, .guisubmenu { background-color: rgb(220,220,220); color: rgb(0,0,0); /* should be inherit */ } .guilabel, .interface, .guibutton { background-color: rgb(220,220,220); color: rgb(0,0,0); /* should be inherit */ } .shortcut { background-color: rgb(220,220,220); color: rgb(0,0,0); /* should be inherit */ } .shortcut .keycap { background-color: rgb(220,220,220); color: rgb(0,0,0); /* should be inherit */ } .question { font-weight: bolder; } .accel { background-color: rgb(220,220,220); color: rgb(0,0,0); text-decoration: underline; } .option, .command { background-color: rgb(255,255,255); color: rgb(0,96,160); font-weight: bold; } h1, h2, h3, h4, h5, h6 { color: rgb(82,80,82); background-color: transparent; } .arg, .parameter, .replaceable { background-color: rgb(255,255,255); color: rgb(0,128,64); font-style: italic; } .screen, .programlisting { background-color: rgb(220,220,220); color: rgb(0,0,0); /* should be inherit */ border-style: dotted; border-color: rgb(0,0,0); border-width: thin; padding: 5px; } /* This one is set in inches because the admonitions are set in inches and they're more difficult to change. We can live with it in here, for the meantime, it gives consistent margins */ .example { margin-left: 0.5in; margin-right: 0.5in; } div.mediaobject { /* float: right; */ /* might make it much nicer. although someone has to understand the rules ;-) You also don't want it to be surrounded by text it doesn't refer to ... But that may be among others a question of writing style. */ text-align: center; /* a bit of a hack: it should position _images_ */ } .caption { margin: 0em 2em 3em 2em; text-align: center; } .inlinemediaobject { vertical-align: baseline; padding-right: 1em; padding-left: 1em; } /* An idea that could be nice: a search engine looking for specific classes could display them in some conspicuous color. All that is needed is an on the fly generated style element/style sheet. */ /* Only used in the hand-made HTML license texts */ body.license { background-color: rgb(255,255,255); text-align: justify; color: rgb(0,0,0); } pre.license { background-color: rgb(255,255,255); font-family: monospace; color: rgb(0,0,0); } kdiff3-0.9.97/doc/en/common/doxygen.css0000644000175100001440000000266111626145652017163 0ustar joachimusers#content td.memItemLeft { text-align: right; } .groupHeader { font-size: medium; color: #418ADE; } hr { display: none; } #content h2 { margin-left: 0px; } table.memname { empty-cells: show; background-color: #f8f8f8; outline: .2em solid #d7d7d7; margin-top: 3em; margin-bottom: 1em; } td.memname { white-space: nowrap; font-weight: bold; } .paramtype { white-space: nowrap; font-weight: bold; } .paramname { white-space: nowrap; font-weight: bold; } .paramkey { text-align: right; } table.mdTable { background-color: #f8f8f8; outline: .2em solid #d7d7d7; width: 80%; } td.mdRow { padding: 8px 20px; } td.md { font-weight: bold; } td.mdname1 { font-weight: bold; color: #602020; } td.mdname { font-weight: bold; color: #602020; } div.bic { border: 2px solid #E72300; background: #F6CFDD; padding: 0.5ex 1em; } div.memitem { } div.memproto { /*background: #F9F9F9; border: 1px solid #AAAAAA;*/ font-weight: bold; } div.memproto td { white-space: nowrap; padding:0; margin:0; } table.memname { border-spacing: 0; border-collapse:collapse; } td.paramtype { font-family:monospace; } div.memproto a.el { font-family:monospace; } div.memproto a.elRef { font-family:monospace; } SPAN.keyword { color: #008000 } SPAN.keywordtype { color: #604020 } SPAN.keywordflow { color: #e08000 } SPAN.comment { color: #800000 } SPAN.preprocessor { color: #806020 } SPAN.stringliteral { color: #002080 } SPAN.charliteral { color: #008080 } kdiff3-0.9.97/doc/en/common/top-right.jpg0000644000175100001440000000120611626145652017405 0ustar joachimusersJFIFHHExifMM*C  !"$"$C3;",!Ua%1AQ"qr!A1 ?B"8:w.)V9 rJUB"8D4Tf)"*RlL4|@onRK(,mʺR9R (9%/c,XXȓOER%/kwu8enJkI|RK}%'#Dֱ*X{{%NZR]ލt!TCrf- s'bb[ص-^_--L5?l 7cl 7c@6161l 7cl 7c5!M%V伋-ċRkdiff3-0.9.97/doc/en/common/5.png0000644000175100001440000000037711626145652015650 0ustar joachimusersPNG  IHDR |l pHYs  tIME .5#NbKGD̿IDATaP@'DbEF2BAF"Ȯ]^iw&> bX}R2q86YL I]dן!YuLFinding Strings
Finding Strings

Finding Strings

You can search for a string in any text-window of KDiff3. The "Find ..."-command (Ctrl-F) in the Edit-menu opens a dialog that lets you specify the string to search for. You can also select the windows which should be searched. Searching will always start at the top. Use the "Find Next"-command (F3) to proceed to the next occurrence. If you select to search several windows then the first window will be searched from top to bottom before the search starts in the next window at the top again, etc.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/iteminfo.png0000644000175100001440000001260211626145653016021 0ustar joachimusersPNG  IHDRJPLTEſÿþ}|}{{{yzyuvutstsqsrorpmpklkjljijiigiefebdbabaa_a\\\Z[ZZYZYXYSVSRURRURRTRRPRQOQOMOKIKJIJIIIEEEBCBACA@A@@@@===9;9999989989878252131131030...*+**+*()(%&%!"! " !      g&=IDATx]kN߿!D^܄K*xRXJAJR]hKB- ARC /H.w~Ɖ1}d<<<8N/ Mҗ?L@ 6r@Ɋk˒׵}Y$LN:3YqwKLJko_%?Cxe\eu`5Ty־'گ0 (e;e5Tu Pzo)}mزs`WOj=j-0;Fnނ'M6fhXԐ;~{rNJKz%:Gú6h;8k#q;bqc\®ј{6Dǫnٕg{385ATCIȟ= >ț\d2oPfhX"ZwKdlNhѥ!VPthOLYnyo~kлdٌ|-.v`f<($K7CZ"E:\%@9ßƠ:'`WT*.CYm/X$̆zBϝ0 +Bɚa/X;$(\:8Z8eRf(2SBIOHz((z2F|%hqP7>"_Y^^Ѷ>&_YA=:Kb$vڵ}D$$ʳ$2V۾"P4xVӛ+ =.h烾|:2 ʄҧ+ӔBBB0(G|C~,W|c^L|YP3CiPZ?rAW|H{+}>dAi^YJYP09\! ʊ}[@g+|H{<]\y%)_)_)BBB&('XD7B'(ѱxgn!WMgs 9<dYΌĠ`{$+W>Hp ~/_i W&BU ϕ/Ns'eW|eW2MkIR28D5M\ҕ 2P.ȭޯoo*V2P5jk`U,]bT#5M\ҕ 225i)[Wbl.d-W"{?* J"><@' -^gW޷V i*(]XÙ0P?\ůɿ! fc]TͳݸK(kyyv߾h[+B#Bqρ!p7p}p08Vu]<#t~aBs˝NF-vie3;Y٩+7NO;s'f/ދcCX >[资կj Q69N/ T3 8Ng#=Trv-_C͹4vY >d>Zv Qa/f Toٸ/ Ƭ Ú]e_n.Cbgl֪> =aST~q!?D:Y˳g-Q,|Ί 0T A>Bnn `}Dz٘"Y+jGnh=. ]yJsH#'t5]sW:8OnJhLYZsJu^]~bk Q4\AN泇Z4;ZѮgzk:PC/Bsqڱy=FO;r#tqS"*]lvDѥ׀Cf`3]kTY'FSeHM!NܞxCgz6WN |go-sr8.U^N3jEȍ2Dz^  1άhбi,t/  j¤xC2!yo\.Ji $puǥψZȅv/b<,*%|k(4<BͻwET`7α2WxuAd7}iڂZ(H|~'y?负@R_D_< ~ aB ^^[*Yw2Sxx4K>_Oqۥ_9&bze!'z_9&b+#sEXc[n葩JiWt%&BP\"kE$\~L犴&bJM…|ϣ5l+1[vײiR(S(S( IJcԊD#+(ʝNJ/5Mws>8΃eTHfBx!DH2]yV{n e =*SpS䐗jlVD'-1!nvJBf BD>&ke}C9$;o 変>8!4F]B€u6s7E6bPHb!BJgeF}W/CIYm;pe%%{{,K|Ӓugfpk:sVѳ zh9P;o|\S.֌ G˦ y]*4dRBЁ\/4{Yﶥ9!G.u HɠZ}zQ[A^IOhCSzQIqǝ ͢/]Vs^2&DqY apI i }lD} 2,tJ~({kå c%F$Jg\w׏z:rcԝz`n{!wl/qt=ㇲ1+u&C7y6i-G*!w'kL߹\VL\ J4[~jי>䐗ӠaCهuQBύ ϸP{!eb\#l҂1tNFS122M))))i,$贐xJZ_!,z8}[;\Ǣ N3D#T}-޽3Y,z(}ΩaET'3rg ,:q EVB)E9uhV.:A#ʡG$q^{$N{0&E_A/A)E|sB={D#\=EcR&>_R".:#=,:6ܾ2XUYt8-KD>|Ey>x'Ȣ,Vcȇ/yod䡮+ V+DgaܷOE>|Egצ*Ag2}P+0ޚ6]g{/sX`EU(W/& )-o.8q<{/2,. P*o(O񓾢 )#o.0q<{/sXpEj+4,N[j9WJ_хr+ |XEy Z 9An52IAX.is|XEy #F9WrlWt! åE}3ϗYt'+VAWtqb#3GZVA)qE[{<0k+ʰ++Zj& J+0[nE\tqy5^eX`]|V+GA0;B!P\х|Is}C|"Chapter 4. Miscellaneous Topics
Miscellaneous Topics

Chapter 4. Miscellaneous Topics

Networktransparency via KIO

KIO-Slaves

KDE supports networktransparency via KIO-slaves. KDiff3 uses this for reading input files and for scanning directories. This means that you can specify files and directories on local and remote resources via URLs.

Example:

   kdiff3 test.cpp  ftp://ftp.faraway.org/test.cpp
   kdiff3 tar:/home/hacker/archive.tar.gz/dir ./dir

The first line compares a local file with a file on an FTP-server. The second line compares a directory within an compressed archive with a local directory.

Other KIO-slaves that are interesting are:

  • Files from the WWW (http:),

  • Files from the FTP (ftp:),

  • Encrypted file transfer (fish:, sftp:),

  • Windows-ressources (smb:),

  • Local files (file:),

Other things that are possible, but probably less useful are:

  • Man-pages (man:),

  • Info-pages (info:),

How To Write URLs

An URL has a different syntax compared with paths for local files and directories. Some things should be considered:

  • A path can be relative and can contain "." or "..". This is not possible for URLs which are always absolute.

  • Special characters must be written with "escaping". ("#"->"%23", space->"%20", etc.) E.g. A file with the name "/#foo#" would have the URL "file:/%23foo%23".

  • When URLs don't work as expected, try to open them in Konqueror first.

Capabilities of KIO-Slaves

Networktransparency has one drawback: Not all ressources have the same cababilities.

Sometimes this is due to the file system of the server, sometimes due to the protocol. Here is a short list of restrictions:

  • Sometimes there is no support for links.

  • Or there is no way to distinguish if a link points to a file or a directory; always assuming a file. (ftp:, sftp:).

  • Can't always determine the filesize.

  • Limited support for permissions.

  • No possibility to modify permissions or modification time, so permissions or time of a copy will differ from the original. (See the option "Trust the size".) (To modify permissions or modification time is only possible for local files.)



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/dirmergeoptions.html0000644000175100001440000002431311127227043017571 0ustar joachimusersOptions for Comparing and Merging Directories
Options for Comparing and Merging Directories

Options for Comparing and Merging Directories

The KDiff3-preferences (menu "Settings"->"Configure KDiff3") has a section called "Directory Merge" with these options:

Recursive Directories:

Select whether to search directories recursively.

File Pattern(s):

Only files that match any pattern here will be put in the tree. More than one pattern may be specified here by using the semicolon ";" as separator. Valid wildcards: '*' and '?'. (e.g. "*.cpp;*.h"). Default is "*". This pattern is not used on directories.

File Anti-Pattern(s):

Files that match this pattern will be excluded from the tree. More than one pattern may be specified here via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default is "*.orig;*.o;*.obj".

Directory Anti-Pattern(s):

Directories that match this pattern will be excluded from the tree. More than one pattern may be specified here via using the semicolon ";" as separator. Valid wildcards: '*' and '?'. Default is "CVS;deps;.svn".

Use CVS-Ignore:

Ignore files and directories that would also be ignored by CVS. Many automatically generated files are ignored by CVS. The big advantage is that this can be directory specific via a local ".cvsignore"-file. (See info:/cvs/cvsignore.)

Find Hidden Files and Directories:

On some file systems files have an "Hidden"-attribute. On other systems a filename starting with a dot "." causes it to be hidden. This option allows you to decide whether to include these files in the tree or not. Default is on.

Follow File Links:

For links to files: When disabled, then the symbolic links are compared. When enabled, then the files behind the links are compared. Default is off.

Follow Directory Links:

For links to directories: When disabled, then the symbolic links will be compared. When enabled then the link will be treated like a directory and it will be scanned recursively. (Note that the program doesn't check if the link is "recursive". So for example a directory that contains a link to the directory would cause an infinite loop, and after some time when the stack overflows or all memory is used up, crash the program.) Default is off.

Case Sensitive Filename Comparison:

Default is false on Windows, true for other operating systems.

File Comparison Mode:

Binary Comparison:

This is the default file comparison mode.

Full Analysis:

Do a full analysis of each file and show the statistics information columns. (Number of solved, unsolved, nonwhite and white conflicts.) The full analysis is slower than a simple binary analysis, and much slower when used on files that don't contain text. (Specify the appropriate file-antipatterns.)

Trust the modification date:

If you compare big directories over a slow network, it might be faster to compare the modification dates and file length alone. But this speed improvement comes with the price of a little uncertainty. Use this option with care. Default is off.

Trust the size:

Similar to trusting the modification date. No real comparison happens. Two files are considered equal if their file-sizes are equal. This is useful when the file-copy operation didn't preserve the modification date. Use this option with care. Default is off.

Synchronize Directories:

Activates "Sync-Mode" when two directories are compared and no explicit destination directory was specified. In this mode the proposed operations will be chosen so that both source directories are equal afterwards. Also the merge result will be written to both directories. Default is off.

Copy newer instead of merging:

Instead of merging the proposed operation will copy the newer source if changes happened. (Considered unsafe, because it implies that you know, that the other file hasn't been edited too. Check to make sure in every case.) Default is off.

Backup files:

If a file or complete directory is replaced by another or is deleted then the original version will be renamed with an ".orig" extension. If an old backup file with ".orig" extension already exists then this will be deleted without backup. This also affects the normal merging of single files, not only in directory-merge mode. Default is on.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/dirmergevisible.html0000644000175100001440000003372511127227043017542 0ustar joachimusersDirectory Merge Visible Information
Directory Merge Visible Information

Directory Merge Visible Information

While reading the directories a message-box appears that informs you of the progress. If you abort the directory scan, then only files that have been compared until then will be listed.

When the directory scan is complete then KDiff3 will show a listbox with the results left, ...



... and details about the currently selected item on the right:



The Name Column

Each file and directory that was found during the scan is shown here in a tree. You can select an item by clicking it with the mouse once.

The directories are collapsed by default. You can expand and collapse them by clicking on the "+"/"-" or by double-clicking the item or by using the left/right-arrow-keys. The "Directory"-menu also contains two actions "Fold all subdirs" and "Unfold all subdirs" with which you can collapse or expand all directories at once.

If you double-click a file item then the file comparison starts and the file-diff-window will appear.

The image in the name column reflects the file type in the first directory ("A"). It can be one of these:

  • Normal file

  • Normal directory (directory-image)

  • Link to a file (file-image with a link arrow)

  • Link to a directory (directory-image with a link arrow)

If the file type is different in the other directories, then this is visible in the columns A/B/C and in the window that shows the details about the selected item. Note that for such a case no merge operation can be selected automatically. When starting the merge, then the user will be informed of problems of that kind.

The Columns A/B/C and the Coloring Scheme

As can be seen in the image above the colors red, green, yellow and black are used in the columns A/B/C.

  • Black: This item doesn't exist in this directory.

  • Green: Newest item.

  • Yellow: Older than green, newer than red.

  • Red: Oldest item.

But for items that were identical in the comparison their color also is identical even if the age is not.

Directories are considered equal if all items they contain are identical. Then they also will have the same color. But the age of a directory is not considered for its color.

The idea for this coloring scheme I came upon in dirdiff. The colors resemble the colors of a leaf that is green when new, turns yellow later and red when old.

The Operation Column

After comparing the directories KDiff3 also evaluates a proposal for a merge operation. This is shown in the "Operation" column. You can modify the operation by clicking on the operation you want to change. A small menu will popup and allows you to select an operation for that item. (You can also select the most needed operations via keyboard. Ctrl+1/2/3/4/Del will select A/B/C/Merge/Delete respectively if available.) This operation will be executed during the merge. It depends on the item and on the merge-mode you are in, what operations are available. The merge-mode is one of

  • Three directory-merge ("A" is treated as older base of both).

  • Two directory-merge.

  • Two directory-sync-mode (activate via option "Synchronize Directories").

In three directory merge the operation proposal will be: If for an item ...

  • ... all three directories are equal: Copy from C

  • ... A and C are equal but B is not: Copy from B (or if B does not exist, delete the destination if exists)

  • ... A and B are equal but C is not: Copy from C (or if C does not exist, delete the destination if exists)

  • ... B and C are equal but A is not: Copy from C (or if C does not exist, delete the destination if exists)

  • ... only A exists: Delete the destination (if exists)

  • ... only B exists: Copy from B

  • ... only C exists: Copy from C

  • ... A, B and C are not equal: Merge

  • ... A, B and C don't have the same file type (e.g. A is a directory, B is a file): "Error: Conflicting File Types". While such items exist the directory merge cannot start.

In two directory merge the operation proposal will be: If for an item ...

  • ... both directories are equal: Copy from B

  • ... A exists, but not B: Copy from A

  • ... B exists, but not A: Copy from B

  • ... A and B exist but are not equal: Merge

  • ... A and B don't have the same file type (e.g. A is a directory, B is a file): "Error: Conflicting File Types". While such items exist the directory merge cannot start.

Sync-mode is active if only two directories and no explicit destination were specified and if the option "Synchronize directories" is active. KDiff3 then selects a default operation so that both directories are the same afterwards. If for an item ...

  • ... both directories are equal: Nothing will be done.

  • ... A exists, but not B: Copy A to B

  • ... B exists, but not A: Copy B to A

  • ... A and B exist, but are not equal: Merge and store the result in both directories. (For the user the visible save-filename is B, but then KDiff3 copies B also to A.)

  • ... A and B don't have the same file type (e.g. A is a directory, B is a file): "Error: Conflicting File Types". While such items exist the directory merge cannot start.

When two directories are merged and the option "Copy newer instead of merging" is selected, then KDiff3 looks at the dates and proposes to choose the newer file. If the files are not equal but have equal dates, then the operation will contain "Error: Dates are equal but files are not." While such items exist the directory merge cannot start.

The Status Column

During the merge one file after the other will be processed. The status column will show "Done" for items where the merge operation has succeeded, and other texts if something unexpected happened. When a merge is complete, then you should make a last check to see if the status for all items is agreeable.

Statistics Columns

When the file comparison mode "Full Analysis" is enabled in the options, then KDiff3 will show extra columns containing the numbers of unsolved, solved, nonwhite and whitespace conflicts. (The solved-column will only show when comparing or merging three directories.)

Selecting Listed Files

Several options influence which files are listed here. Some are accessible in the settings dialog. The Directory-menu contains the entries:

  • "Show Identical Files": Files that have been detected equal in all input directories.

  • "Show Different Files": Files that exist in two or more directories but are not equal.

  • "Show Files only in A": Files that exist only in A, but not in B or C.

  • "Show Files only in B": Files that exist only in B, but not in A or B.

  • "Show Files only in C": Files that exist only in C, but not in A or B.

Activate only the "Show"-options for the items you want listed. If for example you only want to list all items that exist either in A or in B but not in both, you'll have to activate "Show Files only in A" and "Show Files only in B" and deactivate all others ("Show Identical Files", "Show Different Files", "Show Files only in C"). The list will be updated immediately to reflect the change.

These options also apply for directories with one exception: Disabling "Show Different Files" will not hide any complete directories. This will work only for files within.

Note that of these only the "Show Identical Files"-option is persistant. The others are enabled when starting KDiff3.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/triple_diff.png0000644000175100001440000000457311626145653016506 0ustar joachimusersPNG  IHDR2GPLTEʂ k m.mXEXSKSRLRQLQPLPMLMKLKJLJJLJJLJJLJJLJGIG&'&[S_Ԟ6IDATx\r<+n5_Mz30l i?^~2'9'CҖ)Am#J`vjh&=\3) 0SV]3Lm zmӻdV؀-L.& {*OnT~!Kˉhl(nyYO+Uy8lr65{n%0[Ƕ@6uӶ9l✍2y!0PU5dm b }ǖ}6 p fip"}%pSw-``ڲ|/1c}RؽV `_spڃi#,fOjU1cƷ*_5wl;sL=^Ζ[i⡧bg1 l,aj 1!; Np V$+:j/`= q @06Naٚ<Czs׉.p 5FP?NFAMz`e/í|UfϦ8nvdi><m3@[^<6 ǬҊ$2@rMaZ{ϒw%6@l0Qo:<@Dw/KR&kգg0eGs(״pl6L5yD;3Ǥ<1`8 pш`Ԭ <s ?W 7/i@.i(e&0"V`G0eZ`<Cc< 2ֽy2ljj *3L[;MG3ց;i?M2] X]4e+V]Y4zyb9/,1En9` 06 fcuj}{ b3vi`._\U@QaTǁq4`Nz 0^HV @5@|U(e&p(;WZ2<+`Z3I @!^m b?7tkb"{T{dM_7n] hjg劼4Sl- q 8eL+;(a8XY^Ze ²i HI F#7祓$`q\!S,c4!;VtRӣ91C5@%`dٌh:CS#>0zHj,X_!S P |Apl(ӎijFwXQ@ ,<$W^: ``=v||~UɩÖU=`4s8@_9,EPIENDB`kdiff3-0.9.97/doc/en/white_space.png0000644000175100001440000000360411626145653016504 0ustar joachimusersPNG  IHDR<GPLTEƿyw32E@fPJTQKQQLQMLMKLKIMIBTB"u"sEIDATxMr0 s=ݰo]3:COXLMpMD CI,'uX~%nA4Wq]>/WYhڒC!q2+q$xZSYd#4v9O=vx+m,@ &@Ja% ىAkie׊5tȿܒ'$JpGLfegpZjp,@iVܔZګ?' V >VoM0*7`"`%X V Vk?X .`eޚ` n}Ċ33g;[`e%w7<yl$0f;X`0D{wC ta m^̱|rCW~| jU" 9,'3wWj4O,NrCsBC6.,Aܗ^ԣDI+܅|}z?w`Kd-Df [DR±"f.FD9Aѓ]BY2 \̮E9Ϧe]\w4J7l>u+/,㪑GeMjnG/:&W6躏 ޷eنn xܰ,4 3k> ]w>\ \\ 25uCM?sdn-~vأndV$s cZJVk+ZJV+wrhCm+s}rNֳ$'dqC8+<]7 u 8Dc41z6:tuEm+qDqEpbӶ@01|?l8!̫矶i%oBon Ojp"dv0ja6b0wwj7S1i?x\"'k1aaw9Y쬏07'IENDB`kdiff3-0.9.97/doc/en/kpart.html0000644000175100001440000001255711127227043015507 0ustar joachimusersUsing KDiff3 as a KPart
Using KDiff3 as a KPart

Using KDiff3 as a KPart

KDiff3 is a KPart. Currently it implements the KParts::ReadOnlyPart-interface.

It's main use is as difference-viewer in KDevelop. KDevelop always starts the internal difference viewer first. To invoke KDiff3 press the right mouse button on the difference viewer window and select "Show in KDiff3Part" from the contextmenu.

KDiff3 normally requires two complete files as input. When used as part KDiff3 will assume that the inputfile is a patch-file in the unified format. KDiff3 then retrieves the original filenames from the patch-file. At least one of the two files must be available. KDiff3 will then invoke patch to recreate the second file.

In Konqueror you can select a patch-file and select "Preview in"-"KDiff3Part" from the contextmenu. Be aware that this won't work if none of the original files are available, and it is not reliable if the original file(s) have changed since the patch-file was generated.

When run as a part KDiff3 only provides the a two-file-diff, a very small toolbar and menu. Merging or directory-comparison are not supported then.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/faq.html0000644000175100001440000003521211127227043015126 0ustar joachimusersChapter 5. Questions and Answers
Questions and Answers

Chapter 5. Questions and Answers

This document may have been updated since your installation. You can find the latest version at http://docs.kde.org/.

5.1. Why is it called "KDiff3"?
5.2. Why did I release it under GPL?
5.3. Some buttons and functions are missing. What's wrong?
5.4. Often lines that are similar but not identical appear next to each other but sometimes not. Why?
5.5. Why must all conflicts be solved before the merge result can be saved?
5.6. How can I synchronise the diff and merge views, so that all views show the same text position?
5.7. Why does the editor in the merge result window not have an "undo"-function?
5.8. When I removed some text, then suddenly "<No src line>" appeared and cannot be deleted. What does that mean and how can one remove this?
5.9. Why doesn't KDiff3 support syntax-highlighting?
5.10. Can I use KDiff3 to compare OpenOffice.Org, Word, Excel, PDF-, etc. files?
5.11. Where has the the directory option "List only deltas" gone?
5.12. How can I make a big selection in the diff input window because scrolling takes so long?
5.13. There is so much information here, but your question is still not answered?
5.1.

Why is it called "KDiff3"?

Tools named "KDiff" and "KDiff2" (now called "Kompare") already exist. Also "KDiff3" should suggest that it can merge like the "diff3"-tool in the Diff-Tool collection.

5.2.

Why did I release it under GPL?

I'm using GPL programs for a very long time now and learned very much by having a look at many of the sources. Hence this is my "Thank You" to all programmers that also did so or will do the same.

5.3.

Some buttons and functions are missing. What's wrong?

You compiled from source but you probably didn't specify the correct KDE-prefix with configure. By default configure wants to install in /usr/local but then KDE can't find the user-interface ressource file (i.e. kdiff3ui.rc). The README-file contains more information about the correct prefix.

5.4.

Often lines that are similar but not identical appear next to each other but sometimes not. Why?

Lines where only the amount of white space characters is different are treated as "equal" at first, while just one different non-white character causes the lines to be "different". If similar lines appear next to each other, this actually is coincidence but this fortunately is often the case. See also Manual Diff Help.

5.5.

Why must all conflicts be solved before the merge result can be saved?

For each equal or different section the editor in the merge result window remembers where it begins or ends. This is needed so that conflicts can be solved manually by simply selecting the source button (A, B or C). This information is lost while saving as text and it is too much effort to create a special file format that supports saving and restoring all necessary information.

5.6.

How can I synchronise the diff and merge views, so that all views show the same text position?

Click into the summary column left of the text. (See also here.)

5.7.

Why does the editor in the merge result window not have an "undo"-function?

This was too much effort until now. You can always restore a version from one source (A, B or C) by clicking the respective button. For big editing the use of another editor is recommended anyway.

5.8.

When I removed some text, then suddenly "<No src line>" appeared and cannot be deleted. What does that mean and how can one remove this?

For each equal or different section the editor in the merge result window remembers where it begins or ends. "<No src line>" means that there is nothing left in a section, not even a new line character. This can happen either while merging automatically or by editing. This is no problem, since this hint won't appear in the saved file. If you want the orignal source back just select the section (click on the left summary column) and then click the source button with the needed contents (A/B or C).

5.9.

Why doesn't KDiff3 support syntax-highlighting?

KDiff3 already uses many colors for difference highlighting. More highlighting would be confusing. Use another editor for this.

5.10.

Can I use KDiff3 to compare OpenOffice.Org, Word, Excel, PDF-, etc. files?

Although KDiff3 will analyse any kind of file the result will probably not be very satisfactory for you.

KDiff3 was made to compare pure text files. OpenOffice, Word, Excel etc. store much more information in the files (about fonts, pictures, pages, colors etc.) which KDiff3 doesn't know about. So KDiff3 will show you the contents of the file interpreted as pure text, but this might be unreadable or at least it will look very odd.

Since most programs nowadays store their contents in XML-format, you might be able to read it as pure text. So if the change was only small, KDiff3 still might help you.

The best solution if you only want to compare the text (without embedded objects like pictures) is to use "Select All" and "Copy" in your program to copy the interesting text to the clipoard and then in KDiff3 paste the text into either diff input window. (See also Select, Copy And Paste.)

5.11.

Where has the the directory option "List only deltas" gone?

There are now several "Show"-options in the directory menu. Disabling "Show identical files" will achieve what enabling "List only deltas" used to do.

5.12.

How can I make a big selection in the diff input window because scrolling takes so long?

Start the selection as usual (click and hold the left mouse button). Then use the navigation keys (e.g. page up, page down) while holding the left mouse button down. (See also Select, Copy And Paste.)

5.13.

There is so much information here, but your question is still not answered?

Please send me your question. I appreciate every comment.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/saving.html0000644000175100001440000001157111127227043015650 0ustar joachimusersSaving
Saving

Saving

Saving will only be allowed, when all conflicts were solved. If the file already exists and the "Backup files"-option is enabled then the existing file will be renamed with an ".orig"-extension, but if such a file exists it will be deleted. When you exit or start another diff-analysis and data wasn't saved yet, then KDiff3 will ask if you want to save, cancel or proceed without saving. (KDiff3 does not catch any signals. So if you "kill" KDiff3 then your data will be lost.)

Line endings are saved according to the normal method on the underlying operating system. For Unices each line ends with an linefeed-character "\n", while for Win32-based systems each line ends with a carriage-return + a linefeed "\r\n". KDiff3 does not preserve the line-endings of the input files, which also means that you shouldn't use KDiff3 with binary files.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/installation.html0000644000175100001440000001131411127227043017055 0ustar joachimusersAppendix A. Installation
Installation

Appendix A. Installation

How to obtain KDiff3

You can download the latest version of KDiff3 from its homepage http://kdiff3.sourceforge.net.

KDiff3 is also available for other platforms. See the homepage for details.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/dothemerge.html0000644000175100001440000002074311127227043016505 0ustar joachimusersDoing A Directory Merge
Doing A Directory Merge

Doing A Directory Merge

You can either merge the currently selected item (file or directory), or all items. When you have made all your operation choices (in all subdirectories too) then you can start the merge.

Be aware that if you didn't specify a destination directory explicitely, then the destination will be "C" in three directory mode, "B" in two directory merge mode, and in sync-mode it will be "A" or/and "B".

If you have specified a destination directory also check that all items that should be in the output, are in the tree. There are some options that cause certain items to be omitted from the directory comparison and merge. Check these options to avoid unpleasant surprises:

  • "Recursive Directories": If this is off, then items in subdirectories will not be found.

  • "Pattern"/"Anti-Pattern": Include/exclude items that match

  • "Exclude Hidden Files"

  • "Show"-options (Show Identical/Different Files, Files only in A/B/C)

If you change the settings in order to list more files, you must do a rescan via menu "Directory"->"Rescan" yourself. (The reason for this is that for faster comparison-speed KDiff3 omits the comparison for files suppressed by these criteria.) If you changed your file and dir patterns to exclude files, then the file-list will immediately be updated on closing the options-dialog.

Note that when you write to a completely new directory then you usually also want to copy the identical files. In that case enable the "Show Identical Files"-option. If your destination-directory is one of the inputs, then this isn't necessary because the file is already there.

If you are satisfied so far, the rest is easy.

To merge all items: Select "Start/Continue directory merge" in the "Directory"-menu or press F7 (which is the default shortcut). To merge only the current item: Select "Run Operation For Current Item" or press F6.

If due to conflicting filetypes still some items with invalid operations exist, then a messagebox will appear and these items will be pointed out, so you can select a valid operation for the item.

If you merge all items a dialog will appear giving you the options "Do it", "Simulate it" and "Cancel".

  • Select "Simulate it" if you want to see what would be done without actually doing it. A verbose list of all operations will be shown.

  • Otherwise select "Do it" to really start merging.

Then KDiff3 will run the specified operation for all items. If manual interaction is required (single file merge), then a merge window will open (see the big screenshot).

When you have finished with manually merging a file, again select "Start/Continue directory merge" or the key F7. If you haven't saved it yet, a dialog will ask you to do so. Then KDiff3 will continue with the next item.

When KDiff3 encounters an error, it will tell you so and will show the verbose-status-information. At the bottom of this list, there will be some error messages which should help you to understand the cause of the problem. When you continue merging (F7 key) KDiff3 will give you the choice to retry or skip the item that caused the problem. This means that before continuing you can choose another operation or solve the problem by other means.

When the merge is complete, then KDiff3 will inform you via a message box.

If some items were merged individually before running the directorymerge then KDiff3 remembers this (while this merge-session goes on), and doesn't merge them again when later the merge for all items is run. Even when the merge was skipped or nothing was saved these items count as completed. Only when you change the merge operation the "Done"-status of the item will be removed and it can be merged again.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/opendialog.html0000644000175100001440000001220411127227043016474 0ustar joachimusersOpen-Dialog
Open-Dialog

Open-Dialog

Since many input files must be selectable, the program has a special open dialog:



The open dialog allows to edit the filenames by hand, selecting a file via the file-browser ("File...") or allows to choose recent files from the drop-down lists. If you open the dialog again, then the current names still remain there. The third input file is not required. If the entry for "C" remains empty, then only a two file diff analysis will be done.

You can also select a directory via "Dir...". If for A a directory is specified then a directory-comparison/merge starts. If A specifies a file but B, C or the output specify a directory, then KDiff3 uses the filename from A in the specified directories.

If "Merge" is selected, then the "Output"-line becomes editable. But it is not required to specify the output filename immediately. You can also postpone this until saving.

The "Configure..."-button opens the options-dialog, so that you can set the options before running the analysis.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/en/features.html0000644000175100001440000001675511127227043016210 0ustar joachimusersMore Features
More Features

More Features

Line-By-Line And Char-By-Char Diff-Viewer

By using the possiblities of a graphical color display KDiff3 shows exactly what the difference is. When you have to do many code-reviews, you will like this.



See White-Space Differences At One Glance

Spaces and tabs that differ appear visibly. When lines differ only in the amount of white space this can be seen at one look in the summary column on the left side. (No more worries when people change the indentation.)



Triple-Diff

Analyze three files and see where they differ.

The left/middle/right windows are named A/B/C and have the blue/green/magenta color respectively.

If one file is the same and one file is different on a line then the color shows which file is different. The red color means that both other files are different.



Comfortable Merge Of Two Or Three Input Files

KDiff3 can be used to merge two or three input files and automatically merges as much as possible. The result is presented in an editable window where most conflicts can be solved with a single mouseclick: Select the buttons A/B/C from the button-bar to select the source that should be used. You can also select more than one source. Since this output window is an editor even conflicts which need further corrections can be solved here without requiring another tool.

And ...

  • Fast navigation via buttons.

  • A mouse-click into a summary column sync's all windows to show the same position.

  • Select and copy from any window and paste into the merge result window.

  • Overview column that shows where the changes and conflicts are.

  • The colors are adjustable to your specific preferences.

  • Adjustable Tab size.

  • Option to insert spaces instead of tabs.

  • Open files comfortably via dialog or specify files on the command line.

  • Search for strings in all text windows. Find (Ctrl-F) and Find Next (F3)

  • Show the line numbers for each line.

  • Paste clipboard or drag text into a diff input window.

  • Networktransparency via KIO.

  • Can be used as diff-viewer in KDevelop 3.

  • Word-wrap for long lines.

  • Support for Unicode, UTF-8 and other codecs.

  • Support for right to left languages.

  • ...



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

kdiff3-0.9.97/doc/pt/0000755000175100001440000000000011626145654013522 5ustar joachimuserskdiff3-0.9.97/doc/pt/index.docbook0000644000175100001440000037567311626145653016217 0ustar joachimusers KDiff3"> ]> O Manual do &kdiff3; Joachim Eibl
joachim.eibl at gmx.de
JoséPires
zepires@gmail.com
Tradução
2002-2007 Joachim Eibl &FDLNotice; 2007-31-03 0.9.92 O &kdiff3; é uma ferramenta de diferenças e junção das mesmas para ficheiros e pasta que compara e junta dois ou três ficheiros de texto ou pastas de entrada, mostra as diferenças linha-a-linha e carácter-a-carácter(!), oferece uma funcionalidade de junção automática, tem um editor para resolver confortavelmente os conflitos de junção, oferece a transparência de rede através do KIO, tem opções para realçar ou esconder as alterações nos espaços em branco ou comentários, suporta o Unicode, o UTF-8 e outras codificações de ficheiros, imprime as diferenças, suporta as palavras-chave de controlo de versões e de junção do histórico. Este documento descreve o &kdiff3; versão 0.9.92. KDE kdeextragear kdiff3 diff juntar CVS 'diff' triplo comparar ficheiros pastas controlo de versões junção-por-três-vias diferenças-nas-linhas sincronizar kpart kio transparente na rede editor espaços em branco comentários
Introdução Outra Interface para o Diff? Existem várias ferramentas de detecção de diferenças. Porquê escolher o &kdiff3;? Deixe que o autor diga porque o escreveu. O &kdiff3; começou porque eu tinha de fazer uma junção difícil. A junção é necessária quando várias pessoas trabalham nos mesmos ficheiros de um projecto. Uma junção poderá de alguma forma ser automatizada, quando a ferramenta de junção não só tem os novos ficheiros modificados (chamados de 'ramificações' ou 'branches'), mas também o ficheiro original (chamado de 'base'). A ferramenta de junção irá escolher automaticamente as modificações que só foram feitas numa das ramificações. Quando vários contribuintes alteram as mesmas linhas, então a ferramenta de junção detecta um conflito que terá de ser resolvido manualmente. "A junção foi então difícil porque um dos colaboradores alterou várias coisas e corrigiu a indentação em vários sítios. Outro também alterou bastante texto, o que resultou em vários conflitos de junção". "A ferramenta que usei então só mostrava as linhas modificadas, mas não o que tinha sido alterado dentro dessas linhas. E não havia nenhuma informação sobre os locais em que só a indentação tinha sido alterada. A junção foi um pequeno pesadelo por isso". "Daí, foi este o início. A primeira versão podia mostrar as diferenças dentro de uma linha e mostrava as diferenças de espaços em branco. Depois, muitas outras funcionalidades foram adicionada para aumentar a utilidade". "Por exemplo, se você quiser comparar algum texto rapidamente, então poderá copiá-lo para a área de transferência e colá-lo noutra janela de diferenças". "Uma funcionalidade que necessitou de um grande esforço foi a comparação de pastas e a funcionalidade de junção, o que transformou o programa quase num navegador de ficheiros completo". Espero que o &kdiff3; funcione para si também. Divirta-se! Joachim Eibl (2003) Imagens e Funcionalidades Esta imagem mostra a diferença entre dois ficheiros de texto (A usar uma versão anterior do &kdiff3;): A junção por 3-vias é suportada por completo. Isto é útil se duas pessoas alterarem o código independentemente. O ficheiro original (a base) é usado para ajudar o &kdiff3; a seleccionar automaticamente as alterações correctas. O editor de junções por baixo das janelas de diferenças permite-lhe resolver os conflitos, enquanto lhe mostra o resultado que você irá obter. Até poderá editar o resultado. Esta imagem mostra três ficheiros de entrada a serem reunidos: O &kdiff3; também o ajuda a comparar e a juntar pastas completas. Esta imagem mostra o &kdiff3; durante a junção de pastas: Mais Funcionalidades Visualizador de Diferenças Linha-a-Linha e Carácter-a-Carácter Usando as possibilidades de um ambiente gráfico a cores, o &kdiff3; mostra exactamente o que é a diferença. Quando tiver de fazer várias revisões de código, irá gostar disto. Ver as Diferenças de Espaços em Branco de uma Vez Os espaços e as tabulações que são diferentes aparecem visivelmente. Quando as linhas diferem apenas pelo número de espaços em branco, isto poderá ser visto num instante se olhar para a coluna do resumo do lado esquerdo. (Não há mais problemas quando as pessoas mudam a indentação). Diferenças Triplas Analise três ficheiros e veja no que eles diferem. As janelas da esquerda/meio/direita são intituladas A/B/C e têm as cores azul/verde/magenta, respectivamente. Se um dos ficheiros for igual e o outro for diferente numa linha, então a cor mostra qual o ficheiro que é diferente. A cor vermelha indica que ambos os ficheiros são diferentes. Junção Confortável de Dois ou Três Ficheiros de Entrada O &kdiff3; pode ser usado para juntar dois ou três ficheiros de entrada e junta automaticamente o máximo possível. O resultado é apresentado numa janela editável em que a maioria dos conflitos poderá ser resolvida com um simples 'click' do rato: Seleccione os botões A/B/C na barra de botões para seleccionar a origem que deverá ser usada. Dado que esta janela de resultado é um editor, até mesmo os conflitos que necessitem de mais correcções poderão ser resolvidos aqui sem necessitarem de outra ferramenta. E ... Navegação rápida através de botões. Um 'click' do rato numa coluna de resumo sincroniza todas as janelas para mostrarem a mesma posição. Seleccionar e copiar de qualquer janela para colar na janela do resultado da junção. Uma coluna de visão geral que mostra onde estão as alterações e os conflitos. As cores são ajustáveis de acordo com as suas preferências específicas. Um tamanho de tabulação ajustável. Uma opção para inserir espaço em vez de tabulações. Abertura confortável dos ficheiros através de uma janela ou da linha de comandos. Procurar por sequências de texto em todas as janelas de texto. Procurar (Ctrl-F) e Procurar o Seguinte (F3). Mostrar os números de linha para cada linha. Colar o conteúdo da área de transferência e arrastar o texto para uma janela de introdução de diferenças. Transparência na rede através do KIO. Pode ser usado como visualizador de diferenças no KDevelop 3. Mudança de linha para as linhas compridas para as repartir. Suporte para o Unicode, UTF-8 e outras codificações. Suporte para as línguas escritas da direita-para-esquerda. ... Comparação e Junção de Ficheiros Opções da Linha de Comandos Comparar 2 ficheiros: kdiff3 ficheiro1 ficheiro2 Juntar 2 ficheiros: kdiff3 ficheiro1 ficheiro2 kdiff3 ficheiro1 ficheiro2 resultado Comparar 3 ficheiros: kdiff3 ficheiro1 ficheiro2 ficheiro3 Juntar 3 ficheiros: kdiff3 ficheiro1 ficheiro2 ficheiro3 kdiff3 ficheiro1 ficheiro2 ficheiro3 resultado Repare que o ficheiro1 será tratado como base para o ficheiro2 e o ficheiro3. Caso especial: Ficheiros com o mesmo nome Se todos os ficheiros tiverem o mesmo nome mas estiverem em pastas diferentes, poderá reduzir o trabalho de escrita se indicar apenas o nome do ficheiro para o primeiro parâmetro. P.ex.: kdiff3 pasta1/ficheiro pasta2 pasta3 Linha de comandos para iniciar uma comparação ou junção de pastas: É bastante semelhante, mas diz respeito agora apenas às pastas. kdiff3 pasta1 pasta2 kdiff3 pasta1 pasta2 destino kdiff3 pasta1 pasta2 pasta3 kdiff3 pasta1 pasta2 pasta3 destino Para a comparação e junção de pastas, poderá continuar a ler aqui. Outras opções da linha de comandos Para mais informações sobre as opções da linha de comandos use kdiff3 --help Exemplo do resultado: kdiff3 --help Opções: -m, --merge Junta o resultado. -b, --base ficheiro Ficheiro de base explícito. Para compatibilidade com certas ferramentas. -o, --output ficheiro Ficheiro de resultado. O -m é implícito. P.ex.: -o novo_ficheiro.txt --out ficheiro O ficheiro de resultado, mais uma vez. (Para compatibilidade com certas ferramentas.) --auto Sem interface gráfica se todos os conflitos são resolúveis. (Necessita do -o) --qall Não resolve os conflitos automaticamente. (Para compatibilidade...) --L1 nome1 Substituto visível do nome do ficheiro 1 (base). --L2 nome2 Substituto visível do nome do ficheiro 2. --L3 nome3 Substituto visível do nome do ficheiro 3. -L, --fname nome Um substituto visível alternativo para o nome. Use este uma vez para cada ficheiro de entrada. --cs texto Substitui uma opção de configuração. Use uma vez para cada opção. P.ex. --cs "AutoAdvance=1" --confighelp Mostra uma lista com as opções de configuração e os valores actuais. --config ficheiro Usa um ficheiro de configuração diferente. A opção permite-lhe ajustar um valor de configuração que, de outro modo, só é ajustável através das janelas de configuração. Mas tenha em mente que, quando o &kdiff3; então terminar, o valor alterado será gravado com as outras opções. Com o , poderá descobrir os nomes dos itens disponíveis e dos valores actuais. Através do , poderá indicar um ficheiro de configuração diferente. Quando usar frequentemente o &kdiff3; com opções completamente diferentes, isto permitir-lhe-á mudar rapidamente entre elas. Ignorar as opções da linha de comandos Muitas pessoas querem usar o &kdiff3; com alguns sistemas de controlos de versões. Mas quando esse sistema de controlo de versões chama o &kdiff3;, usando os parâmetros da linha de comandos que o &kdiff3; não reconhece, então o &kdiff3; termina com um erro. A configuração da integração permite indicar parâmetros da linha de comandos que deverão ser ignorados pelo &kdiff3;. Eles irão aparecer na ajuda de utilização, como neste exemplo: --xpto Ignorado. (Definido pelo utilizador.) Opções da linha de comandos a ignorar:Uma lista de opções, separadas pelo ponto-e-vírgula ';'. Quando alguma destas opções aparecer na linha de comandos, então o &kdiff3; ignorá-la-á e irá executar sem indicar qualquer erro. (Por omissão é "u;query;html;abort"). Quando isto não for suficiente, então recomenda-se que crie um programa que faça a tradução das opções. Janela de Abertura Dado que é necessário seleccionar vários ficheiros, o programa tem uma janela de abertura especial: A janela de abertura permite editar os nomes dos ficheiros à mão, seleccionando um ficheiro através do navegador dos ficheiros ("Ficheiro...") ou permite escolher os ficheiros recentes a partir das listas respectivas. Se abrir a janela de novo, então os nomes actuais irão nela permanecer. O terceiro ficheiro de entrada não é obrigatório. Se o item do "C" continuar em branco, então só será efectuada uma análise de diferenças com dois ficheiros. Poderá também seleccionar uma pasta com o "Dir...". Se for indicado como A uma pasta, então será iniciada uma comparação/junção de pastas. Se o A se referir a um ficheiro, mas o B, o C ou o destino corresponderem a pastas, então o &kdiff3; usa o nome do ficheiro em A nas pastas indicadas. Se a "Junção" estiver seleccionada, então o campo "Resultado" fica editável. Mas não é obrigatório indicar o nome do ficheiro do resultado imediatamente. Você poderá também adiar isto até à gravação. O botão "Configurar..." abre a janela de opções, para que possa definir as opções antes de executar a análise. Colar e Arrastar Dados Em algumas ocasiões, você poderá querer comparar partes de um texto que não está em nenhum ficheiro próprio. O &kdiff3; também lhe permite colar texto da área de transferência para a janela de introdução de diferenças que esteja em primeiro plano. A análise de diferenças irá ocorrer então. Na janela de abertura, você não irá necessitar de indicar ficheiros, fechando-a então com o "Cancelar". O utilizador também poderá usar o 'drag and drop': Arraste um ficheiro de um gestor de ficheiros ou o texto seleccionado de um editor e arrastá-lo para uma janela de introdução de diferenças. Qual é a ideia? Algumas vezes um ficheiro contém duas funções semelhantes, mas a verificação sobre as semelhanças entre elas é um grande esforço, se você precisar de criar primeiro dois ficheiros e depois carregá-los. Assim, poderá simplesmente copiar, colar e comparar as secções relevantes. Nota: De momento, você não poderá arrastar nada a partir do &kdiff3;. Só é permitido largar dados nas janelas de introdução de diferenças. Atenção: Alguns editores ainda interpretam à mesma o 'drag and drop' noutro programa como o Cortar (em vez do Copiar) e Colar. Os seus dados originais poderão deste modo perder-se. Comparar os Ficheiros e Interpretar a Informação nas Janelas de Entrada Linha de InformaçãoNo cimo de cada janela de texto existe a sua "linha de informação". As linhas de informação das janelas de introdução de diferenças contêm uma letra "A", "B" ou "C", o nome do ficheiro e o número da primeira linha visível da janela. (Lembre-se que a janela "C" é opcional). Cada linha de informação aparece com uma cor diferente. (Se as localizações forem demasiado extensas para caberem, poderá mover o cursor do rato para cima da linha de informação, de modo a que apareça uma dica com o nome completo). Quando tiver seleccionado outro ficheiro através de navegação ou acabar de editar o nome do ficheiro aqui, carregando para tal em Enter, o novo ficheiro será carregado e comparado com os ficheiros já carregados previamente. ColoraçãoAs três janelas de entrada têm atribuídas as letras "A", "B" e "C". O "A" tem uma cor azul, o "B" tem uma verde e o "C" magenta. (Estas são as cores por omissão, mas podem ser alteradas no menu de configuração). Quando é detectada uma diferença, então a cor mostra qual o ficheiro de entrada que é diferente. Quando os outros ficheiros de entrada diferem todos, então a cor usada para exprimir isto é a vermelha por omissão ("Cor do conflito" na Configuração). Este esquema de cores é particularmente útil no caso de três ficheiros de entrada, os quais serão vistos na próxima secção (Juntar). Coluna de ResumoÀ esquerda de cada texto está a "coluna de resumo". Se ocorrerem diferenças numa linha, então a coluna do resumo mostra a cor respectiva. Para uma diferença por espaços em branco, o resumo fica axadrezado. Para as linguagens de programação em que os espaços em branco não são muito importantes, isto é útil para ver de um modo geral se existe algo de importante modificado. (No C/C++, os espaços em branco só são importantes dentro de cadeias de caracteres, comentários, pré-processador e em algumas outras situações esotéricas. A linha vertical que separa a coluna do resumo e o texto é interrompida (tracejada), se o ficheiro de entrada não tiver aí nenhuma linha. Quando a mudança de linha estiver activa, então esta linha vertical aparece ponteada para as linhas repartidas. Coluna de ResumoDo lado direito, aparece uma coluna de "resumo" à esquerda da barra de posicionamento vertical. Ela mostra a coluna de resumo comprimida dos dados de "A". Todas as diferenças e conflitos ficam visíveis numa vista rápida. Quando só são usadas duas janelas de entrada, então todas as diferenças aparecem a vermelho, dado que cada diferença é também um conflito. Um rectângulo preto delimita a parte visível dos dados de entrada. Para as linhas de dados bastante compridas, quando o número de linhas de dados é maior do que a altura da coluna de resumo em pixels, então várias linhas de dados de entrada irão partilhar uma linha de resumo. Um conflito, neste caso, terá então uma prioridade elevada sobre as diferenças simples, que por sua vez têm prioridade sobre a ausência de alterações, como tal não se perde nenhuma diferença ou conflito neste caso. Se carregar nesta coluna de resumo, será mostrado o texto correspondente. Alinhar Manualmente as LinhasEm alguns casos, o algoritmo coloca as linhas erradas a seguir umas às outras. Ou se deseja comparar um pedaço de texto com outro que se encontra numa posição completamente diferente no outro ficheiro. Para esses casos, poderá indicar manualmente ao &kdiff3; para alinhar certas linhas. Marque o texto, com o qual deseja melhorar o alinhamento, com o rato como faria na cópia e colagem na primeira janela de diferenças e escolhe então o "Adicionar o Alinhamento Manual das Diferenças" na janela de "Diferenças" (atalho de teclado "Ctrl-Y") . Irá aparecer uma barra laranja na coluna do resumo, a seguir ao texto escolhido. Repita isto para a segunda e (se disponível) a terceira janela de diferenças. O &kdiff3; irá calcular imediatamente de novo as diferenças sempre que fizer isto, alinhando as linhas escolhidas. Obviamente, algumas das linhas anteriormente correspondentes poderão não corresponder mais de novo. De momento, a junção não suporta a utilização da ajuda de diferenças manual. Juntar e Dividir Manualmente Secções de DiferençasEm alguns casos, o &kdiff3; irá ver secções de diferenças a mais ou a menos para a junção. Nesse caso, poderá juntar ou dividir as secções existentes. Adicione secções novas, seleccionando primeiro o texto nas linhas que pertencem em conjunto a qualquer uma das janelas de entrada (como acontece na cópia para a área de transferência). Depois, seleccione a opção "Dividir a Diferença na Selecção", do menu "Juntar". Serão adicionadas divisões antes da primeira linha e depois da última linha do texto seleccionado. Se só quiser adicionar uma secção, então seleccione o texto que começa noutra divisão de secção. Para juntar as secções, seleccione algo nas linhas das secções a juntar, em qualquer uma das janelas de entrada. (Poderá também juntar diversas secções de uma vez). Depois, escolha "Juntar as diferenças seleccionadas" do menu "Juntar". Juntar e a Janela do Editor do Resultado da Junção A janela do editor do resultado da junção (por baixo das janelas de introdução de diferenças) também tem uma linha de informação no topo que mostra "Resultado:", o nome do ficheiro e "[Modificado]" se você tiver alterado alguma coisa. Normalmente irá conter algum texto resultante das funcionalidades de junção automática, mas frequentemente irá conter também conflitos. A gravação está desactivada até que todos os conflitos estejam resolvidos. (Use os botões para "Ir para o Conflito por Resolver Anterior/Seguinte" para descobrir os conflitos que faltam.) Com apenas dois ficheiros de entrada, todas as diferenças são também conflitos que necessitam de ser resolvidos manualmente. Com três ficheiros de entrada, o primeiro ficheiro é tratado como a base, enquanto que o segundo e o terceiro contêm as modificações. Quando, em qualquer linha, só o ficheiro B ou o C tiverem sido alterados mas não ambos, então será seleccionada a origem alterada. Só quando o B e o C alteraram as mesmas linhas é que a ferramenta detecta um conflito que deverá ser resolvido manualmente. Quando o B e o C são iguais mas não são o mesmo que o A, é seleccionado o C. A Coluna de ResumoA janela do editor do resultado da junção também tem uma coluna de resumo à esquerda. Mostra a letra do ficheiro de entrada para o qual foi seleccionada a linha ou nada, se todas as três origens são iguais nessa linha. Para os conflitos, ela mostra um ponto de interrogação "?" e a linha mostra "<Conflito na Junção>", tudo a vermelho. Dado que a resolução de conflitos linha a linha poderá levar bastante tempo, as linhas são reunidas em grupos com as mesmas características de diferenças e conflitos. Mas os conflitos só com espaços em branco são separados dos outros conflitos para facilitar a junção dos ficheiros em que a indentação foi alterada em várias linhas. Configurar o Grupo Actual e Sincronizar a Posição de Visualização da Junção e DiferençasAo carregar na coluna do resumo com o &LMB; em ambas as janelas, o grupo que pertença a essa linha será seleccionado em todas as janelas e o início desse grupo será mostrado. (Isto poderá envolver um salto de posição automático para a janelas se o início do grupo não estiver visível). Este grupo fica então o "grupo actual". Fica realçado com a "Cor de fundo do intervalo actual" e aparece uma barra preta do lado esquerdo do texto. Escolher as Entras A, B ou C para os Conflitos e Edições ActuaisA barra de botões por baixo do menu contém três botões de selecção que contêm as letras "A", "B" e "C". Carregue no selector de entrada para inserir (ou remover se já estiver inserido) as linhas da origem respectiva. Para escolher as linhas de várias entradas, carregue nos botões respectivos pela ordem necessária. Por exemplo, se quiser que as linhas de "B" apareçam antes das linhas de "A" no resultado, carregue primeiro em "B" e depois em "A". Se usar a opção de avanço automático ("Ir automaticamente para o próximo conflito não resolvido após a selecção da fonte"), deverá desactivar isto antes de escolher as linhas de várias entradas ou se quiser editar as linhas após a sua escolha. Caso contrário, o &kdiff3; irá saltar para o próximo conflito após a selecção da primeira entrada. Normalmente é útil editar directamente o resultado da junção. A coluna de resumo irá mostrar "m" por cada linha modificada manualmente. Quando, por exemplo, as diferenças estão alinhadas de forma que não seja satisfatório escolher simplesmente as entradas, então poderá marcar o texto necessário e usar a cópia e colagem normais para colocar no resultado da junção. Algumas das vezes, quando uma linha é removida tanto por junção automática como por edição e não ficam mais nenhumas linhas nesse grupo, então o texto "<Sem linha de origem>" irá aparecer nessa linha. Isto é apenas um substituto para o grupo, quando decidir mudar de ideias e seleccionar algum texto de origem de novo. Este texto não irá aparecer no ficheiro gravado ou em qualquer selecção que deseje copiar e colar. O texto "<Conflito na Junção>" irá aparecer na área de transferência se copiar e colar algum texto que tenha uma dessas linhas. Mas tenha à mesma cuidado ao fazê-lo. Escolher a Entrada A, B ou C para Todos os ConflitosA junção normal irá começar por resolver os conflitos simples automaticamente. Mas o menu "Juntar" oferece algumas acções para outros usos comuns. Se você tiver de seleccionar a mesma origem para a maioria dos conflitos, então poderá escolher "A", "B" ou "C" em qualquer lado ou apenas para os conflitos que continuem ainda por resolver ou então para os conflitos de espaços em branco por resolver. Se quiser decidir cada um dos deltas por si próprio, poderá "Passar os deltas para conflitos". Ou, se preferir voltar às escolhas automáticas do &kdiff3;, seleccione então a opção "Resolver automaticamente os conflitos simples". Nesse caso, o &kdiff3; irá reiniciar a junção. Para as acções que alteram as suas modificações anteriores, o &kdiff3; pedir-lhe-á uma confirmação antes de prosseguir. Nota: Ao escolher uma das origens para os conflitos que não sejam de espaços em branco e as opções "Ignorar os Números" ou "Ignorar os Comentários de C/C++" forem usadas, então as alterações nos números ou comentários serão tratadas como espaços em branco também. Junção Automática das Palavras-Chave e do Histórico do Controlo de Versões (Registo)Muitos sistemas de controlo de versões suportam palavras-chave especiais no ficheiro. (p.ex. "$Date: 2006-03-31 15:21:46 +0100 (Sex, 31 Mar 2006) $", "$Header$", "$Author: scripty $", "$Log$" etc.) Durante o envio de novas versões, o sistema de controlo de versões (SCV) muda essas linhas. Por exemplo, o "$Date: 2006-03-31 15:21:46 +0100 (Sex, 31 Mar 2006) $" passará a "$Date: 2006-03-30 17:52:41 +0200 (Thu, 30 Mar 2006) $". Dado que esta linha será diferente em cada versão do ficheiro, iria necessitar de intervenção manual durante a junção. O &kdiff3; oferece a junção automática destes itens. Para as linhas simples que correspondam à opção da "Expressão regular da junção automática" para todos os ficheiros de entrada, o &kdiff3; irá escolher a linha do B ou - se disponível - do C. (Para além disso, é necessário que as linhas em questão se alinhem na comparação e a linha anterior não contenha conflitos). Esta junção automática pode tanto correr automaticamente após o início de uma junção (active a opção "Executar a junção automática da expressão regular no início da junção") como posteriormente, através do menu de junção "Executar a Junção Automática da Expressão Regular". A junção automática para o histórico do controlo de versões (também chamado de "registo") é também suportada. A junção automática do histórico tanto poderá correr automaticamente quando iniciar a junção, activando para tal a opção "Juntar o histórico do controlo de versões no início da junção" ou mais tarde através do menu de junção "Resolver Automaticamente os Conflitos do Histórico". Normalmente, o histórico do controlo de versões começa por uma linha que contém a palavra-chave "$Log$". Isto deverá corresponder à opção "Expressão regular do início do histórico". O &kdiff3; detecta quais as linhas subsequentes no histórico, analisando os caracteres iniciais que aparecem antes da palavra-chave "$Log$". Se também aparecer o mesmo "comentário inicial" nas linhas seguintes, então estas também serão incluídas no histórico. Durante o envio de cada nova versão, o SCV grava uma linha única que indica a versão, a data e a hora, seguida de linhas com os comentários dos utilizadores. Essas linhas formam um item de histórico. Esta secção do histórico vai crescendo com o envio de versões novas e os itens mais recentes aparecem no topo (a seguir à linha inicial do histórico). Quando, em desenvolvimentos paralelos, dois ou mais programadores enviam versões em ramificações diferentes, o histórico da junção irá conter vários itens que aparecem como conflitos na junção das ramificações. Dado que a junção destes se poderá tornar demasiado aborrecidas, o &kdiff3; oferece o suporte com duas estratégias possíveis: basta introduzir a informação de histórico de ambas as contribuições no topo ou ordenar a informação de histórico do utilizador, usando uma chave definida pelo mesmo. O método basta-inserir-todos-os-itens é mais fácil de configurar. O &kdiff3; só precisa de um método para detectar as linhas que pertencem a um item de histórico. A maioria dos SCV inserem uma linha em branco, após cada item do histórico. Se não existirem mais linhas em branco, então este será um critério suficiente para o &kdiff3;. Basta introduzir uma "Expressão regular do início do item de histórico" em branco. Se o critério da linha vazia não for suficiente, poderá indicar uma expressão regular para detectar o início do item do histórico. Lembre-se que o &kdiff3; irá remover os itens de histórico duplicados. Se um item de histórico aparecia várias vezes no histórico de um ficheiro de entra, só um irá aparecer no resultado. Se quiser ordenar o histórico, então terá de indicar como deverá ser gerada a chave de ordenação. Use parêntesis na "Expressão regular do início do item de histórico" para agrupar as partes da expressão regular que deverão mais tarde ser usadas na chave de ordenação. Indique depois a "Ordem da chave de ordenação do início do item de histórico", indicando para tal uma lista de números separados por ",", referentes à posição do grupo na expressão regular. Dado que isto não é tão simples de pôr a funcionar logo, poderá testar e melhorar as expressões regulares e gerar as chaves, numa janela dedicada, se carregar no botão "Testar as suas expressões regulares". Exemplo: Assuma um histórico que se pareça ao seguinte: /************************************************************************** ** HISTORY: $Log: \janela_do_ze\Aplicacao\src\algoritmo-complexo.cpp $ ** ** \principal\ramo_integracao_12 2 Abr 2001 10:45:41 ze ** Juntou-se a ramificação manel_versao_15. ** ** \principal\ramo_correccao_erros_7\1 30 Mar 2001 19:22:05 pedro ** Melhorias na velocidade da sub-rotina convertToMesh(). ** Correcção do estoiro. **************************************************************************/ A linha inicial do histórico corresponde à expressão regular ".*\$Log.*\$.*". Depois, seguem-se os itens de histórico. A linha com a palavra-chave "$Log$" começa com dois "*", após os quais se segue um espaço. O &kdiff3; usa o primeiro texto não-branco como "comentários iniciais" e assume que o histórico termina na primeira linha sem esse comentário inicial. Neste exemplo, a última linha termina com um texto que também começa por dois "*" mas, em vez de um espaço, seguem-se mais "*". Como tal, esta linha termina o histórico. Se a ordenação do histórico não for necessária, então a expressão regular do início de linha do item de histórico poderá ser algo como se segue. (Esta linha está dividida em dois, por não caber de outra forma.) \s*\\principal\\\S+\s+[0-9]+ (Jan|Fev|Mar|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov|Dez) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* Para mais detalhes sobre as expressões regulares, veja por favor a documentação da Trolltech sobre expressões regulares. Repare que o "\s" (com o "s" minúsculo) corresponde a qualquer espaço em branco e o "\S" (com o "S" maiúsculo) corresponde a qualquer carácter não-branco. No nosso exemplo, o início do item de histórico, contém primeiro a informação da versão com a expressão regular "\\principal\\\S+", a data consiste no dia "[0-9]+", mês "(Jan|Fev|Mar|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov|Dez)" e no ano "[0-9][0-9][0-9][0-9]", a hora "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" e, finalmente, o nomes do programador ".*". Repare nos caracteres do "comentário inicial" (no exemplo "**"), que terão já sido removidos pelo &kdiff3; antes de tentar a junção; como tal, a expressão regular começa com uma correspondência a zero ou mais espaços em branco "\s*". Dado que os caracteres de comentários poderão ser diferentes para cada ficheiro (p.ex., o C/C++ usa caracteres de comentários diferentes de um programa em Perl), o &kdiff3; toma conta dos caracteres de comentário iniciais e você não os deverá definir na expressão regular. Se precisar de um histórico ordenado, então deverá ser calculada a chave de ordenação. Para tal, as partes relevantes da expressão regular deverão ser agrupadas entre parêntesis. (os parêntesis extra poderão ficar à mesma, mesmo que a ordenação do histórico esteja desactivada.) \s*\\principal\\(\S+)\s+([0-9]+) (Jan|Fev|Mar|Abr|Mai|Jun|Jul|Ago|Set|Out|Nov|Dez) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) Os parêntesis contêm agora 1. a informação de versão, 2. dia, 3. mês, 4. ano, 5. hora, 6. nome. Mas, se pretender ordenar por data e hora, é necessário construir uma chave com os elementos por uma ordem de aparência diferente: Primeiro o ano, seguido do mês, dia, hora, informação de versão e nome. Daí, a ordem da chave de ordenação será "4,3,2,5,1,6". Dado que os nomes dos meses não são bons para ordenar (o "Abr" viria em primeiro lugar), o &kdiff3; detecta em que ordem os nomes dos meses foram dados e usa esse número em alternativa ("Abr"->"04"). E, se for encontrado um número puro, será transformado num valor de 4 algarismos com zeros iniciais para ordenar. Finalmente, a chave de ordenação resultante da linha inicial do primeiro item de histórico será: 2001 04 0002 10:45:41 ramo_integracao_12 ze Para mais informações, veja também a Opções de Junção. Navegação e Edição Muita da navegação será feita com as barras de posicionamento e com o rato, mas você poderá também navegar com as teclas. Se carregar numa das janelas, então poderá usar as teclas de cursores, o Page Up, o Page Down, o Home, o End, o Ctrl-Home ou o Ctrl-End como iria usar noutros programas. A coluna de resumo ao lado da barra de posicionamento vertical dos ficheiros de entrada poderá também ser usada para navegar se carregar nela. Poderá também usar a roda do rato para subir ou descer. No editor do resultado da junção, poderá também usar as outras teclas para editar. Poderá alternar entre o modo de inserção ou sobreposição com a tecla Insert. (Por omissão, está no modo de inserção). Um 'click' com o botão esquerdo do rato em qualquer coluna de resumo irá sincronizar todas as janelas para mostrar o início do mesmo grupo de linhas (tal como é explicado em Configurar o Grupo Actual e Sincronizar a Posição da Janela de Junção e Diferença). A barra de botões também contém sete botões de navegação com os quais poderá saltar para a primeira/última/actual diferença, para a diferença seguinte/anterior (Ctrl-Baixo/Ctrl-Cima), para o conflito seguinte/anterior (Ctrl-Pg Down/Ctrl-Pg Up) ou para o conflito seguinte/anterior por resolver. Repare que, para o &kdiff3;, um "conflito" que não foi resolvido automaticamente no início da junção irá permanecer como "conflito", mesmo que resolvido. Daí a necessidade de distinguir os "conflitos por resolver". Avanço Automático Existe também um botão "Ir automaticamente para o próximo conflito por resolver após a selecção do código" (Avanço Automático). Se activar esta opção, então sempre que seleccionar uma origem, o &kdiff3; irá saltar para o próximo conflito por resolver automaticamente. Isto poderá ajudar quando quiser sempre escolher apenas uma origem. Quando precisar de ambas as origens, ou se quiser editar depois de seleccionar, então provavelmente irá querer desligar esta opção. Antes de prosseguir para o próximo conflito por resolver, o &kdiff3; mostra-lhe o efeito da sua escolha durante algum tempo. Este atraso é ajustável na Configuração da Diferença & Junção: Poderá indicar o "Atraso no avanço automático" num valor entre 0 e 2 000 milisegundos. Sugestão: Cansado de muitos 'clicks'? - Use um atraso de avanço automático reduzido e os atalhos Ctrl-1/2/3 para seleccionar o A/B/C em muitos conflitos. Seleccionar, Copiar e Colar As janelas de entrada não mostram nenhum cursor, como tal as selecções necessitam de ser feitas com o rato, ao carregar com o botão esquerdo do rato no início, mantendo o botão do rato carregado e indo até ao fim, momento em que larga o botão do rato de novo. Poderá também seleccionar uma palavra se fizer duplo-click nela. No editor do resultado da junção poderá também seleccionar com o teclado se mantiver a tecla Shift carregada enquanto navega com as teclas de cursores. Se a selecção ultrapassar o intervalo visível, você poderá passar o rato por cima dos extremos da janela, o que fará com que o &kdiff3; se desloque nessa direcção. Para as selecções muito grandes, poderá também usar as teclas de navegação, enquanto mantém pressionado o rato. P. ex., use o Page Up e o Page Down para ir rapidamente para uma dada posição. Na posição final, largue o botão do rato. Para seleccionar tudo na janela actual, use a opção do menu "Editar"->"Seleccionar Tudo" (Ctrl-A). Para copiar para a área de transferência, precisa de carregar no botão "Copiar" (Ctrl-C ou Ctrl-Insert). Porém, existe uma opção para "Copiar Automaticamente a Selecção". Se esta estiver activa, então tudo o que seleccionar será copiado imediatamente, sem que você tenha de copiar explicitamente. Todavia, preste atenção ao usar isto, dado que o conteúdo da área de transferência poderá ficar assim destruído por acidente. O "Cortar" (Ctrl-X ou Shift-Delete) copia para a área de transferência e apaga o texto seleccionado. O "Colar" (Ctrl-V ou Shift-Insert) insere o texto da área de transferência na posição do cursor ou na selecção actual. Se colar numa das janelas de entrada de diferenças, o conteúdo da área de transferência será mostrado nessa janela e a comparação irá reiniciar imediatamente. Isto é útil se quiser pegar rapidamente num pedaço de texto de qualquer local e compará-lo com outra coisa, sem ter de criar ficheiros primeiro. Gravar A gravação só será permitida quando todos os conflitos tiverem sido resolvidos. Se o ficheiro já existir e a opção de "Salvaguarda dos ficheiros" estiver activa, então o ficheiro existente verá o seu nome mudado de modo a ter uma extensão ".orig", mas se existir um destes ficheiros será removido. Quando você sair ou iniciar outra análise de diferenças e os dados não tiverem sido gravados ainda, então o &kdiff3; irá perguntar se você deseja gravar, cancelar ou prosseguir sem gravar. (O &kdiff3; não lida com nenhuns sinais ('signals') do sistema. Por isso, se fizer um "kill" ao &kdiff3;, então os seus dados serão perdidos.) Os fins de linha são gravados de acordo com o método normal do sistema operativo subjacente. Para os UNIXes, cada linha terminada com um carácter de 'linefeed' "\n", enquanto que nos sistemas baseados em Win32, cada linha termina com um 'carriage-return' + um 'linefeed' "\r\n". O &kdiff3; não preserva os fins de linha dos ficheiros de entrada, o que também significa que você não deverá usar o &kdiff3; com ficheiros binários. Procurar Sequências de Texto Você poderá procurar por uma sequência de texto em qualquer janela de texto do &kdiff3;. O comando "Procurar ..." (Ctrl-F) no menu "Editar" abre uma janela que lhe permite indicar o texto a procurar. Poderá também seleccionar as janelas que deverão ser pesquisadas. A procura irá ter início sempre no topo do ficheiro. Use o comando "Procurar o Seguinte" (F3) para prosseguir com a próxima ocorrência. Se optar por procurar em várias janelas, então a primeira janela será percorrida de alto a baixo antes de a procura começar na próxima janela a partir do topo de novo, etc. Impressão O &kdiff3; suporta a impressão das diferenças do ficheiro de texto. O comando "Imprimir..." (Ctrl-P) no menu Ficheiro abre uma janela que lhe permite seleccionar a impressora e ajustar as outras opções. Existem várias possibilidades para ajustar o intervalo. Devido às diferentes janelas de impressão nos diferentes sistemas operativos, o método para obter certas selecções de intervalos varia. Tudo:Imprime tudo. Actual:Imprime uma página que começa na primeira linha visível da janela. (Nos sistemas sem esta opção, isto poderá ser obtido se indicar o número de página 10000 na impressão.) Selecção:Antes de optar por imprimir, seleccione o texto com o rato (como acontece na cópia e colagem) numa das janelas de entrada das diferenças, para definir a linha inicial e final. Se não foi seleccionado nenhum texto numa das janelas de entrada, então esta opção não estará disponível. (Nos sistemas sem esta opção, isto poderá ser conseguido se indicar para imprimir a página 9999.) Intervalo:Indica a primeira e última página. As outras opções importantes serão retiradas das opções normais: Tamanho e tipo de letra Mostrar os números de linha Mudança de linha Cores etc. A formatação em paisagem (na horizontal) também é recomendada na impressão. Opções As opções e a lista de ficheiros recentes serão gravadas quando você sair do programa e serão carregadas de novo quando o iniciar. (Menu Configuração->Configurar o &kdiff3;...) Tipo de Letra Seleccione um tipo de letra monoespaçado. (Em alguns sistemas, esta janela irá também apresentar os tipos de letra de tamanho variável, mas você não os deverá usar.) Texto Itálico para os Deltas:Se seleccionar isto, então as diferenças no texto serão escritas com a versão itálica do tipo de letra seleccionado. Se o tipo de letra não suportar caracteres itálicos, isto não fará nada. Cores Cor principal:Normalmente preto. Cor de fundo:Normalmente branco. Cor de Fundo das Diferenças:Normalmente a cinzento claro. Cor A:Normalmente a azul escuro. Cor B:Normalmente a verde escuro. Cor C:Normalmente a magenta escuro. Cor do Conflito:Normalmente a vermelho. Cor de fundo do intervalo actual:Normalmente a amarelo claro. Cor de fundo da diferença do intervalo actual:Normalmente a amarelo escuro. Cor para os intervalos de diferenças seleccionados manualmente:Normalmente a laranja. Cor dos ficheiros mais recentes na comparação de pastas:Normalmente a verde. Cor dos ficheiros mais antigos na comparação de pastas:Normalmente a vermelho. Cor dos ficheiros intermédios na comparação de pastas:Normalmente a amarelo escuro. Cor dos ficheiros em falta na comparação de pastas:Normalmente preto. A mudança das cores na comparação das pastas só fará efeito quando iniciar a próxima comparação de pastas. Nos sistemas com apenas 16 ou 256 cores, alguns dos tons acima descritos não estão disponíveis de forma pura. Nesses sistemas, o botão "Predefinições" irá escolher uma cor pura. Configuração do Editor O Tab insere espaços:Se isto estiver desactivado e você carregar na tecla do tabulador, será inserido um carácter de tabulação, caso contrário serão inseridos os espaços com a quantidade apropriada. Tamanho das tabulações:Poderá ser ajustado de acordo com as suas necessidades específicas. Por omissão é igual a 8. Indentação automática:Ao carregar em Enter ou Return, a indentação da linha anterior é usada para uma nova linha. Copiar automaticamente a selecção:Quando activo, qualquer selecção é posta automaticamente na área de transferência e não precisa de a copiar explicitamente. Estilo de fim de linha:Ao gravar, o utilizador poderá seleccionar o estilo do fim de linha que prefere.O valor por omissão é a escolha comum para o sistema operativo usado. Opções do Diff Ao comparar os ficheiros, o &kdiff3; tenta primeiro corresponder as linhas iguais em todos os ficheiros de entrada. Só durante este passo é que poderá ignorar os espaços em branco. O segundo passo compara cada uma das linhas. Neste passo, os espaços em branco não serão ignorados. Também durante a junção os espaços em branco não serão ignorados. Manter o 'Carriage Return':Alguns editores (em alguns sistemas) gravam os caracteres de 'carriage return' "\r" e 'linefeed' "\n" no fim da linha, enquanto que outros só irão gravar o 'linefeed' "\n". Normalmente o &kdiff3; ignora o 'carriage return', mas aí os ficheiros que não tenham tamanhos iguais pareçam de facto iguais numa comparação lado-a-lado. Quando esta opção estiver activa, então os caracteres de 'carriage return' ficarão visíveis mas serão tratados como espaços em branco. Ela necessita estar desligada durante uma junção. Por omissão, está desligada. Ignorar os números:Por omissão está desligado. Os caracteres dos números ("0-9", ".", "-") serão ignorados na primeira parte da análise, na qual é feita a correspondência de linhas. No resultado, as diferenças serão mostradas de qualquer forma, mas serão tratadas como espaços em branco. Ignorar comentários de C/C++:Por omissão está desligado. As alterações nos comentários serão tratadas como as alterações nos espaços em branco. Ignorar a capitalização:Por omissão está desligado. As diferenças de capitalização dos caracteres (como o 'A' vs. 'a') serão tratadas como alterações de espaços em branco. Comando do pré-processador:Veja a próxima secção. Comando do Pré-processador para a Correspondência de Linhas:Veja a próxima secção. Tentar com Persistência:Tenta com mais afinco encontrar um delta ainda menor. (Por omissão está ligado). Isto irá ser efectivo provavelmente para os ficheiros grandes e complicados. Será também lento para os ficheiros muito grandes. Configuração da Junção Atraso no Avanço Automático (ms):Quando estiver no modo de avanço automático esta opção indica o intervalo de tempo durante o qual mostrar o resultado da selecção antes de saltar para o próximo conflito não resolvido. Predefinição da junção de espaço em branco com 2/3 ficheiros:Resolve automaticamente todos os conflitos de espaços em branco, seleccionando o ficheiro indicado. (Por omissão, é com uma escolha manual). É útil se os espaços em branco não serão importantes em muitos dos ficheiros. Se precisar disto apenas ocasionalmente, é melhor usar o "Escolher A/B/C nos Conflitos de Espaços em Branco Por Resolver" no menu "Junção". Lembre-se que, se activar o "Ignorar os Números" ou o "Ignorar os Comentários de C/C++", então esta escolha automática também se aplica para os conflitos nos números ou nos comentários. Expressão regular de junção automática:A expressão regular para as linhas onde o &kdiff3; deverá escolher automaticamente uma origem. Veja também a Junção Automática ... Executar a junção automática da expressão regular no início da junção:Se for activado, o &kdiff3; executa a junção automática com a "Expressão regular da junção automática", quando for iniciada uma junção. Expressão regular do início do histórico:A expressão regular do início do item de histórico. Normalmente, esta linha contém a palavra-chave "$Log$". Valor por omissão: ".*\$Log.*\$.*" Expressão regular do início do item de histórico:Um item de junção do histórico consiste em várias linhas. Indique a expressão regular que detecta a primeira linha (sem o comentário inicial). Use os parêntesis para agrupar as chaves que deseja usar na ordenação. Se for deixado em branco, o &kdiff3; assume que as linhas em branco separam os itens de histórico. Veja também a Junção Automática ... Ordenação da junção do histórico:Activa a ordenação do histórico do controlo de versões. Ordem da chave de ordenação do início do item de histórico:Cada grupo de parêntesis usado na expressão regular do item de início de histórico agrupa uma chave que poderá ser usada na ordenação. Indique a lista de chaves (que são numeradas por ordem de ocorrência, a começar em 1), usando o ',' como separador (p.ex., "4,5,6,1,2,3,7"). Se for deixado em branco, então não será feita nenhuma ordenação. Veja também a Junção Automática ... Juntar o histórico do controlo de versões no início da junção:Se estiver activado, o &kdiff3; executa a junção automática do histórico, usando as opções acima mencionadas, quando for iniciada uma junção. Número máximo de itens do histórico:O &kdiff3; limita a lista do histórico ao número de itens indicado. Use -1 para evitar a limitação. (Por omissão, é igual a -1). Testar as suas expressões regularesEste botão mostra uma janela que lhe permite melhorar e testar as expressões regulares acima. Basta copiar os dados respectivos dos seus ficheiros para as linhas de exemplo. O "Resultados da correspondência" irá mostrar imediatamente se a correspondência é bem sucedida ou não. O "Resultado da chave de ordenação" irá mostrar a chave usada no histórico da junção do histórico. Comando de junção irrelevante:Indique um comando próprio, que deverá ser chamado quando o &kdiff3; detectar que, numa junção de três ficheiros, o ficheiro de B não contribui com dados relevantes que não estivessem já contidos no ficheiro em C. O comando é chamado com os três nomes de ficheiros como parâmetros. Os dados correspondentes à "Expressão regular da junção automática" ou no histórico não são considerados relevantes. Junção de Pastas Estas opções dizem respeito à análise da pasta e ao tratamento da junção: Veja em Comparação de Pastas/Juntar para mais detalhes. Existe aqui ainda uma opção que também é relevante para gravar os ficheiros únicos: Ficheiros de segurança:Quando um ficheiro é gravado e já existe uma versão anterior, então a versão original irá mudar para um nome com uma extensão ".orig". Se já existir um ficheiro de cópia de segurança antigo com uma extensão ".orig", então este será removido sem ficar nenhuma cópia de segurança. Opções Regionais e da Língua Língua:Ajusta a língua da interface do utilizador. Se mudar esta opção não afectará o programa em execução. Terá de sair e reiniciar o &kdiff3; para que a língua seja alterada. (Esta opção não está disponível na versão para KDE do &kdiff3;, porque a língua é ajustável na configuração global do KDE). Utilizar a mesma codificação para tudo:As seguintes opções de codificação poderão ser ajustadas em separado para cada item ou, se esta opção for verdadeira, todos os valores irão usar o primeiro valor. Codificação Local:Por cima dos selectores de codificação, aparece uma nota que lhe indica a sua codificação local. (Esta não é ajustável, mas está aqui apenas para o informar, no caso de não saber qual é a sua codificação local e tiver de a seleccionar). Codificação do Ficheiro para o A/B/C:Ajuste a codificação do ficheiro para os ficheiros de entrada. Isto provoca algum efeito na forma como os caracteres especiais são interpretados. Dado que poderá ajustar cada codificação em separado, poderá até comparar e juntar ficheiros que foram gravados com codificações diferentes. Codificação do Ficheiro para Junção de Resultado e Gravação:Quando tiver editado um ficheiro, poderá então ajustar a codificação que será usada ao gravar para o disco. Codificação do Ficheiro dos Ficheiros de Pré-processador:Quando definir pré-processadores, este poderão não ser capazes de lidar com a sua codificação. (p.ex.: Os seus ficheiros estão em Unicode de 16 bits e o seu pré-processador só consegue lidar com ASCII de 8 bits). Com esta opção, poderá definir a codificação do resultado do pré-processador. Língua da Esquerda-para-a-Direita:Algumas línguas são escritas da direita para a esquerda. Quando esta opção está activa, o &kdiff3; desenha o texto da direita para a esquerda nas janelas de diferenças dos ficheiros de entrada e na janela do resultado da junção. Repare que, se iniciar o &kdiff3; com a opção da linha de comandos "--reverse", então toda a disposição será feita também da direita para a esquerda. (Esta é uma funcionalidade oferecida pelo Qt.) Esta documentação foi escrita a assumir que a "Língua da direita-para-a-esquerda" ou a disposição inversa estão desactivadas. Por isso, algumas das referências a "esquerda" ou "direita" deverão ser substituídas pela versão inversa, se usar estas opções. Diversos (Estas opções e acções estão disponíveis nos menus ou na barra de botões.) Mostrar os números de linha:O utilizador pode seleccionar se os números de linhas são mostrados para os ficheiros de entrada. Mostrar as diferenças de espaços e tabulações:Algumas das vezes os espaços e tabulações visíveis são incómodos. Poderá com isto desactivar esta funcionalidade. Mostrar os espaços em branco:Desligue isto para suprimir o realce das alterações apenas nos espaços em branco no texto ou nas colunas de vista geral. (Lembre-se que isto também se aplica às alterações nos números ou comentários se as opções "Ignorar os números" ou "Ignorar os Comentários de C/C++" estiverem activas.) Opções da vista geral:Estas opções só estão disponíveis quando você compara três ficheiros. No modo normal, todas as diferenças são mostradas na coluna de resumo codificada a cores. Mas, em alguns casos, você está especialmente interessado nas diferenças entre apenas dois desses três ficheiros. Se seleccionar "A vs. B", "A vs. C" ou "B vs. C" na coluna de resumo irá aparecer uma segunda coluna com a informação necessária ao lado do resumo normal. Quebrar linha nas janelas de diferenças:Reparte as linhas quando o seu tamanho exceder a largura de uma janela. Mostrar a Janela A/B/C:Em algumas vezes, você poderá usar melhor o espaço no ecrã para as linhas compridas. Esconda as janelas que não são importantes. (No menu "Janelas".) Comutar a Orientação da Repartição:Define se as janelas de diferenças são mostradas uma ao lado da outra (a A à esquerda da B, que está à esquerda da C) ou uma por cima da outra (a A sobre a B, que está sobre a C). Isto também deverá ajudar para as linhas compridas (No menu "Janelas"). Iniciar uma junção rapidamente:Às vezes, você está a ver os deltas e decide juntá-los. O "Juntar o ficheiro actual" no menu "Directoria" também resulta se só comparar dois ficheiros. Um único 'click' começa a junção e usa o nome do último ficheiro de entrada como nome do ficheiro do resultado por omissão. (Quando isto for usado para reiniciar uma junção, então o nome do ficheiro do resultado será mantido.) Configurar os Atalhos de Teclado De momento, só a versão para KDE suporta os atalhos de teclado configuráveis pelo utilizador. (No menu Configuração->Configurar os Atalhos...) Comandos do Pré-processador O &kdiff3; suporta duas opções do pré-processador. Comando do pré-processador:Quando for lido qualquer ficheiro, ele será encaminhado através deste comando externo. O resultado deste comando será visível em vez do ficheiro original. O utilizador poderá criar o seu próprio pré-processador que corresponda às suas necessidades específicas. Use isto para cortar partes desnecessárias do ficheiro ou para corrigir automaticamente a indentação, etc. Comando do Pré-processador para a Correspondência de Linhas:Quando for lido qualquer ficheiro, ele será encaminhado através deste comando externo. Se um comando de pré-processador (ver acima) for também indicado, então o resultado do pré-processador é a entrada para o pré-processador de correspondência de linhas. O resultado só será usado durante a fase de correspondência de linhas da análise. O utilizador poderá escrever o seu próprio pré-processador que corresponda às suas necessidades específicas. Cada linha de entrada terá de ter uma linha de resultado correspondente. A ideia é permitir ao utilizador uma maior flexibilidade ao configurar o resultado das diferenças. Mas isto necessita de um programa externo e muitos dos utilizadores não querem escrever um. As boas notícias é que, muitas das vezes, o sed ou o perl encarregar-se-ão disso. Exemplo: Caso de teste simples. Considere o ficheiro a.txt (6 linhas): aa ba ca da ea fa E o ficheiro b.txt (3 linhas): cg dg eg Sem um pré-processador as seguintes linhas teriam sido colocadas lado a lado: aa - cg ba - dg ca - eg da ea fa Isto provavelmente não será o desejado, dado que a primeira letra contém a informação realmente interessante. Para ajudar o algoritmo de correspondência a ignorar aa segunda letra, poder-se-ia usar um comando de pré-processamento de correspondências de linhas que substituísse o 'g' pelo 'a': sed 's/g/a/' Com este comando, o resultado da comparação seria: aa ba ca - cg da - dg ea - eg fa Internamente, o algoritmo de correspondência vê os ficheiros depois de correr o pré-processador de correspondência de linhas, mas no ecrã o ficheiro fica inalterado. (O pré-processador normal iria alterar também os dados no ecrã.) Bases do <command >sed</command > Esta secção só introduz algumas funcionalidades muito básicas do sed. Para mais informações veja as páginas info:/sed ou http://www.gnu.org/software/sed/manual/html_mono/sed.html. Existe uma versão pré-compilada para o Windows em http://unxutils.sourceforge.net. Repare no facto de que os exemplos seguintes assumem que o comando sed está numa pasta referida pela sua variável de ambiente PATH. Se não for este o caso, você terá de indicar a localização absoluta completa para o comando. Lembre-se também que os exemplos seguintes usam a plica simples (') que não irá funcionar no Windows. No Windows, deverá usar as aspas (") em alternativa. Neste contexto apenas o comando de substituição do sed será usado: sed 's/EXPREG/SUBSTITUTO/OPÇÕES' Antes de você usar um comando novo no &kdiff3;, deverá primeiro testá-lo numa consola. Aqui, o comando echo é útil. Exemplo: echo abracadabra | sed 's/a/o/' -> obracadabra Este exemplo mostra um comando 'sed' muito simples que substitui a primeira ocorrência do "a" por um "o". Se quiser substituir todas as ocorrências, então irá necessitar da opção "g": echo abracadabra | sed 's/a/o/g' -> obrocodobro O símbolo "|" é o 'pipe' ou canal que transfere o resultado do comando anterior para os dados de entrada do comando seguinte. Se quiser testar com um ficheiro maior, então poderá usar o cat no sistemas do tipo do Unix ou o type nos sistemas do tipo Windows. O sed irá fazer a substituição para cada linha. cat ficheiro | sed opções Exemplos para a Utilização do <command >sed</command > no &kdiff3; Ignorar Outros Tipos de Comentários De momento, o &kdiff3; só compreende comentários de C/C++. Se usar o comando "Pré-Processador de Correspondência de Linhas", poderá também ignorar outros tipos de comentários, convertendo-os em comentários de C/C++. Exemplo: Para ignorar comentários que comecem por "#", poderá convertê-los para "//". Lembre-se que terá também de activar a opção "Ignorar os Comentários de C/C++" para obter efeito. Um comando "Pré-Processador de Correspondência de Linhas" seria: sed 's/#/\/\//' Dado que para o sed o carácter / tem um significado especial, é necessário colocar o carácter \ antes de cada / no texto de substituição. Algumas das vezes o \ é necessário para adicionar ou remover um significado especial para certos caracteres. As plicas simples (') antes e depois do comando de substituição são importantes, caso contrário a linha de comandos iria tentar interpretar alguns caracteres especiais como o #, o $ ou o \ antes de os passar para o sed. Lembre-se que no &Windows; irá necessitar aqui das aspas ("). O &Windows; substitui os outros caracteres como o %, por isso você terá de fazer algumas experiências. Diff sem Distinguir Capitalização Use o comando "Pré-Processador de Correspondência de Linhas" para converter todo o texto para maiúsculas: sed 's/\(.*\)/\U\1/' Aqui o .* é uma expressão regular que corresponde a qualquer texto e, no seu contexto, irá corresponder a todos os caracteres da linha. O \1 no texto de substituição refere-se ao texto correspondente ao primeiro par de \( e \). O \U converte o texto inserido para maiúsculas. Ignorar as Palavras-Chave do Controlo de Versões O CVS e outros sistemas de controlo de versões usam várias palavras-chave para inserir texto gerado automaticamente (info:/cvs/Keyword substitution). Todas elas seguem o padrão "$PALAVRACHAVE texto gerado$". É preciso agora um comando Pré-Processador de Correspondência de Linhas que remova apenas o texto gerado: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' O "\|" separa as palavras-chave possíveis. Poderá querer modificar esta lista de acordo com as suas necessidades. O "\" antes do "$" é necessário, caso contrário o "$" irá corresponder ao fim da linha. Ao experimentar com o sed, você poderá vir a compreender e até a gostar destas expressões regulares. Elas são úteis porque existem muitos outros programas que suportam algumas coisas desse género. Ignorar os Números A indiferença em relação aos números é de facto uma opção incorporada. Mas, como outro exemplo, seria assim como iria ficar como um comando do Pré-Processador da Correspondência de Linhas. sed 's/[0123456789.-]//g' Todos os caracteres dentro de '[' e ']' são uma correspondência e será substituído por nada. Ignorar Certas Colunas Em algumas ocasiões um determinado texto tem uma formatação demasiado restrita e contém colunas que deseja sempre ignorar, enquanto que existem outras colunas que deseje preservar para análise. No exemplo seguinte, as primeiras cinco colunas (caracteres) são ignoradas, as próximas dez são preservadas, depois as próximas cinco colunas serão ignoradas de novo e o resto da linha é preservada. sed 's/.....\(..........\).....\(.*\)/\1\2/' Cada ponto '.' corresponde a um único carácter. O "\1" e o "\2" no texto de substituição refere-se ao texto correspondente dentro do primeiro e segundo par de "\(" e "\)", demarcando o texto a ser preservado. Combinar Várias Substituições Em algumas situações você deseja aplicar várias substituições de uma vez. Poderá então usar o ponto-e-vírgula ";" para separar uma da outra. Exemplo: echo abracadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROCODOBRO Usar o <command >perl</command > em vez do <command >sed</command > Em vez do sed, você poderá querer usar algo diferente como o perl. perl -p -e 's/EXPREG/SUBSTITUTO/OPÇÕES' Porém, alguns detalhes são diferentes no perl. Repare que, onde o sed necessitava do "\(" e do "\)", o perl necessita dos "(" e ")" mais simples e sem o '\' precedente. Exemplo: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Order de Execução de Pré-processadores Os dados são encaminhados através de todos os pré-processadores internos e externos pela seguinte ordem: Pré-processador normal, Pré-processador de Correspondência de Linhas, Ignorar capitalização (conversão para maiúsculas), Detecção de Comentários de C/C++, Ignorar os números, Ignorar os espaços em branco Os dados após o pré-processador normal serão preservados para a apresentação e para a junção. As outras operações só modificam os dados que o algoritmo para a correspondência de linhas nas diferenças vê. Nos casos raros em que você usa um pré-processador normal, repare que o pré-processador da correspondência de linhas vê o resultado no pré-processador normal como dados de entrada. Aviso Os comandos do pré-processador são normalmente muito úteis, mas como acontece com qualquer opção que modifica os seus textos ou esconde algumas diferenças automaticamente, você poderá saltar por cima de certas diferenças e, no pior dos casos, destruir dados importantes. Por esta razão, durante uma junção, se for usado um comando pré-processador normal, o &kdiff3; dizer-lhe-á isso e perguntar-lhe-á se deverá ser desactivado ou não. Mas não o irá avisar se estiver um Pré-Processador de Correspondência de Linhas activo. A junção não irá ficar completa até que todos os conflitos tenham sido resolvidos. Se tiver desactivado o "Mostrar os Espaços em Branco", então as diferenças que foram removidas com o Pré-Processador de Correspondência de Linhas ficarão também invisíveis. Se o botão para Gravar continuar inactivo durante uma junção (devido a conflitos por resolver), verifique se activa o "Mostrar os Espaços em Branco". Se não quiser juntar essas diferenças menos importantes poderá escolher a opção "Escolher [A|B|C] nos Conflitos de Espaço em Branco por Resolver" no menu "Juntar". Comparação e Junção de Directorias com o &kdiff3; Introdução à Comparação ou Junção de Pastas Normalmente, os programadores precisam de modificar vários ficheiros numa pasta para atingir os seus fins. Para isso, o &kdiff3; também lhe permite comparar e juntar várias pastas de forma recursiva! Ainda que a comparação e junção de pastas pareça ser bastante óbvia, existem vários detalhes que o utilizador deverá conhecer. O mais importante é, obviamente, o facto de que vários ficheiros poderão ser afectados por cada operação. Se não tiver cópias de segurança dos seus dados originais, então poderá ser bastante difícil ou mesmo impossível de voltar ao estado original. Por isso, antes de começar uma junção, certifique-se que os seus dados estão a salvo e que é possível voltar atrás. Se cria um pacote ou usa um sistema de controlo de versões é uma decisão sua, mas mesmo os programadores experientes e os integradores precisam do código antigo e do novo. E repare que até ao autor do &kdiff3; tenta fazer o seu melhor, mas não pode garantir que não existam erros. De acordo com a GPL da GNU, não existe NENHUMA GARANTIA de qualquer forma para este programa. Por isso, seja humilde e tenha sempre em mente:
Errar é humano, mas para realmente baralhar as coisas é preciso um computador.
Por isso, este é o programa que poderá fazer isto por si: o &kdiff3; ... ... lê e compara duas ou três pastas recursivamente, ... tem um cuidado especial com as ligações simbólicas, ... permite-lhe navegar nos ficheiros com um duplo-click do rato, ... propõe para cada item uma operação de junção, a qual poderá alterar antes de iniciar a junção de pastas, ... permite-lhe simular a junção e lista as acções que iriam tomar lugar, sem fazer nada de facto, ... permite-lhe fazer realmente a junção, possibilitando também a você interagir nas situações em que é necessária uma interacção manual, ... permite-lhe executar a operação seleccionada para todos os itens (tecla F7) ou para o item seleccionado (tecla F6), ... permite-lhe continuar a junção depois de uma interacção manual com a tecla F7, ... cria opcionalmente cópias de segurança com a extensão ".orig", ...
Iniciar a Comparação ou Junção de Directoria Isto é bastante semelhante à junção e comparação simples com ficheiros únicos. O utilizador apenas terá de indicar nomes de pastas na linha de comandos ou na janela de abertura de ficheiros. Comparar/Juntar duas directorias: kdiff3 pasta1 pasta2 kdiff3 pasta1 pasta2 -o destino Se não for indicada nenhuma pasta de destino, então o &kdiff3; irá usar a pasta2. Comparar/Juntar estas pastas: kdiff3 pasta1 pasta2 pasta3 kdiff3 pasta1 pasta2 pasta3 -o destino Quando forem reunidas três pastas, então a pasta1 será usada como a base para a junção. Se não for indicada nenhuma pasta de destino, então o &kdiff3; irá usar a pasta3 como pasta de destino para a junção. Repare que só a comparação é que começa automaticamente, não a junção. Para tal, terá de seleccionar primeiro um item do menu ou a tecla F7. (Mais detalhes posteriormente.) Informação Visível da Junção de Pastas Ao ler as pastas, aparece uma mensagem que o informa do progresso. Se você interromper a pesquisa das pastas, então só os ficheiros que tenham sido comparados até então serão listados. Quando a pesquisa de pastas estiver completa, então o &kdiff3; irá mostrar uma lista com os resultados restantes, ... ... e os detalhes sobre o item seleccionado de momento à direita: A Coluna do Nome Cada ficheiro e pasta encontrado durante a pesquisa é aqui mostrado numa árvore. Você poderá seleccionar um item se carregar nele uma vez com o rato. As pastas estão fechadas por omissão. Você poderá expandi-las e fechá-las se carregar no "+"/"-" ou se fizer duplo-click no item ou ainda usando as teclas de cursores esquerda/direita. O menu "Directoria" também contém duas acções "Fechar Todas as Sub-Directorias" e "Expandir Todas as Sub-Directorias", com as quais poderá fechar ou abrir todas as subpastas de uma vez. Se fizer duplo-click num item de um ficheiro, então a comparação do ficheiro irá começar e irá aparecer a janela de diferenças do ficheiro. A imagem na coluna do nome reflecte o tio de ficheiro na primeira pasta ("A"). Poderá ser um dos seguintes: Ficheiro normal Pasta normal (imagem de pasta) Ligação para um ficheiro (imagem de ficheiro com uma seta de ligação) Ligação para uma pasta (imagem de pasta com uma seta de ligação) Se o tipo de ficheiro for diferente nas outras pastas, então isso é visível nas colunas A/B/C e na janela que mostra os detalhes sobre o item seleccionado. Repare que, neste caso, não poderá ser seleccionada nenhuma operação de junção automaticamente. Ao iniciar a junção, então o utilizador será informado dos problemas desse tipo. As Colunas A/B/C e o Esquema de Cores Como pode ser visto na imagem acima, as cores vermelha, verde, amarela e preta são usadas nas colunas A/B/C. Preto: O item não existe nesta pasta. Verde: Item mais recente. Amarelo: Mais antigo que o verde, mais recente que o vermelho. Vermelho: O item mais antigo. Contudo, para os itens que eram idênticos na comparação, a sua cor é também idêntica mesmo que a idade seja diferente. As pastas são consideradas iguais se todos os itens que contêm forem idênticos. Nesse caso, elas terão a mesma cor. Porém, a idade de uma pasta não é tida em consideração de acordo com a sua cor. A ideia do autor para este esquema de coloração veio do dirdiff. As cores lembram as cores de uma folha que é verde quando é nova, vai-se tornando amarela com o tempo e é vermelha quando é antiga. A Coluna de Operação Depois de comparar as patas, o &kdiff3; avalia também uma proposta para uma operação de junção. Esta é mostrada na coluna de "Operação". O utilizador poderá modificar a operação se carregar na operação que deseja alterar. Irá aparecer um pequeno menu que lhe permite seleccionar uma operação para esse item (Poderá também seleccionar as operações mais necessárias através do teclado. O Ctrl+1/2/3/4/Del irá seleccionar o A/B/C/Juntar/Remover, respectivamente, se estiver disponível.) Esta operação será executada durante a junção. Depende do item e do modo de junção em que se encontra e de que operações estão disponíveis. O modo de junção é um dos seguintes Junção de três pastas (a "A" é tratada como a base mais antiga de ambas). Junção de duas pastas. Modo de sincronização de duas pastas (activado com a opção "Sincronizar as Directorias"). Na junção de três pastas, a proposta de operação será: Se para um item ... ... todas as três pastas forem iguais: Copiar do C ... o A e o C são iguais mas o B não: Copiar a partir do B (ou se o B não existir, remover o destino se existir) ... o A e o B são iguais mas o C não: Copiar a partir do C (ou se o C não existir, remover o destino se existir) ... o B e o C são iguais mas o A não: Copiar a partir do C (ou se o C não existir, remover o destino se existir) ... só o A existir: Remover o destino (se existir) ... só o B existir: Copiar a partir do B ... só o C existir: Copiar a partir do C ... o A, o B e o C não são iguais: Juntar ... o A, o B e o C não tiverem o mesmo tipo de ficheiro (⪚ o A é uma pasta e o B um ficheiro): "Erro: Tipo de Ficheiros em Conflito". Enquanto existirem itens nesta situação, a junção de pastas não poderá começar. Na junção de duas pastas, a proposta de operação será: Se para um item ... ... ambas as pastas forem iguais: Copiar do B ... o A existir, mas o B não: Copiar a partir do A ... o B existir, mas o A não: Copiar a partir do B ... o A e o B existirem mas não forem iguais: Juntar ... o A e o B não tiverem o mesmo tipo de ficheiro (p.ex., o A é uma pasta e o B um ficheiro): "Erro: Tipo de Ficheiros em Conflito". Enquanto existirem itens nesta situação, a junção de pastas não poderá começar. O modo de sincronização só está activo se forem indicadas duas pastas e não se não for indicado nenhum destino explícito, assim como a opção "Sincronizar as directorias" terá de estar activa. Nesse caso, o &kdiff3; irá seleccionar uma operação por omissão, de modo a que ambas as pastas fiquem iguais no fim. Se, para um item ... ... ambas as pastas forem iguais: Não será feito nada. ... o A existir mas o B não: Copiar o A para o B ... o B existir mas o A não: Copiar o B para o A ... o A e o B existirem, mas não forem iguais: Juntar e guardar o resultado em ambas as pastas. (Para o utilizador, o nome do ficheiro gravado visível será o B, mas o &kdiff3; irá copiar o B também para o A.) ... o A e o B não tiverem o mesmo tipo de ficheiro (p.ex., o A é uma pasta e o B um ficheiro): "Erro: Tipo de Ficheiros em Conflito". Enquanto existirem itens nesta situação, a junção de pastas não poderá começar. Quando duas pastas forem reunidas e a opção "Copiar o mais recente em vez de juntar" estiver seleccionada, então o &kdiff3; irá olhar para as datas e irá optar por escolher o ficheiro mais recente. Se os ficheiros não forem iguais mas tiverem datas iguais, então a operação irá conter "Erro: As datas são iguais mas os ficheiros não.". Enquanto esses itens existirem a junção de pastas não poderá começar. A Coluna de Estado Durante a junção, os ficheiros serão processados um a seguir ao outro. A coluna de estado irá mostrar "Terminado" para os itens em que a operação de junção foi bem sucedida e outros textos se algo ocorreu de inesperado. Quando se terminar uma junção, o utilizador deverá então fazer uma última verificação para confirmar se o estado de todos os itens é aceitável. Colunas de Estatísticas Quando o modo de comparação de ficheiros "Análise Completa" estiver activo nas opções, então o &kdiff3; irá mostrar colunas extra que contêm o número de conflitos não resolvidos, resolvidos, de espaços em branco e dos outros conflitos. (A coluna de resolvidos só irá aparecer ao comparar ou ao juntar três pastas.) Seleccionar os Ficheiros Listados Diversas opções influenciam os ficheiros que são listados aqui. Algumas estão acessíveis na janela de configuração. O menu Directoria contém os itens: "Mostrar os Ficheiros Idênticos": Os ficheiros que foram detectados como iguais em todas as pastas de entrada. "Mostrar os Ficheiros Diferentes": Os ficheiros que existem em duas ou mais pastas, mas que não são iguais entre si. "Mostrar os Ficheiros Apenas em A": Os ficheiros que existem apenas em A, mas não em B ou C. "Mostrar os Ficheiros Apenas em B": Os ficheiros que existem apenas em B, mas não em A ou C. "Mostrar os Ficheiros Apenas em C": Os ficheiros que existem apenas em C, mas não em A ou B. Active apenas as opções "Mostrar" para os itens que deseja listar. Se, por exemplo, quiser listar apenas os itens que existem ou em A ou em B, mas não em ambos, terá de activar o "Mostrar os Ficheiros Apenas em A" e "Mostrar os Ficheiros Apenas em B" e desactivar todos os outros ("Mostrar os Ficheiros Idênticos", "Mostrar os Ficheiros Diferentes", "Mostrar os Ficheiros Apenas em C"). A lista será actualizada imediatamente para reflectir as alterações. Estas opções também se aplicam nas pastas, com uma excepção: Se desactivar o "Mostrar os Ficheiros Diferentes" não irá esconder as pastas por completo. Isto só irá funcionar para os ficheiros dentro delas. Lembre-se que, destas opções, só a "Mostrar os Ficheiros Idênticos" é persistente. As outras ficam activas ao iniciar o &kdiff3;. Fazer uma Junção de Pastas O utilizador tanto poderá reunir o item seleccionado de momento (ficheiro ou pasta) ou todos os itens. Quando tiver feito todas as suas opções de operação (em todas as subpastas também), aí então poderá iniciar a junção. Tenha em atenção que, se não tiver indicado explicitamente uma pasta de destino, então o destino será o "C" no modo de três pastas, o "B" no modo de junção de duas pastas e no modo de sincronização será o "A" e/ou o "B". Se tiver indicado uma pasta de destino, verifique também que todos os itens que deverão estar no resultado, estão na árvore respectiva. Existem algumas opções que fazem com que certos itens sejam omitidos na comparação e junção de pastas. Assinale estas opções para evitar surpresas desagradáveis: "Directorias Recursivas": Se estiver desligada, então os itens em todas as subpastas não serão tratados. "Padrão"/"Anti-Padrão": Inclui/exclui os itens que correspondam ao padrão "Excluir os Ficheiros Escondidos" As opções "Mostrar" (Mostrar os Ficheiros Iguais/Diferentes, Ficheiros apenas em A/B/C) Se mudar a configuração, para mostrar mais ficheiros, é preciso fazer uma nova pesquisa, com a opção "Directoria"->"Pesquisar de Novo". (A razão para tal é que o &kdiff3; omite a comparação dos ficheiros suprimidos por estes critérios.) Se mudou os seus padrões de ficheiros e pastas para excluir os ficheiros, então a lista de ficheiros será imediatamente actualizada, ao fechar a janela de opções. Lembre-se que, quando gravar numa pasta completamente nova, normalmente também irá querer copiar os ficheiros iguais. Nesse caso, active a opção "Mostrar os Ficheiros Iguais". Se a sua pasta de destino é uma das entradas, então não será necessário, porque o ficheiro já estará lá. Se estiver satisfeito até agora, o resto é simples. Para juntar todos os itens: Seleccione "Iniciar/Continuar a junção da directoria" no menu "Directoria" ou carregue em F7 (que é o atalho). Para juntar apenas o item actual: Seleccione "Executar a Operação no Item Actual" ou carregue em F6. Se, devido à existência de tipos de ficheiro em conflito, ainda permanecerem alguns itens com operações inválidas, então irá aparecer uma mensagem onde serão evidenciados esses itens, para que possa seleccionar uma operação válida para cada item. Se juntar todos os itens, irá aparecer uma janela que lhe apresenta as opções "Fazê-lo", "Simulá-lo" e "Cancelar". Seleccione "Simulá-lo" se quiser ver o que seria feito sobre o item sem aplicar de facto as modificações. Será apresentada uma lista descritiva com todas as operações. Caso contrário, seleccione "Fazê-lo" para iniciar de facto a junção. Nesse caso, o &kdiff3; irá executar a operação indicada para todos os itens. Se for necessária alguma intervenção manual (na junção de ficheiros simples), então irá aparecer uma janela de junção (ver a imagem grande). Quando tiver terminado um ficheiro, seleccione de novo "Iniciar/Continuar a junção da directoria" ou a tecla F7. Se não tiver ainda gravado nada, irá aparecer uma janela a pedir-lhe isso. Aí, o &kdiff3; irá passar ao próximo item. Quando o &kdiff3; encontrar um erro, indicar-lhe-á tal facto e irá mostrar a informação descritiva do estado. No fundo desta lista, existirão algumas mensagens de erro que o deverão ajudar a compreender a causa do problema. Quando continuar a junção (com a tecla F7), o &kdiff3; indicar-lhe-á a opção para repetir ou saltar o item que causou o problema. Isto significa que, antes de continuar, poderá escolher outra operação ou resolver o problema por outros meios. Quando a junção estiver completa, o &kdiff3; informá-lo-á então com uma mensagem. Se alguns dos itens foram reunidos individualmente, então o &kdiff3; irá recordar isto (enquanto esta sessão de junção prosseguir) e não os juntará de novo, até que a junção para todos os itens tenha sido executada. Mesmo quando a junção tenha sido ignorada ou não tenha sido gravado nada, estes itens irão contar como completos. Só quando tiver alterado a operação de junção é que o estado de "Pronto" do item será removido e este poderá ser reunido de novo. Opções para Comparar e Juntar Pastas As preferências do &kdiff3; (no menu "Configuração"->"Configurar o &kdiff3;") têm agora uma secção intitulada "Junção de Directorias" com as seguintes opções: Directorias Recursivas:Indica se você deseja pesquisar as pastas de forma recursiva. Padrões de Ficheiros:Só os ficheiros que correspondam ao padrão ou padrões aqui indicados é que serão colocados na árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula ";". São considerados caracteres especiais válidos o "*" e o "?". (⪚ "*.cpp;*.h"). Por omissão, este campo é igual a "*". As pastas não precisam de corresponder a este padrão. Anti-Padrões de Ficheiros:Os ficheiros que correspondam ao padrão ou padrões aqui indicados serão excluídos da árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula ";". São considerados caracteres especiais válidos o "*" e o "?". Por omissão, este campo é igual a "*.orig;*.o;*.obj". Anti-Padrões da Directoria:As pastas que correspondam ao padrão ou padrões aqui indicados serão excluídas da árvore. Poderá ser indicado mais do que um padrão através do separador ponto-e-vírgula ";". São considerados caracteres especiais válidos o "*" e o "?". Por omissão, este campo é igual a "CVS;deps;.svn". Usar CVS-Ignore:Ignora os ficheiros e pastas que são também ignorados pelo CVS. Muitos dos ficheiros gerados automaticamente são ignorados pelo CVS. A grande vantagem é que esta funcionalidade é específica para cada pasta através de um ficheiro ".cvsignore" local. (Veja em info:/cvs/cvsignore.) Procurar os Ficheiros e Directorias Escondidos:Em alguns sistemas de ficheiros, existe um atributo "Escondido". Em outros sistemas, um nome de ficheiro que comece por "." faz com que este seja considerados escondido. Esta opção permite-lhe decidir se deve incluir estes ficheiros na árvore ou não. Por omissão, são incluídos. Seguir as Ligações de Ficheiros:Para as ligações aos ficheiros: Quando a opção estiver desactivada, as ligações simbólicas serão comparadas. Caso contrário, serão compilados os ficheiros para os quais apontam as ligações. Por omissão, a opção está desligada. Seguir as Ligações de Directorias:Para as ligações a pastas: Quando a opção estiver desactivada, as ligações simbólicas serão comparadas. Se estiver activa, então a ligação será tratada como uma pasta e será pesquisada recursivamente. (Lembre-se que o programa não verifica se a ligação é "recursiva". Por isso, se uma pasta contiver por exemplo uma ligação para ela própria irá causar um ciclo infinito, pelo que ao fim de algum tempo a pilha estoira ou toda a memória será usada e o programa irá estoirar deste modo). Por omissão, a opção está desligada. Comparação de Nomes de Ficheiros com Distinção de Maiúsculas:Por omissão, é falso no Windows e verdadeiro nos outros sistemas operativos. Modo de Comparação de Ficheiros: Comparação Binária:Este é o modo de comparação de ficheiros por omissão. Análise Completa:Faz uma análise completa de cada ficheiro e mostra os resultados nas colunas de informação das estatísticas. (O número de conflitos resolvidos, por resolver, devido a espaços em branco ou a outros casos). A análise completa é mais lenta que uma simples comparação binária e é muito mais lenta se for usada em ficheiros que não contenham texto. (Indique os tipos de anti-padrões necessários.) Confiar na data de modificação:Se comparar pastas grandes numa rede lenta, poderá ser mais rápido comparar somente as datas de modificação e os tamanhos dos ficheiros. Porém, este melhoramento de velocidade traz alguma incerteza. Use esta opção com cuidado. Por omissão, está desligada. Confiar no tamanho:É semelhante à comparação da data de modificação. Não ocorre nenhuma comparação em si. Dois ficheiros quaisquer são considerados iguais se os seus tamanhos de ficheiros forem iguais. Isto é útil quando a operação de cópia de ficheiros não preservar a data de modificação. Use esta opção com cuidado. Por omissão, está desligada. Sincronizar as Directorias:Activa o "Modo de Sincronização" em que duas pastas são comparadas e não foi indicada nenhuma pasta de destino. Neste modo, as operações propostas serão escolhidas de modo a que ambas as pastas de origem fiquem iguais no fim. Do mesmo modo, o resultado da junção será gravado em ambas as pastas. Por omissão, esta opção está desligada. Copiar o mais recente em vez de juntar:Em vez de juntar, a operação proposta irá copiar os ficheiros mais recentes se ocorreram algumas alterações. (É considerado inseguro, porque implica saber se o outro ficheiro não foi também alterado. Verifique para se certificar em qualquer um dos casos.). Por omissão, a opção está desligada. Ficheiros de segurança:Se um ficheiro ou uma pasta completa for substituído por outro ou for removido, então a versão original mudará para um nome com uma extensão ".orig". Se já existir um ficheiro antigo com uma extensão ".orig", então este será removido sem ser criada nenhuma cópia de segurança. Isto também afecta a junção normal de ficheiros simples, não só no modo de junção de pastas. Por omissão, a opção está activa. Outras Funções na Janela de Junção de Pastas Modo de Ecrã Repartido/Completo Normalmente a lista de junção da pasta fica visível enquanto um único ficheiro é comparado ou reunido. Com o rato, o utilizador poderá mover a barra separadora que delimita a lista de ficheiros das janelas de diferenças do texto. Se não a quiser, poderá desactivar a "Janela Repartida" no menu "Directoria". Aí, poderá usar a opção "Comutar a Vista" no menu "Directoria" para alternar entre a lista de ficheiros e a janela de diferenças no texto que irá então ocupar o ecrã completo. Comparar ou Juntar um Único Ficheiro Provavelmente, você irá preferir um duplo-click do rato simples sobre um ficheiro para o poder comparar. Contudo, existe também um item no menu "Directoria". Poderá também juntar directamente um único ficheiro sem iniciar a junção de pastas, através da opção "Juntar o ficheiro actual" do menu "Juntar". Ao gravar o resultado, o estado ficará como terminado e o ficheiro não será reunido de novo se for iniciada uma junção de pastas. Mas repare que esta informação de estado será perdida quando voltar a executar uma pesquisa de pastas: menu "Directoria"->"Pesquisar de novo" Comparar ou Juntar Ficheiros com Nomes Diferentes Em alguns casos, terá de comparar ou juntar ficheiros com nomes diferentes (p.ex., o ficheiro actual e a cópia de segurança na mesma pasta). Seleccione o ficheiro exacto, carregando no ícone na coluna A, B ou C. O primeiro ficheiro seleccionado será então marcado com um "A", enquanto o segundo e o terceiro ficará com um "B" e um "C", independentemente da coluna em que se encontram. Só poderá escolher até três ficheiros desta forma. Siga com a escolha de "Comparar os Ficheiros Explicitamente Seleccionados" ou "Juntar os Ficheiros Explicitamente Seleccionados" no menu "Pasta". Por conveniência, estes itens de menu também aparecem como um menu de contexto, quando carregar com o botão direito no último ficheiro seleccionado. A comparação ou junção de um ficheiro irá acontecer na mesma janela. Se este método for usado para as pastas, será aberta uma nova janela.
Tópicos Diversos Transparência na rede através do KIO KIO-Slaves O KDE suporta a transparência na rede através dos 'KIO-slaves'. O &kdiff3; usa isto para ler os ficheiros de entrada e para pesquisar as pastas. Isto significa que você poderá indicar ficheiros e pastas em recursos locais e remotos através dos URLs. Exemplo: kdiff3 teste.cpp ftp://ftp.longe.org/teste.cpp kdiff3 tar:/home/eu/pacote.tar.gz/pasta ./pasta A primeira linha compara um ficheiro local com outro ficheiro num servidor de FTP. A segunda linha compara uma pasta dentro de um pacote comprimido com uma pasta local. Outros 'KIO-slaves' que serão interessantes: Ficheiros da WWW (http:), Ficheiros de FTP (ftp:), Transferência de ficheiros cifrada (fish:, sftp:), Recursos do Windows (smb:), Ficheiros locais (file:), Outras coisas que são possíveis, mas provavelmente serão menos interessantes: Páginas do 'man' (man:), Páginas do 'info' (info:), Como Escrever URLs Um dado URL tem uma sintaxe diferente, em comparação com as localizações dos ficheiros e pastas locais. Alguns factores terão de ser tidos em consideração: Uma localização poderá ser relativa e conter "." ou "..". Isto não é possível para os URLs, dado que estes são sempre absolutos. Os caracteres especiais têm de ser escritos "escapados". ("#"->"%23", espaço->"%20", etc.) ⪚ Um ficheiro com o nome "/#xpto#" iria ter o URL "file:/%23xpto%23". Quando os URLs não funcionarem como seria de esperar, tente abri-los primeiro no Konqueror. Capacidades dos 'KIO-Slaves' A transparência na rede tem um senão: nem todos os recursos têm as mesmas capacidades. Algumas das vezes estas são devidas ao sistema de ficheiros do servidor, enquanto que noutras ocasiões poderá ser devido ao protocolo. Aqui está uma pequena lista das restrições: Em alguns casos não existe o suporte para ligações simbólicas. Ou não existe forma de distinguir se uma ligação aponta para um ficheiro ou uma pasta; é assumido sempre um ficheiro. (ftp:, sftp:). Não é sempre possível determinar o tamanho do ficheiro. Existe um suporte de permissões limitado. Não existe a possibilidade de modificar as permissões ou a data de modificação, como tal as permissões ou a data de uma cópia poderão ser diferentes do original. (Veja a opção "Confiar no tamanho".) (A modificação de permissões ou das datas só é possível para os ficheiros locais.) Usar o &kdiff3; como uma KPart O &kdiff3; é uma KPart. De momento, implementa a interface "KParts::ReadOnlyPart". A sua utilização principal é como visualizador de diferenças no KDevelop. O KDevelop inicia sempre o visualizador de diferenças interno em primeiro lugar. Para invocar o &kdiff3;, carregue com o botão direito do rato na janela do visualizador de diferenças e seleccionar "Mostrar no KDiff3Part" no menu de contexto. O &kdiff3; necessita normalmente de dois ficheiros completos como entrada. Se for usado como componente KPart, o &kdiff3; irá assumir que o ficheiro de entrada é um ficheiro de 'patch' no formato unificado. O &kdiff3; irá então obter os nomes dos ficheiros originais do ficheiro de 'patch'. Pelo menos um dos dois ficheiros terá de estar disponível. O &kdiff3; irá então invocar o patch para criar de novo o segundo ficheiro. No Konqueror;, o utilizador poderá seleccionar um ficheiro de 'patch' e seleccionar "Antevisão em"-"KDiff3Part" no menu de contexto. Tenha em atenção que isto não irá funcionar se nenhum dos ficheiros originais estiver disponível e não é fiável se os ficheiros originais tiverem sido alterados desde que o ficheiro de 'patch' foi gerado. Quando é executado como um componente, o &kdiff3; só oferece uma diferença de dois ficheiros, uma barra de ferramentas muito pequena e um menu. A junção ou a comparação de pastas não é suportada nesse caso. Perguntas e Respostas &reporting.bugs; &updating.documentation; Porque é que se chama "&kdiff3;"? As ferramentas "KDiff" e "KDiff2" (agora chamada Kompare;) já existiam. Para além disso, o &kdiff3; deveria sugerir que consegue juntar ficheiros como a ferramenta "diff3" da colecção de ferramentas do Diff. Porque é que é lançado segundo a GPL? O autor usou programas GPL durante bastante tempo até agora e aprendeu bastante ao olhar para bastante código. Daí, este é o "Muito Obrigado" para todos os programadores que também o fizeram ou irão fazer no futuro. Faltam alguns botões e funções. O que é que se passa? Você compilou a partir do código mas não indicou provavelmente o prefixo correcto do KDE com o "configure". Por omissão, o "configure" deseja instalar no "/usr/local", mas aí o KDE não consegue encontrar o ficheiro de recursos da interface do utilizador (isto é, o "kdiff3ui.rc"). O ficheiro README contém mais informações sobre o prefixo correcto. Muitas das vezes as linhas que são semelhantes mas não idênticas aparecem umas ao lado das outras mas noutros casos não. Porquê? As linhas em que apenas a quantidade de espaços em branco é diferente são tratadas como "iguais" à primeira vista, embora apenas um carácter que não seja um espaço em branco faça com que as linhas sejam "diferentes". Se as linhas semelhantes aparecerem uma ao lado da outra, isto poderá ser de facto uma coincidência, mas é felizmente o caso mais frequente. Veja também em Ajuda das Diferenças Manuais. Porque é que todos os conflitos deverão ser resolvidos para que o resultado da gravação possa ser gravado? Para cada secção igual ou diferente, o editor na janela do resultado da junção recorda onde é que esta começa ou termina. Isto é necessário para que os conflitos possam ser resolvidos manualmente ao seleccionar simplesmente o botão da origem (A, B ou C). Esta informação é perdida durante a gravação como texto e corresponde a demasiado esforço criar um formato de ficheiro especial que suporte a gravação e a reposição de toda a informação necessária. Como é que posso sincronizar as janelas de diferenças e junção, de modo que todas mostrem a mesma posição de texto? Carregue na coluna de resumo à esquerda do texto. (Veja também aqui.) Porque é que o editor na janela do resultado da junção não tem uma função para "desfazer"? Isso era demasiado difícil até agora. Você poderá sempre repor uma versão de uma origem (A, B ou C) se carregar no botão respectivo. Para uma edição extensa, recomenda-se a utilização de outro editor, de qualquer forma. Quando eu removi algum texto, apareceu de repente "<Sem linha de origem>" e esta não pode ser removida. O que é que significa e como é que se poderá removê-la? Para cada secção igual ou diferente, o editor na janela do resultado da junção recorda onde é que esta começa ou termina. O "<Sem linha de origem>" significa que não existe mais nada livre numa secção, nem mesmo um carácter de mudança de linha. Isto poderá acontecer durante a junção automática ou durante a edição. Isto não é nenhum problema, dado que esta dica não irá aparecer no ficheiro gravado. Se você quiser os dados originais de volta, basta seleccionar a secção (carregue na coluna de resumo à esquerda) e depois no botão da origem com o conteúdo necessário (A/B ou C). Porque é que o &kdiff3; não suporta o realce de sintaxe? O &kdiff3; já usa demasiadas cores para o realce das diferenças. Se suportasse o realce de sintaxe, tornar-se-ia confuso. Use outro editor para esse efeito. Posso usar o &kdiff3; para comparar ficheiros do OpenOffice.Org, Word, Excel, PDF, &etc;? Ainda que o &kdiff3; analise qualquer tipo de ficheiro, o resultado poderá não ser muito satisfatório para si. O &kdiff3; foi feito para comparar ficheiros de texto puros. O OpenOffice, Word, Excel etc. gravam muito mais informação nos ficheiros (acerca dos tipos de letra, imagens, páginas, cores, etc.), que o &kdiff3; não conhece. Deste modo, o &kdiff3; mostrar-lhe-á o conteúdo do ficheiro interpretado como texto puro, mas este poderá estar ilegível ou, pelo menos, ficará muito esquisito. Dado que a maioria dos programas, nos dias de hoje, gravam o seu conteúdo no formato XML, poderá ser capaz de os ler como texto puro. Por isso, se a alteração foi pequena, o &kdiff3; podê-lo-á ajudar à mesma. A melhor solução, se quiser apenas comparar o texto (sem as imagens incorporadas, como as imagens), é usar o "Seleccionar Tudo" e o "Copiar" no seu programa, para copiar o texto interessante para a área de transferência e depois, no &kdiff3;, colar o texto em qualquer uma das janelas de entrada. (Veja também o Seleccionar, Copiar e Colar.) Para onde foi a opção de pastas "Listar apenas os deltas"? Existem agora várias opções "Mostrar" no menu de pastas. Se desactivar o "Mostrar os ficheiros iguais", irá obter o resultado que o "Listar apenas os deltas" fazia. Como é que faço uma grande selecção na janela de entrada de diferenças, dado que o deslocamento leva tanto tempo? Comece a selecção da forma normal (carregue e mantenha o botão esquerdo do rato carregado). Depois, use as teclas de navegação (p.ex., o Page Up, Page Down), enquanto mantém carregado o botão esquerdo do rato. (Veja também em Seleccionar, Copiar e Colar.) Existe demasiada informação aqui, mas a sua dúvida ainda não foi respondida? Por favor envie ao autor a sua dúvida. Agradece-se qualquer comentário. Créditos e Licença &kdiff3; - Ferramenta de Comparação e Junção de Ficheiros e Pastas Programa com 'copyright' 2002-2007 de Joachim Eibl joachim.eibl at gmx.de Vieram várias ideias giras e relatórios de erros dos colegas do autor e de pessoas da Wild Wild Web. Muito obrigado! Documentação Copyright © 2002-2007 Joachim Eibl joachim.eibl at gmx.de Tradução de José Nuno Pires zepires@gmail.com &underFDL; &underGPL; Instalação Como obter o &kdiff3; Você poderá obter a última versão do &kdiff3; na sua página pessoal em http://kdiff3.sourceforge.net. O &kdiff3; está também disponível para outras plataformas. Veja a página pessoal para mais detalhes. Requisitos Para poder usar todas as funcionalidades com sucesso do &kdiff3;, precisa do &kde; 3.1 ou posterior. Para mais informações sobre como correr o &kdiff3; noutras plataformas sem o KDE, veja por favor a página pessoal. O utilizador poderá encontrar uma lista das alterações em http://kdiff3.sourceforge.net/ChangeLog ou no ficheiro "ChangeLog" do pacote de código. Compilação e Instalação Para poder compilar e instalar o &kdiff3; num sistema com o KDE, escreva o seguinte na pasta de base da distribuição do &kdiff3;: % ./configure --prefix=kde-dir % make % make install O kde-dir corresponde à pasta que contém o KDE no seu sistema. Se não tiver a certeza, leia o ficheiro README para mais detalhes. Se não usar o KDE, não use o configure, mas siga sim as instruções dos sistemas apenas em Qt, no ficheiro README. Dado que o &kdiff3; usa o autoconf e o automake, você não deverá ter problemas a compilá-lo. No caso de ter alguns problemas, por favor comunique-os nas listas de correio do &kde;. &documentation.index;
kdiff3-0.9.97/doc/pt/CMakeLists.txt0000644000175100001440000000013511626145653016260 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/pt SUBDIR kdiff3) kdiff3-0.9.97/doc/update_doc_dir0000644000175100001440000000527411626145651015774 0ustar joachimusers# Copyright (C) 2008 by Joachim Eibl # Licence: GPL V2 # GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA # # For details see file "COPYING". # update_doc_dir: # automatically fetch the most recent translations from the websvn.kde.org server # and update all files for translations # Requirements: wget #http://websvn.kde.org/trunk/l10n-kde4/templates/docmessages/extragear-utils/kdiff3.pot # extract extra strings sed -i /add_subdirectory/d CMakeLists.txt echo add_subdirectory\(en\) >>CMakeLists.txt wget -nv -nc http://websvn.kde.org/*checkout*/trunk/l10n-kde4/subdirs #for i in `cat subdirs` ; do for i in da de en es et fr it nl pt; do if [ $i != "en" ]; then # Many languages don't have translations so don't worry about errors too much. if [ ! -a $i.docbook ]; then wget -nv -nc http://websvn.kde.org/*checkout*/trunk/l10n-kde4/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook fi if [ ! -s $i.docbook ]; then wget -nv http://websvn.kde.org/*checkout*/trunk/l10n-kde3/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook fi # if file exists and has size greater than zero, # but don't fetch the english version, because this is the original version. if [ -s $i.docbook ]; then echo $i # if directory exists delete it recursively and recreate it if [ -d $i ]; then rm -R $i fi mkdir $i cp $i.docbook $i/index.docbook echo kde4_create_handbook\(index.docbook INSTALL_DESTINATION \${HTML_INSTALL_DIR}/$i SUBDIR kdiff3\) >$i/CMakeLists.txt # Note: png files are found automatically in en/kdiff3 directory. No need to link or copy. echo add_subdirectory\($i\) >>CMakeLists.txt fi #rm $i.docbook fi done # Print some info #echo Translated items per language: #for i in `cat subdirs` ; do # if [ -s $i/kdiff3.po ]; then # echo $i `grep msgstr $i/kdiff3.po | grep -v \"\" | wc -l` # fi #done #rm subdirs kdiff3-0.9.97/doc/sv/0000755000175100001440000000000011626145654013527 5ustar joachimuserskdiff3-0.9.97/doc/sv/index.docbook0000644000175100001440000034655211626145653016216 0ustar joachimusers KDiff3"> ]> Handbok &kdiff3; Joachim Eibl
joachim.eibl snabela gmx.de
StefanAsserhäll
stefan.asserhall@comhem.se
Översättare
2002-2007 Joachim Eibl &FDLNotice; 2007-31-03 0.9.92 &kdiff3; är ett verktyg för jämförelser och sammanfogning av filer och kataloger, som jämför och sammanfogar två eller tre indatafiler med text eller kataloger, visar skillnaden rad-för-rad och tecken-för-tecken(!), tillhandahåller en automatisk sammanfogningsfunktion, har en editor för bekväm upplösning av sammanfogningskonflikter, erbjuder nätverkstransparens via KIO, har alternativ för att färglägga eller dölja ändringar av blanktecken och kommentarer, stöder Unicode, UTF-8 och andra filkodningar, skriver ut skillnader, stöder versionshanteringsnyckelord och historiksammanfogning. Det här dokumentet beskriver &kdiff3; version 0.9.92. KDE kdeextragear kdiff3 diff sammanfoga CVS trippeljämförelse jämföra filer kataloger versionshantering trevägs sammanfogning skillnader på plats synkronisera kpart kio nätverkstransparent editor blanktecken kommentarer
Inledning Ännu ett jämförelsegränssnitt? Det finns flera grafiska jämförelseverktyg. Varför ska du välja &kdiff3;? Låt mig tala om varför jag skrev det. &kdiff3; påbörjades därför att jag var tvungen att göra en svår sammanfogning. Att sammanfoga är nödvändigt när flera personer arbetar med samma fil i ett projekt. En sammanfogning kan vara delvis automatiserad, när sammanfogningsverktyget inte bara har tillgång till de nya ändrade filerna (som kallas "grenar"), utan också originalfilen (som kallas "bas"). Sammanfogningsverktyget väljer automatiskt en ändring som bara gjorts i en gren. När flera bidragsgivare ändrar samma rader, detekterar sammanfogningsverktyget en konflikt som måste lösas manuellt. Sammanfogningen var svår eftersom en bidragsgivare hade ändrat mycket och rättat indenteringen på många ställen. Den andra bidragsgivaren hade också ändrat mycket text i samma fil, vilket orsakade flera konflikter vid sammanfogningen. Verktyget som jag då använde visade bara ändrade rader, men inte vad som hade ändrats inom raden. Det fanns inte heller någon information om var bara indenteringen hade ändrats. Sammanfogningen var en mindre mardröm. Det var alltså början. Den första versionen kunde visa skillnader på en rad, och visade skillnader i blanktecken. Senare tillkom många funktioner för att öka användbarheten. Om du till exempel snabbt vill jämföra en text, kan du kopiera den till klippbordet och klistra in i endera jämförelsefönstret. En funktion som krävde en stor ansträngning var funktionen för katalogjämförelse och sammanfogning, som gjorde programmet till en nästan fullständig filbläddrare. Jag hoppas att &kdiff3; fungerar för dig, också. Ha det så kul! Joachim Eibl (2003) Skärmbilder och funktioner Den här skärmbilden visar skillnaden mellan två textfiler (Med en tidig version av &kdiff3;): Trevägs sammanfogning stöds fullständigt. Den är användbar om två personer ändrar kod oberoende av varandra. Originalfilen (basen) används för att hjälpa &kdiff3; att automatiskt välja de riktiga ändringarna. Sammanfogningseditorn under jämförelsefönstren låter dig lösa konflikter, medan utdata du kommer att få visas. Skärmbilden visar tre indatafiler som håller på att' sammanfogas: &kdiff3; hjälper dig också att jämföra och sammanfoga hela kataloger. Den här skärmbilden visar &kdiff3; under en katalogsammanfogning: Mer funktioner Rad-för-rad och tecken-för-tecken jämförelsevisning Genom att använda möjligheterna hos en grafisk färgskärm, visar &kdiff3; exakt vad skillnaderna är. När du måste göra många kodgranskningar, gillar du det här. Se skillnader i blanktecken med en blick Mellanslag och tabulatorer som skiljer sig åt syns. När rader bara skiljer sig i mängden blanktecken syns det med en blick i sammanfattningskolumnen till vänster. (Inga mer problem om någon ändrar indenteringen.) Trevägsjämförelse Analysera tre filer och se var de skiljer sig åt. Vänster/mitten/höger fönster kallas A/B/C och har blå/grön/magenta färg. Om en fil är likadan och en annan annorlunda för en rad, så visar färgerna vilken fil som är annorlunda. Den röda färgen betyder att båda de andra filerna är olika. Bekväm sammanfogning av två eller tre indatafiler &kdiff3; kan användas för att sammanfoga två eller tre indatafiler och sammanfogar automatiskt så mycket som möjligt. Resultatet visas i ett redigerbart fönster där de flesta konflikter kan lösas med ett enda musklick. Välj knapparna A/B/C i verktygsraden för att välja källan som ska användas. Du kan också välja mer än en källa. Eftersom utmatningsfönstret är en editor, kan till och med konflikter som behöver ytterligare korrigering lösas här utan att kräva ett annat verktyg. Och ... Snabb navigering via knappar. Ett musklick i sammanfattningskolumnen synkroniserar alla fönster så att samma position visas. Markera och kopiera från vilket fönster som helst, och klistra in i resultatfönstret för sammanfogning. Översiktskolumn som visar var ändringar och konflikter finns. Färgerna kan justeras enligt dina specifika önskemål. Justerbar flikstorlek. Alternativ för att infoga mellanslag istället för tabulatortecken. Öppna filer bekvämt via dialogrutor, eller ange filnamn på kommandoraden. Sök efter strängar i alla textfönster. Sök (Ctrl+F) och Sök igen (F3) Visa radnummer för varje rad. Klistra in klippbordet eller dra text till ett indatafönster för jämförelse Nätverkstransparens via KIO. Kan användas för jämförelsevisning i KDevelop 3. Radbrytning för långa rader. Stöd för Unicode, UTF-8 och andra kodningar. Stöd för språk som läses från höger till vänster. ... Filjämförelse och sammanfogning Kommandoradsväljare Jämföra två filer: kdiff3 fil1 fil2 Sammanfoga två filer: kdiff3 fil1 fil2 -m kdiff3 fil1 fil2 -o utdatafil Jämföra tre filer: kdiff3 fil1 fil2 fil3 Sammanfoga tre filer: kdiff3 fil1 fil2 fil3 -m kdiff3 fil1 fil2 fil3 -o utdatafil Observera att fil1 behandlas som bas för fil2 och fil3. Specialfall: Filer med samma namn Om alla filer har samma namn men finns i olika kataloger, kan du reducera hur mycket du måste skriva genom att bara ange filnamnet för den första filen. T.ex.: kdiff3 kat1/filnamn kat2 kat3 Kommandorad för att starta en katalogjämförelse eller sammanfogning: Det här är mycket likt, men nu handlar det om kataloger. kdiff3 kat1 kat2 kdiff3 kat1 kat2 -o målkat kdiff3 kat1 kat2 kat3 kdiff3 kat1 kat2 kat3 -o målkat För katalogjämförelse och sammanfogning kan du fortsätta att läsa här. Andra kommandoradsväljare För att se alla tillgängliga kommandoradsväljare, skriv kdiff3 --help Exempel på utmatning: Väljare: -m, --merge Sammanfoga indata. -b, --base file Explicit basfil. För att fungera tillsammans med vissa verktyg. -o, --output file Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt --out file Utdatafil, igen. (för att fungera med vissa verktyg.) --auto Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -o fil) --qall Lös inte konflikter automatiskt. (För att fungera med andra verktyg...) --L1 alias1 Synlig ersättning av namn för indatafil 1 (bas). --L2 alias2 Synlig ersättning av namn för indatafil 2. --L3 alias3 Synlig ersättning av namn för indatafil 3. -L, --fname alias Alternativ synlig ersättning av namn. Ange detta en gång för all indata. --cs string Överskrid en inställning. Använd en gång för varje inställning, t.ex. --cs "AutoAdvance=1" --confighelp Visa lista med inställningar och nuvarande värden. --config file Använd en annan inställningsfil. Väljaren låter dig justera ett inställningsalternativ som annars bara kan justeras via inställningsdialogrutorna. Men var medveten om att när &kdiff3; avslutas lagras det ändrade värdet tillsammans med andra inställningar. Med kan du ta reda på namnen på tillgängliga alternativ och nuvarande värden. Via kan du ange en annan inställningsfil. Om du ofta använder &kdiff3; med helt olika inställningar låter det dig enkelt byta mellan dem. Kommandoradsväljare som ignoreras Många personer vill använda &kdiff3; tillsammans med något versionshanteringssystem, men när versionshanteringssystemet anroppar &kdiff3; med kommandoradsväljare som &kdiff3; inte känner igen, avslutas &kdiff3; med ett fel. Integrationsinställningarna gör det möjligt att ange kommandoradsväljare som ska ignoreras av &kdiff3;. De visas i användningshjälpen som i det här exemplet: --väljare Ignoreras. (anvädardefinierad) Kommandoradsväljare att ignorera:En lista med väljare, åtskilda med semikolon ';'. När en av dessa väljare finns på kommenderaden, ignorerar &kdiff3; den och kör utan att rapportera ett fel. (Förval är "u;query;html;abort"). Om det inte är nog, rekommenderas du att skriva ett skalskript som gör översättningen av väljare. Dialogrutan Öppna Eftersom många indatafiler måste kunna väljas, har programmet en särskild öppningsdialogruta: Öppningsdialogrutan tillåter att filnamnen redigeras för hand, att en fil väljes via filbläddraren ("Fil...") eller att senast använda filer väljes i kombinationsrutan. Om du öppnar dialogrutan igen, finns de nuvarande namnen fortfarande där. Den tredje indatafilen krävs inte. Om fältet för "C" förblir tomt, görs bara en tvåvägs jämförelseanalys. Du kan också välja en katalog med "Katalog...". Om en katalog anges för A, startar en katalogjämförelse och sammanfogning. Om A anger en fil, men B, C eller utmatningen anger en katalog, använder &kdiff3; filnamnet från A i de angivna katalogerna. Om "Sammanfoga" är valt, blir raden "Utmatning" redigerbar. Det krävs dock inte att utdatafilens namn anges omedelbart. Du kan också vänta med detta till du sparar. Knappen "Anpassa..." visar inställningsdialogrutan, så att du kan ställa in alternativ innan analysen utförs. Klistra in eller släpp indata Ibland vill du jämföra delar av en text som inte är en egen fil. &kdiff3; låter dig också klistra in text från klippbordet i det indatafönster för jämförelse som har fokus. Jämförelseanalysen sker då omedelbart. I öppningsdialogrutan behöver du då inte ange filer, utan bara stänga den via "Avbryt". Du kan också använda drag och släpp: Dra en fil från en filhanterare eller markerad text från en editor och släpp den på ett indatafönster för jämförelse. Vad är idén? Ibland innehåller en fil två liknande funktioner, men att kontrollera hur lika de verkligen är blir en stor ansträngning om du först måste skapa två filer och sedan ladda dem. Nu kan du helt enkelt kopiera, klistra in och jämföra de relevanta avsnitten. För närvarande kan du inte dra någonting från &kdiff3;. Bara att släppa indata i jämförelsefönstret stöds. Varning: Vissa editorer tolkar fortfarande drag och släpp till ett annat program som klipp ut (istället för kopiera) och klistra in. Ditt ursprungliga data kan då gå förlorat. Jämföra filer och tolka informationen i indatafönstren InformationsradLängst upp i varje textfönster finns dess "informationsrad". Informationsraderna i indatafönstret innehåller bokstaven "A", "B" eller "C", filnamnet och radnumret för den första synliga raden i fönstret. (Observera att fönstret "C" är valfritt.) Varje informationsrad visas i en egen färg. När du väljer en annan fil genom att bläddra eller avslutar redigera filnamnet här genom att trycka på returtangenten, laddas den nya filen och jämförs med filen eller filerna som redan är laddade. FärgläggningDe tre indatafönstren tilldelas bokstäverna "A", "B" och "C". "A" har blå färg, "B" har grön färg och "C" har magenta. (Det är förvalda färger, men de kan ändras via menyn Inställningar.) När en skillnad upptäcks visar färgen vilken indatafil som skiljer sig åt. När båda övriga indatafiler skiljer sig åt, är färgen som används för att uttrycka det normalt röd ("Konfliktfärg" i inställningarna). Det här färgläggningsschemat är särskilt användbart i fallet med tre indatafiler, som syns i nästa avsnitt (Sammanfogning). SammanfattningskolumnTill vänster om varje text är "sammanfattningskolumnen". Om skillnader uppstod på en rad, visar sammanfattningskolumnen motsvarande färg. För en skillnad som bara består av blanktecken är sammanfattningen kryssad. För programspråk, där blanktecken inte är så viktiga är det användbart för att se med en blick om något av vikt ändrades. (För C/C++ är blanktecken bara intressanta inne i strängar, i kommentarer, för preprocessorn och i några mycket esoteriska situationer.) Den vertikala linjen som skiljer sammanfattningskolumnen och texten är avbruten om indatafilen inte har några rader där. När radbrytning är aktiverad visas den vertikala linjen med punkter för brutna rader. ÖversiktskolumnPå höger sida är en "översiktskolumn" synlig till vänster om den vertikala rullningslisten. Den visar en komprimerad sammanfattning av indata "A". Alla skillnader och konflikter är synliga med en blick. När bara två indatafönster används, syns alla skillnader i rött här, eftersom alla skillnader också är konflikter. En svart rektangel ramar in den synliga delen av indata. För mycket långa indatafiler, där antalet indatarader är större än höjden på översikten i bildpunkter, delar flera indatarader en översiktsrad. En konflikt har prioritet över enkla skillnader, som har prioritet över inga ändringar, så att inga skillnader eller konflikter går förlorade här. Genom att klicka på översiktskolumnen visas motsvarande text. Justera rader manuelltIbland placerar algoritmen fel rader intill varandra, eller så vill du jämföra ett textstycke med text på en helt annan position i den andra filen. I dessa fall kan du manuellt tala om för &kdiff3; att vissa rader ska arrangeras i rak linje. Markera texten som du vill arrangera med musen, som du skulle göra vid kopiera och klistra in, i det första jämförelsefönstret och välj därefter "Lägg till manuell justering av jämförelse" i menyn "Jämförelsevy" (snabbtangenten "Ctrl+Y"). En orange rad visas i sammanfattningskolumnen intill den markerade texten. Upprepa det för den andra och (om tillgänglig) tredje jämförelsevyn. &kdiff3; beräknar omedelbart om jämförelsen varje gång du gör det, och radar upp de markerade raderna. Naturligtvis kanske några av raderna som tidigare matchade inte längre matchar. För närvarande stöder inte sammanfogning användning av manuell hjälp vid jämförelse. Manuell ihopfogning och delning av jämförelseavsnittI vissa fall ser &kdiff3; för många eller för få avsnitt att sammanfoga. I ett sådant fall kan du foga ihop eller dela befintliga avsnitt. Lägg till nya avsnitt genom att först markera texten på raderna som hör ihop i något av indatafönstren (som vid kopiering till klippbordet). Välj därefter "Dela jämförelse vid markering" i menyn "Sammanfoga". Delningen görs ovanför den första raden och under den sista raden i den markerade texten. Om du bara vill lägga till ett avsnitt, markera text som börjar på ett annat avsnitts delning. För att foga ihop avsnitt i något indatafönster, markera någonting på raderna i avsnitten som ska fogas ihop. (Du kan också foga ihop flera avsnitt i ett steg.) Välj därefter "Foga ihop markerade jämförelser" i menyn "Sammanfoga". Sammanfogning och editorfönstret för sammanfogningsutdata Editorfönstret för sammanfogningsutdata (under indatafönstren för jämförelse) har också en informationsrad längst upp som visar "Utmatning", filnamnet och "[Ändrad]" om du redigerat något. Oftast innehåller det någon text från de automatiska sammanfogningsfunktionerna, men det innehåller också ofta konflikter. Spara är inaktiverat till alla konflikter är lösta! (Använd knapparna "Gå till föregående/nästa olösta konflikt" för att hitta återstående konflikter.) Med bara två filer är varje skillnad också en konflikt, som måste lösas manuellt. Med tre indatafiler behandlas den första som bas, medan den andra och tredje indatafilen innehåller ändringar. Om bara indata B eller C har ändrats för en viss rad, men inte båda väljes den ändrade källan automatiskt. Bara om B och C har ändrats på samma rader, detekterar verktyget en konflikt som måste lösas manuellt. När B och C är likadana, men inte samma som A, väljes C.  SammanfattningskolumnenEditorfönstret för sammanfogningsutdata har också en sammanfattningskolumn till vänster. Den visar bokstaven för indata som raden valdes, eller ingenting om alla tre källorna var likadana för raden. Vid konflikter visar den ett frågetecken "?" och raden visar "< Konflikter vid sammanfogning >", allt med rött. Eftersom det skulle ta mycket lång tid att lösa konflikter rad för rad, grupperas rader i grupper som har samma skillnader och konfliktkaraktär. Konflikter med bara blanktecken skiljs dock från andra konflikter för att förbättra sammanfogningen av filer där indenteringen ändrats på många rader. Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns positionNär du klickar på sammanfattningskolumnen med vänster musknapp i endera fönstret, så markeras gruppen som hör till den raden i alla fönster och gruppens början visas. (Det här kan innebära ett automatiskt byte av position i fönstren om gruppens början inte syns.) Gruppen blir då den "aktuella gruppen". Den markeras med "Bakgrundsfärgen för aktuellt jämförelseintervall" och en svart rad visas till vänster om texten. Välja indata A, B eller C för aktuell konflikt och redigeringKnappraden under menyraden innehåller tre knappar för indataval som innehåller bokstäverna "A", "B" och "C". Klicka på knappen för indataval för att infoga rader (eller ta bort dem om de redan infogats) från respektive källfil. För att välja rader från flera indatafiler klicka på respektive knappar i nödvändig ordning. Om du till exempel vill att rader från "B" ska hamna före rader från "A" i utdata, klicka först på "B" och därefter på "A". Om du använder alternativet för att automatiskt gå vidare (Gå automatiskt till nästa olösta konflikt efter val av källa), måste du inaktivera det innan du väljer rader från flera indatafiler eller om du vill redigera raderna efter du valt dem. Annars går &kdiff3; till nästa konflikt efter den första indatafilen valts. Det är ofta användbart att direkt redigera sammanfogad utdata. Sammanfattningskolumnen visar "m" för varje rad som ändrades manuellt. När skillnaderna till exempel justeras på ett sätt så att ett enkelt val av indata inte är tillfredsställande, kan du markera texten som behövs och använda normal kopiera och klistra in för att placera den i sammanfogad utdata. Ibland, när en rad tas bort antingen på grund av automatisk sammanfogning eller genom redigering och inga andra rader finns kvar i gruppen, visas texten <Ingen källrad> på raden. Det är bara en platsmarkör för gruppen om du ändrar dig och väljer en källa igen. Texten syns inte i sparade filer eller i några markeringar som du vill kopiera och klistra in. Texten "< Konflikter vid sammanfogning >" visas på klippbordet om du kopierar och klistrar in någon text som innehåller en sådan rad. Men var ändå försiktig med att göra det. Välja indata A, B eller C för alla konflikterDen normala sammanfogningen börjar med att automatiskt lösa enkla konflikter. Menyn "Sammanfoga" tillhandahåller också några alternativ för andra vanliga behov. Om du måste välja samma källfil för de flesta konflikter, kan du välja "A", "B" eller "C" överallt, eller bara för återstående olösta konflikter, eller för olösta konflikter med blanktecken. Om du vill bestämma själv för varje enskild skillnad, kan du "Ändra skillnader till konflikter", eller om du vill återgå till de automatiska valen i &kdiff3; kan du välja "Lös automatiskt enkla konflikter". Då startar &kdiff3; om sammanfogningen. För åtgärder som påverkar dina tidigare ändringar frågar &kdiff3; om bekräftelse innan åtgärden utförs. Observera: När endera källan väljes för olösta konflikter för blanktecken och alternativet "Ignorera siffror" eller "Ignorera C/C++ kommentarer" används, så behandlas ändringar i siffror eller kommentarer också som blanktecken. Sammanfoga automatiskt nyckelord för versionshantering och historik (logg)Många versionshanteringssystem stöder särskilda nyckelord i filen (t.ex. "$Date$", "$Header$", "$Author$", "$Log$" etc.) Vid arkivering ändrar versionshanteringssystemet (VCN) dessa rader. Till exempel ändras "$Date$" till "$Date: 2005/03/22 18:45:01 $". Eftersom raden är olika i varje version av filen, skulle den kräva manuell interaktion under sammanfogningen. &kdiff3; erbjuder automatisk sammanfogning av dessa poster. För enkla rader som matchar alternativet "Reguljärt uttryck för automatisk sammanfogning" i alla indatafiler väljer &kdiff3; raden från B, eller om tillgänglig, den från C. (Dessutom är det nödvändigt att raderna i fråga radas upp i jämförelsen och att föregående rad inte innehåller en konflikt.) Den automatiska sammanfogningen kan antingen utföras omedelbart när sammanfogningen startas (aktivera alternativet "Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar") eller senare via "Kör automatisk sammanfogning med reguljärt uttryck" i menyn Sammanfoga. Automatisk sammanfogning för versionshanteringshistorik (också kallat "logg") stöds också. Automatisk sammanfogning av historik kan antingen utföras omedelbart när sammanfogningen startas genom att aktivera alternativet "Sammanfogning enligt versionshanteringshistorik när sammanfogning startar" eller senare via "Lös automatiskt historikkonflikter" i menyn Sammanfoga. Oftast börjar versionshanteringshistoriken med en rad som innehåller nyckelordet "$Log$". Den måste matchas av alternativet "Reguljärt uttryck för historikens början". &kdiff3; detekterar vilka efterföljande rader som ingår i historiken genom att analysera de inledande tecknen som fanns före nyckelordet "$Log$". Om samma "inledande kommentar" också finns på följande rader inkluderas de också i historiken. Vid varje arkivering skriver VCS en unik rad som anger version, datum- och tidsinformation följd av rader med användarens kommentarer. Raderna utgör en historikpost. Historikavsnittet växer vid varje arkivering och de senaste posterna visas längst upp (efter historikens startrad). När två utvecklare arkiverar grenar av en fil under parallell utveckling, kommer historiken för sammanfogning att innehålla flera poster som visas som konflikter under sammafogning av grenarna. Eftersom sammafogning av dem kan bli mycket tröttsam, erbjuder &kdiff3; stöd för den med två möjliga strategier: Bara infoga historikinformationen från båda bidragsgivarna längst upp, eller sortera historikinformationen enligt en användardefinierad nyckel. Metoden att bara infoga alla poster är enklast att ställa in. &kdiff3; behöver bara en metod att detektera vilka rader som hör till en historikpost. De flesta VCS infogar en tom rad efter varje historikpost. Om det inte finns några andra tomma rader, är det ett tillräckligt villkor för &kdiff3;. Ange bara en tom "Reguljärt uttryck för historikens början". Om kriteriet med en tom rad inte är tillräckligt kan du ange ett reguljärt uttryck för att detektera historikpostens början. Observera att &kdiff3; tar bort duplicerade historikposter.Om en historikpost fanns flera gånger i en indatafils historik, förblir bara en post i utmatningen. Om du vill sortera historiken måste du ange hur sorteringsnyckeln ska byggas. Använd parenteser som i "Reguljärt uttryck för historikpostens början" för att gruppera delar av det reguljära uttrycket som senare ska användas i sorteringsnyckeln. Ange därefter "Sorteringsnycklarnas ordning från historikpostens början" med en lista av nummer som refererar till gruppens position i det reguljära uttrycket åtskilda av kommatecken ",". Eftersom det inte är så enkelt att få det rätt omedelbart, kan du prova och förbättra det reguljära uttrycket och nyckelgenereringen i en särskild dialogruta genom att klicka på knappen "Prova dina reguljära uttryck". Antag att historiken ser ut så här: /************************************************************************** ** HISTORIK: $Log: \toms_sammanfogning_huvudvy\Mitt_program\kod\komplexalgoritm.cpp $ ** ** \head\integreringsgren_12 2 Apr 2001 10:45:41 tom ** Sammanfogade grenen simongren_15. ** ** \main\henry_felrättningsgren_7\1 30 Mar 2001 19:22:05 henry ** Förbättrade hastigheten för delrutinen omvandlaTill(). ** Fixade krasch. **************************************************************************/ Historikens inledande rad matchar det reguljära uttrycket ".*\$Log.*\$.*". Därefter följer historikposterna. Raden med nyckelordet "$Log$" börjar med två "*" och därefter följer ett mellanslag. &kdiff3; använder den första strängen utan blanktecken som "inledande kommentar" och antar att historiken slutar med den första raden utan denna inledande kommentar. I exemplet slutar den sista raden med en sträng som också börjar med två "*", men istället för ett mellanslag följer fler "*". Därför avslutar denna rad historiken. Om sortering av historiken inte krävs kan det reguljära uttrycket för historikpostens början se ut så här. (Raden är delad i två eftersom den inte skulle få plats annars.) \s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* För detaljinformation om reguljära uttryck se Trolltechs dokumentation av reguljära uttryck. Observera att "\s" (med ett litet "s") matchar alla blanktecken och "\S" (med ett stort "S") matchar alla tecken som inte är blanktecken. I vårt exempel innehåller historikpostens början först versionsinformation med det reguljära uttrycket "\\main\\\S+", datumet som består av dagen "[0-9]+", månaden "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" och året "[0-9][0-9][0-9][0-9]", tiden "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" och till sist utvecklarens inloggningsnamn ".*". Observera att de "inledande kommentartecknen" (i exemplet "**") redan har tagits bort av &kdiff3; innan försöket att matcha, alltså börjar det reguljära uttrycket med att matcha ett eller flera blanktecken "\s*". Eftersom kommentartecken kan skilja sig åt i varje fil (C/C++ använder t.ex. andra kommentartecken än ett Perl-skript), tar &kdiff3; hand om de inledande kommentartecknen och du ska inte ange dem i det reguljära uttrycket. Om du kräver sorterad historik måste sorteringsnyckeln beräknas. För att göra det måste relevanta delar i det reguljära uttrycket grupperas med parenteser. (De extra parenteserna kan också vara kvar även om historiksortering inaktiveras.) \s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) Parenteserna innehåller nu 1. versionsinformation, 2. dag, 3. månad, 4. år, 5. tid, 6. namn. Men om vi vill sortera enligt datum och tid måste vi skapa en nyckel med elementen synliga i en annan ordning: Först året, följt av månad, dag, tid, versionsinformation och namn. Därför ska sorteringsnyckelns ordning som anges vara "4,3,2,5,1,6". Eftersom månadsnamn inte är bra att sortera enligt ("Apr" skulle vara först) detekterar &kdiff3; vilken ordning månadsnamnen anges och använder det numret istället ("Apr"->"04"). Och om ett rent nummer hittas omvandlas det till ett fyrasiffrors värde med inledande nollor för sortering. Till sist blir den resulterande sorteringsnyckeln för den första historikpostens inledande rad: 2001 04 0002 10:45:41 integreringsgren_12 tom För mer information, se också Inställningar av sammanfoga. Navigering och redigering Mycket navigering görs med rullningslisterna och musen, men du kan också navigera med tangentbordet. Om du klickar på något fönster kan du använda markörtangenterna vänsterpil, högerpil, uppåtpil, neråtpil, Page Up, Page Down, Home, End, Ctrl+Home och Ctrl+End som du kan i andra program. Sammanfattningskolumnen intill indatafilernas vertikala rullningslist kan också användas för att navigera genom att klicka i den. Du kan också använda hjulmusen för att rulla uppåt och neråt. I editorn för sammanfogningsutdata kan du också använda andra tangenter för redigering. Du kan byta mellan infognings- och ersättningsläge med tangenten Insert. (Normalläget är infoga.) Ett klick med vänster musknapp i någon sammanfattningskolumn synkroniserar alla fönster för att visa början på samma grupp av rader (som förklaras i avsnittet Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns position). Verktygsraden innehåller också nio navigeringsknappar som du kan använda för att gå till aktuell/första/sista skillnaden, till nästa/föregående skillnad (Ctrl+Neråtpil eller Ctrl+Uppåtpil), till nästa/föregående konflikt (Ctrl+Page Down eller Ctrl+Page Up) eller till nästa/föregående olösta konflikt. Observera att för &kdiff3; förblir en "konflikt" som inte automatiskt löstes vid start av sammanfogningen alltid en "konflikt" även om den är löst. Därav nödvändigheten att särskilja "olösta konflikter". Automatisk fortsättning Det finns också en knapp som heter "Gå automatiskt till nästa olösta konflikt efter val av källa" (automatisk fortsättning). Om du aktiverar det här, så går &kdiff3; automatiskt till nästa olösta konflikt när en källa väljes. Det kan hjälpa till när du bara vill välja en källa. När du behöver båda källor, eller du vill redigera efter valet, bör du troligen stänga av det här. Innan &kdiff3; fortsätter till nästa olösta konflikt, visas effekten av valet en kort tid. Den här fördröjningen kan justeras i inställningarna under Jämför och sammanfoga. Du kan ange "Fördröjning vid automatisk fortsättning" i millisekunder mellan 0 och 2000. Tips: Är du trött på många klick? Använd en kort fördröjning vid automatisk fortsättning och snabbtangenterna Ctrl+1/2/3 för att välja A/B/C för många konflikter. Markera, kopiera och klistra in Indatafönstren visar inte någon markör, så markeringar måste göras med musen, genom att klicka med vänster musknapp på början, hålla nere musknappen och gå till slutet, där musknappen släpps upp igen. Du kan också markera ett ord genom att dubbelklicka på det. I editorn för sammanfogningsutdata kan du också markera med tangentbordet, genom att hålla nere skifttangenten och navigera med piltangenterna. Om markeringen överstiger det synliga området, kan du flytta musen över fönsterkanterna, vilket gör att &kdiff3; rullar i den riktningen. För mycket stora markeringar kan du också använda navigationstangenterna medan musknappen hålls nere. Använd t.ex. Page Up och Page Down för att snabbt gå till en viss position. Släpp upp musknappen på slutpositionen. För att markera allt i det nuvarande fönstret, använd menyn "Redigera" -> "Markera allt" (Ctrl+A). För att kopiera till klippbordet måste du trycka på knappen "Kopiera" (Ctrl+C eller Ctrl+Insert). Men det finns ett alternativ som heter "Kopiera automatiskt markering". Om det är aktiverat, kopieras vad du än väljer omedelbart, och du behöver aldrig explicit kopiera. Men var försiktig när du använder detta, eftersom klippbordets innehåll kan förstöras av misstag. "Klipp ut" (Ctrl+X eller Skift+Delete) kopierar till klippbordet och tar bort den markerade texten. "Klistra in" (Ctrl+V eller Skift+Insert) infogar texten på klippbordet vid markörens position eller istället för den nuvarande markeringen. Om du klistrar in i något av jämförelsefönstren visas klippbordets innehåll i fönstret och jämförelsen startas omedelbart om. Det är användbart om du snabbt vill hämta ett textstycke någonstans och jämföra det med något annat utan att först skapa filer. Spara Att spara tillåts bara när alla konflikter är lösta. Om filen redan finns och alternativet "Säkerhetskopiera filer" är markerat, ändras originalversionens namn med tillägg av filändelsen .orig, och om en sådan fil redan finns tas den bort. När du avslutar eller startar en ny jämförelseanalys och data inte sparats ännu, frågar &kdiff3; om du vill spara, avbryta eller fortsätta utan att spara. (&kdiff3; fångar inga signaler, så om du "dödar" &kdiff3; går data förlorat.) Radslut sparas enligt den normala metoden i det underliggande operativsystemet. För Unix slutar varje rad med ett nyradstecken "\n", medan för Windows-baserade system slutar varje rad med ett returtecken och ett nyradstecken "\r\n". &kdiff3; behåller inte radslut för indatafilerna, vilket också betyder att du inte ska använda &kdiff3; med binärfiler. Söka efter strängar Du kan söka efter en sträng i vilket textfönster som helst i &kdiff3;. Kommandot "Sök..." (Ctrl+F) i menyn Redigera, visar en dialogruta som låter dig ange strängen att söka efter. Du kan också välja de fönster som ska sökas. Sökning startar alltid från början. Använd kommandot "Sök igen" (F3) för att fortsätta till nästa förekomst. Om du väljer att söka i flera fönster, söks det första fönstret från början till slut innan sökningen fortsätter från början i nästa fönster, etc. Utskrift &kdiff3; stöder utskrift av skillnader mellan textfiler. Kommandot "Skriv ut..." (Ctrl+P) i menyn Arkiv visar en dialogruta som låter dig välja skrivare och justera andra alternativ. Det finns flera möjligheter att justera intervallet. Beroende på olika utskriftsdialogrutor på olika operativsystem, varierar metoden för att åstadkomma val av ett visst intervall. Alla:Skriv ut allt. Aktuell:Skriv ut en sida som börjar på den första synliga raden i fönstret. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 10000 för utskrift.) Markering:Innan du väljer att skriva ut, markera text med musen (som för kopiera och klistra in) i ett av jämförelsefönstren för att definiera start- och slutrad. Om ingen text var markerad i något av jämförelsefönstren, är inte alternativet tillgängligt. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 9999 för utskrift.) Intervall:Ange första och sista sidan. Andra viktiga inställningar för utskrift tas från de normala inställningarna: Teckensnitt, teckenstorlek Visa radnummer Radbryt Färger etc. Liggande formatering rekommenderas också för utskrift. Alternativ Alternativ och listan med senaste filer sparas när du avslutar programmet, och laddas igen när du startar det. (Menyn Inställningar -> Anpassa &kdiff3;...) Teckensnitt Välj ett teckensnitt med fast breddsteg. (På vissa system visar dialogrutan också teckensnitt med variabel bredd, men du bör inte använda dem.) Kursiv stil för skillnader:Om du markerar detta, visas textskillnader med kursiv version av det valda teckensnittet. Om teckensnittet inte stöder kursiv stil, gör det ingenting. Färger Förgrundsfärg:Oftast svart. Bakgrundsfärg:Oftast vit. Bakgrundsfärg för jämförelse:Oftast ljusgrå. Färg A:Oftast mörkblå. Färg B:Oftast mörkgrön. Färg C:Oftast mörk magenta. Konfliktfärg:Oftast röd. Bakgrundsfärg för aktuellt intervall:Oftast ljusgul. Bakgrundsfärg för aktuellt jämförelseintervall:Oftast mörkgul. Färg för manuellt valda jämförelseintervall:Oftast orange. Färg för nyaste fil i katalogjämförelse:Oftast grön. Färg för äldsta fil i en katalogjämförelse:Oftast röd. Färg för medelgamla filer i en katalogjämförelse:Oftast mörkgul. Färg för saknade filer i en katalogjämförelse:Oftast svart. Att ändra färgerna för katalogjämförelser får inte någon effekt förrän nästa katalogjämförelse startas. För system med bara 16 eller 256 färger är vissa rena färger inte tillgängliga. För sådana system väljer knappen "Förval" en ren färg. Inställningar för editor Tabulator infogar mellanslag:Om det här inte är markerat, och du trycker på tabulatortangenten, infogas en tabulator, annars infogas lämpligt antal mellanslag. Tabulatorbredd:Kan justeras för dina speciella behov. Normalvärdet är 8. Automatisk indentering:När du trycker på Enter eller returtangenten, används föregående rads indentering för den nya raden. Kopiera automatiskt markering:Varje markering kopieras omedelbart till klippbordet när den aktiveras, och du behöver inte kopiera den explicit. Radslutstil:När du sparar kan du välja vilken radslutsstil du föredrar. Förvald inställning är det vanliga valet för operativsystemet som används. Inställningar av jämför När filer jämförs försöker &kdiff3; först att matcha rader som är lika i alla indatafiler. Det är bara under detta steg som blanktecken kan ignoreras. Det andra steget jämför varje rad. Under detta steg ignoreras inte blanktecken. Under sammanfogning ignoreras inte heller blanktecken. Behåll returtecken:Vissa editorer (på vissa system) sparar returtecken '\r' och nyradstecken '\n' i slutet på raden, medan andra bara sparar nyradstecknet '\n'. Oftast ignorerar &kdiff3; returtecknet, men då ser filer som inte har samma storlek likadana ut vid jämförelse sida vid sida. När det här alternativet är markerat, görs returtecken synliga, men behandlas som blanktecken. Det här alternativet måste vara av under en sammanfogning. Normalvärdet är av. Ignorera siffror:Normalvärdet är av. Siffertecken ('0'-'9', '.', '-') ignoreras under första delen av analysen när radmatchningen görs. Skillnaderna för resultatet visas ändå, men de behandlas som blanktecken. Ignorera C/C++ kommentarer:Normalvärdet är av. Ändringar i kommentarer behandlas som ändringar i blanktecken. Ignorera skiftläge:Normalvärdet är av. Ändringar i skiftläge för tecken (som 'A' eller 'a') hanteras som ändringar i blanktecken. Preprocessorkommando:Se nästa avsnitt. Radmatchande preprocessorkommando:Se nästa avsnitt. Var noggrann:Gör en ansträngning att hitta en ännu mindre skillnad (Normalvärdet är på). Det här är troligen effektivt för komplicerade och stora filer, och långsamt för mycket stora filer. Inställningar av sammanfoga Fördröjning vid automatisk fortsättning (ms):I automatiskt fortsättningsläge anger den här inställningen hur länge resultatet för gruppen ska visas innan hopp till nästa olösta konflikt. Standardvärde för sammanfogning av blanktecken med två/tre filer:Lös automatiskt alla konflikter för blanktecken genom att välja angiven fil. (Normalvärdet är manuellt val.) Användbart om blanktecken verkligen är oviktiga i många filer. Om du bara behöver det ibland, är det bättre att använda "Välj A/B/C för olösta konflikter med blanktecken" i menyn Sammanfoga. Observera att om du antingen aktiverar "Ignorera siffror" eller "Ignorera C/C++ kommentarer" gäller det automatiska valet också vid konflikter för siffror eller kommentarer. Reguljärt uttryck för automatisk sammanfogning:Reguljärt uttryck för rader där &kdiff3; automatisk ska välja en källa. Se också Automatisk sammanfogning ... Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar:Om aktiverad utför &kdiff3; den automatiska sammanfogningen med "Reguljärt uttryck för automatisk sammanfogning" när en sammanfogning startas. Reguljärt uttryck för historikens början:Reguljärt uttryck för början av historikposten för sammanfogning. Oftast innehåller raden nyckelordet "$Log$". Förvalt värde: ".*\$Log.*\$.*" Reguljärt uttryck för historikpostens början:En historikpost för sammanfogning består av flera rader. Ange det reguljära uttrycket för att detektera den första raden (utan inledande kommentar). Använd parenteser för att gruppera nycklarna du vill använda för sortering. Om det lämnas tomt, antar &kdiff3; att tomma rader skiljer historikposterna åt. Se också Automatisk sammanfogning ... Sortering av historiksammanfogning:Aktivera sortering av versionshanteringshistorik. Sorteringsnycklarnas ordning från historikpostens början:Varje parentes som används i det reguljära uttrycket för historikens startpost grupperar en nyckel som kan användas för sortering. Ange listan med nycklar (som numreras i ordning de uppträder med början på 1) med ',' som skiljetecken (t.ex. "4,5,6,1,2,3,7"). Om det lämnas tomt utförs ingen sortering. Se också Automatisk sammanfogning ... Sammanfogning enligt versionshanteringshistorik när sammanfogningen startar:Om aktiverad utför &kdiff3; den automatiska sammafogningen av historik med tidigarenämnda alternativ när en sammanfogning startas. Maximalt antal historikposter:&kdiff3; kortar av historiklistan till angivet antal poster. Använd -1 för att undvika avkortning. (Standardvärde är -1). Prova dina reguljära uttryckKnappen visar en dialogruta som låter dig förbättra och prova det reguljära uttrycket ovan. Kopiera bara respektive data från dina filer till exempelraderna. "Matchningsresultat" visar omedelbart om matchningen lyckas eller inte. "Sorteringsnyckelresultat" visar nyckeln som används för sortering vid sammanfogning av historik. Ej relevant sammanfogningskommando:Ange ett eget kommando som ska anropas när &kdiff3; detekterar att filen från B inte bidrar med något relevant data som inte reda finns i filen från C. Kommandot anropas med de tre filnamnen som parametrar. Data som matchas av "Reguljärt uttryck för automatisk sammanfogning" eller i historiken anses inte vara relevant. Katalogsammanfogning De här alternativen har att göra med avsökning av katalogen och hantering av sammanfogningen: Se Katalogjämförelse och sammanfogning för detaljinformation. Ändå finns det ett alternativ här som också är relevant för att spara enstaka filer: Säkerhetskopiera filer:När en fil sparas och en äldre version redan finns, ändras originalversionens namn med tillägg av filändelsen ".orig". Om en gammal säkerhetskopia med filändelsen ".orig" redan finns tas den bort utan säkerhetskopiering. Inställningar för region och språk Språk:Justera användargränssnittets språk. Att ändra alternativet påverkar inte programmet som kör. Du måste avsluta och starta om &kdiff3; för att ändra språk. (Alternativet är inte tillgängligt i KDE-versionen av &kdiff3;, eftersom språket kan justeras i de allmänna KDE-inställningarna.) Använd samma kodning för allt:Följande kodningsalternativ kan justeras separat för varje objekt, eller om alternativet är sant, ställs alla värden in till det första värdet. Lokal kodning:Ovanför kodningsväljarna visas en anmärkning som talar om för dig vad den lokala kodningen är (Den kan inte justeras, utan bara som information om du inte vet vad den lokala kodningen är, men behöver kunna välja den.) Filkodning för A/B/C:Justera filkodningen för indatafiler. Det ger effekt på hur specialtecken tolkas. Eftersom du kan justera varje kodning separat, kan du till och med jämföra och sammanfoga filer som sparades med olika kodningar. Filkodning för sammanfogad utdata och vid spara:När du har redigerat en fil, kan du justera vilken kodning som används när den sparas till disk. Filkodning för preprocessorfiler:När du definierar preprocessorer kanske de inte kan hantera din kodning (exempelvis om dina filer använder 16-bitars Unicode och preprocessorn bara kan hantera 8-bitars ASCII). Med det här alternativet kan du definiera kodningen för preprocessorns utdata. Språk som läses från höger till vänsterVissa språk skrivs från höger till vänster. När alternativet är aktiverat, ritar &kdiff3; text från höger till vänster i jämförelsefönstren och i sammanfogningsfönstret. Observera att om du startar &kdiff3; med kommandoradsväljaren "--reverse" så visas all layout också från höger till vänster. (Det är en funktion som Qt tillhandahåller.) Denna dokumentation är skriven med antagandet att "Språk som läses från höger till vänster" eller omvänd layout inte är aktiverade. Vissa referenser till "vänster" eller "höger" måste ersättas av motsatsen om du använder alternativen. Diverse (Dessa alternativ och åtgärder är tillgängliga i menyerna eller verktygsraden.) Visa radnummer:Du kan välja om radnummer ska visas för indatafilerna. Visa mellanslag och tabulatortecken i jämförelse:Ibland är synliga mellanslag och tabulatortecken störande. Du kan stänga av detta. Visa blanktecken:Stäng av det här för att inte visa ändringar av bara blanktecken i texten eller översiktskolumnerna. (Observera att detta också gäller ändringar av siffror eller kommentarer om alternativen "Ignorera siffror" eller "Ignorera C/C++ kommentarer" är aktiva.) Översiktsalternativ:Dessa alternativ är bara tillgängliga när du jämför tre filer. I normalläge visas alla skillnader i en färgkodad översiktskolumn, men ibland är du särskilt intresserad av skillnaderna mellan två av de tre filerna. Genom att välja översikten "A mot B", "A mot C" eller "B mot C", visas en andra översiktskolumn med begärd information intill den vanliga översikten. Radbryt skillnadsfönster:Radbryt rader när deras längd skulle överskrida ett fönsters bredd. Visa fönster A/B/C:Ibland vill du använda skärmutrymmet bättre för långa rader. Dölj fönster som inte är viktiga. (I menyn Fönster.) Byt delningsorientering:Byt mellan jämförelsefönster som visas intill varandra (A till vänster om B till vänster om C) eller ovanför varandra (A ovanför B ovanför C). Det bör också hjälpa för långa rader. (I menyn Fönster.) Starta sammanfogning snabbt:Ibland tittar du på skillnader, och bestämmer dig för att sammanfoga. "Sammanfoga aktuell fil" i menyn Katalog fungerar också om du bara jämför två filer. Ett enkelklick startar sammanfogningen och använder filnamnet på den sista indatafilen som förvalt utmatningsfilnamn. (När detta används för att starta om en sammanfogning, behålls utmatningsfilnamnet.) Anpassa snabbtangenter För närvarande stöder bara KDE-versionen anpassningsbara snabbtangenter (Menyn Inställningar -> Anpassa genvägar...) Preprocessorkommandon &kdiff3; stöder två preprocessoralternativ. Preprocessorkommando:När en fil läses, skickas den via det här externa kommandot. Utmatningen från kommandot visas istället för den ursprungliga filen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Använd det här för att ta bort störande delar av filen, eller för att automatiskt korrigera indenteringen, etc. Radmatchande preprocessorkommando:När en fil läses, skickas den via det här externa kommandot. Om ett preprocessorkommando (se ovan) också anges är utmatningen från preprocessorn inmatning till den radmatchande preprocessorn. Utmatningen används bara under radmatchningsfasen av analysen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Varje indatarad måste ha en motsvarande utdatarad. Idén är att ge användaren större flexibilitet när jämförelseresultatet ställs in, men det kräver ett externt program, och många användare vill inte skriva ett själva. De goda nyheterna är att ofta klarar sed eller perl av jobbet. Till exempel ett enkelt fall att prova: Betrakta filen a.txt (6 rader): aa ba ca da ea fa Och filen b.txt (3 rader): cg dg eg Utan en preprocessor skulle följande rader placeras intill varandra: aa - cg ba - dg ca - eg da ea fa Det är troligen inte vad som önskas eftersom den första bokstaven innehåller den intressanta informationen. För att hjälpa matchningsalgoritmen att ignorera den andra bokstaven kan man använda ett radmatchande preprocessorkommando som ersätter 'g' med 'a': sed 's/g/a/' Med det kommandot blir resultatet av matchningen: aa ba ca - cg da - dg ea - eg fa Internt ser matchningsalgoritmen filerna efter den radmatchande preprocessorn har körts, men på skärmen är filen oförändrad. (Den normala preprocessorn skulle också ändra data på skärmen.) Grundläggande information om <command >sed</command > Det här avsnittet introducerar bara några mycket grundläggande funktioner i sed. För mer information se info:/sed eller http://www.gnu.org/software/sed/manual/html_mono/sed.html. En förkompilerad version för Windows finns på http://unxutils.sourceforge.net. Observera att följande exempel antar att sed finns i någon katalog i miljövariabeln PATH. Om det inte är fallet, måste du ange fullständig absolut sökväg till kommandot. Observera också att följande exempel använder enkla citationstecken ('), vilket inte fungerar i Windows. I Windows ska du istället använda dubbla citationstecken ("). I det här sammanhanget används bara ersättningskommandot i sed: sed 's/REGUTTRYCK/ERSÄTTNING/FLAGGOR' Innan du använder ett nytt kommando inne i &kdiff3;, bör du först prova det i en terminal. Då är kommandot echo användbart. Till exempel: echo abrakadabra | sed 's/a/o/' -> obrakadabra Exemplet visar ett mycket enkelt sed-kommando som ersätter den första förekomsten av "a" med "o". Om du vill ersätta alla förekomster behöver du flaggan "g": echo abrakadabra | sed 's/a/o/g' -> obrokodobro Symbolen "|" är rörledningskommandot som överför utdata från föregående kommando till indata i efterföljande kommando. Om du vill prova med en längre fil kan du använda cat på Unix-liknande system eller type på Windows-liknande system. sed utför ersättningen för varje rad. cat filnamn |sed väljare Exempel på användning av <command >sed</command > i &kdiff3; Ignorera andra typer av kommentarer För närvarande förstår &kdiff3; bara C/C++ kommentarer. Genom att använda ett radmatchande preprocessorkommando kan du också ignorera andra typer av kommentarer genom att konvertera dem till C/C++ kommentarer. För att till exempel ignorera kommentarer som börjar med "#", skulle du vilja konvertera dem till "//". Observera att du också måste aktivera alternativet "Ignorera C/C++ kommentarer" för att få någon effekt. Ett lämpligt radmatchande preprocessorkommando skulle vara: sed 's/#/\/\//' Eftersom tecknet "/" har en särskild betydelse i sed, är det nödvändigt att lägga till tecknet "\" innan varje "/" i ersättningssträngen. Ibland behövs "\" för att lägga till eller ta bort en särskild betydelse för vissa tecken. De enkla citationstecknen (') innan och efter ersättningskommandot är nu viktiga, eftersom skalet annars skulle försöka tolka vissa specialtecken som '#', '$' eller '\' innan de skickas till sed. Observera att i Windows behöver du dubbla citationstecken (") här. Windows ersätter andra tecken som '%', så du kan behöva experimentera något. Jämförelse som inte är skiftlägeskänslig Använd följande radmatchande preprocessorkommando för att omvandla all indata till stora bokstäver: sed 's/\(.*\)/\U\1/' Här är ".*" ett reguljärt uttryck som matchar alla strängar, och i det här sammanhanget matchar alla tecken på raden. Tecknet "\1" i ersättningssträngen motsvarar den matchade texten mellan det första paret "\(" och "\)". "\U" konverterar den infogade texten till stora bokstäver. Ignorera nyckelord för versionshantering CVS och andra versionshanteringssystem använder flera nyckelord för att infoga automatiskt skapade strängar (info:/cvs/Keyword substitution). Alla följer mönstret "$NYCKELORD skapad text$". Nu behöver vi ett radmatchande preprocessorkommando som bara tar bort den skapade texten: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' Strängen "\|" skiljer de möjliga nyckelorden åt. Du kanske vill ändra listan enligt dina behov. Tecknet "\" framför "$" behövs eftersom annars matchar "$" radens slut. Medan du experimenterar med sed kan du komma att förstå och till och med tycka om de reguljära uttrycken. De är användbara eftersom det finns många andra program som också stöder liknande funktioner. Ignorera siffror Att ignorera siffror är i själva verket ett inbyggt alternativ, men som ett annat exempel, visas hur det skulle se ut som ett radmatchande preprocessorkommando. sed 's/[0123456789.-]//g' Alla tecken inom '[' och ']' matchar och kommer att ersättas av ingenting. Ignorera vissa kolumner Ibland är texten mycket strikt formaterad, och innehåller kolumner som du alltid vill ignorera, medan det finns andra kolumner du vill bevara för analys. I följande exempel ignoreras de fem första kolumnerna (tecknen), de följande tio kolumnerna bevaras, därefter ignoreras återigen fem kolumner och resten av raden bevaras. sed 's/.....\(..........\).....\(.*\)/\1\2/' Varje punkt '.' motsvarar vilket enstaka tecken som helst. Strängarna "\1" och "\2" i ersättningssträngen refererar till den matchande texten inom det första och andra paret av "\(" och "\)" som anger texten att bevara. Kombinera flera ersättningar Ibland vill du tillämpa flera ersättningar samtidigt. Då kan du använda semikolon ';' för att skilja dem från varandra. Till exempel: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO Använda <command >perl</command > istället för <command >sed</command > Istället för sed kanske du vill använda något annat som perl. perl -p -e 's/REGUTTRYCK/ERSÄTTNING/FLAGGOR' Men vissa detaljer är annorlunda i perl. Observera att där sed behöver "\(" och "\)" kräver perl det enklare "(" och ")" utan inledande '\'. Till exempel: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Ordning vid körning av preprocessor Data skickas igenom all intern och extern förbehandling i följande ordning: Normal preprocessor, Preprocessor för radmatchning, Ignorera skiftläge (konvertering till stora bokstäver), Detektering av C/C++ kommentarer, Ignorera siffror, Ignorera blanktecken Data efter den normala förbehandlingen bevaras för att visas och sammanfogas. De andra åtgärderna ändrar bara data som algoritmen för radmatchande jämförelse ser. I de sällsynta fall då du använder normal förbehandling, observera att den radmatchande förbehandlingen ser utdata från den normala förbehandlingen som indata. Varning Förbehandlingskommandon är ofta mycket användbara, men som med alla alternativ som ändrar texten eller döljer vissa skillnader automatiskt, kan du av misstag hoppa över vissa skillnader och i värsta fall förstöra viktig data. Av denna orsak, om ett normalt preprocessorkommando används under en sammanfogning, talar &kdiff3; om det för dig och frågar om det ska inaktiveras eller inte. Men du får ingen varning om ett radmatchande preprocessorkommando är aktivt. Sammanfogningen sker inte förrän alla konflikter är lösta. Om du inaktiverade "Visa blanktecken" blir också skillnaderna som togs bort med det radmatchande preprocessorkommandot osynliga. Om knappen Spara förblir inaktiv under en sammanfogning (på grund av kvarvarande konflikter), försäkra dig om att aktivera "Visa blanktecken". Om du inte vill sammanfoga dessa mindre viktiga skillnader för hand kan du välja "Välj [A|B|C] för olösta konflikter med blanktecken" i menyn "Sammanfoga". Katalogjämförelse och sammanfogning med &kdiff3; Introduktion till katalogjämförelse och sammanfogning Ofta måste programmerare ändra många filer i en katalog för att uppnå sina syften. För att åstadkomma detta låter &kdiff3; dig också jämföra och sammanfoga hela kataloger rekursivt! Även om jämförelse och sammanfogning av kataloger verkar vara ganska självklart, finns det flera detaljer som du bör känna till. Det viktigaste är förstås faktum att många filer nu kan påverkas av varje åtgärd. Om du inte har säkerhetskopior av originaldata, kan det vara mycket svårt eller till och med omöjligt att återgå till originalläget. Så innan du påbörjar en sammanfogning, försäkra dig om att data är säkert, och att det är möjligt att återställa. Om du skapar ett arkiv, eller använder ett versionshanteringssystem är ditt eget beslut, men till och med erfarna programmerare och integratörer behöver ibland gammal källkod. Observera också att även om jag (upphovsmannen till &kdiff3;) försöker att göra mitt bästa, kan jag inte garantera att det inte finns fel. Enligt GNU GPL finns det INGEN GARANTI av något slag för det här programmet. Så var ödmjuk, och kom alltid ihåg:
Att fela är mänskligt, men för att verkligen ställa till det behövs en dator.
Så det här är vad programmet kan göra åt dig: &kdiff3; ... ... läser och jämför två eller tre kataloger rekursivt, ... hanterar symboliska länkar särskilt, ... låter dig bläddra mellan filer med ett dubbelklick på musen, ... föreslår ett sammanfogningsalternativ för varje objekt, som du kan ändra innan katalogsammanfogningen startas, ... låter dig simulera sammanfogningen och listar åtgärderna som skulle ske, utan att verkligen göra dem, ... låter dig utföra sammanfogningen, och låter dig bestämma så fort manuell interaktion behövs, ... låter dig utföra vald åtgärd för alla objekt (tangenten F7 ) eller markerat objekt (tangenten F6), ... låter dig fortsätta sammanfogningen efter manuell interaktion med tangenten F7, ... skapar valfria säkerhetskopior, med filändelsen ".orig", ...
Starta katalogjämförelse eller sammanfogning Det här liknar mycket sammanfogning och jämförelse av en enstaka fil. Du måste bara ange kataloger på kommandoraden eller i dialogrutan för filöppning. Jämföra eller sammanfoga två kataloger: kdiff3 kat1 kat2 kdiff3 kat1 kat2 målkat Om ingen målkatalog anges, använder &kdiff3; kat2. Jämföra eller sammanfoga tre kataloger: kdiff3 kat1 kat2 kat3 kdiff3 kat1 kat2 kat3 målkat När tre kataloger sammanfogas, används kat1 som basen för sammanfogningen. Om ingen målkatalog anges, använder &kdiff3; kat3 som målkatalog för sammanfogningen. Observera att bara jämförelsen startas automatiskt, inte sammanfogningen. För det måste du först välja ett menyalternativ eller tangenten F7. (Mer information kommer senare.) Katalogsammanfogning av synlig information Medan katalogerna läses visas en meddelanderuta som informerar dig om förloppet. Om du avbryter katalogavsökningen, visas bara filer som hittills har jämförts. När katalogavsökningen är färdig, visar &kdiff3; en listruta med återstående resultat, ... ... och detaljinformation om det markerade objektet till höger: Namnkolumnen Varje fil och katalog som hittades under avsökningen visas här i ett träd. Du kan välja ett objekt genom att klicka en gång på det med musen. Katalogerna är normalt ihopdragna. Du kan expandera och dra ihop dem genom att klicka på "+"/"-", genom att dubbelklicka på objektet eller genom att använda tangenterna vänsterpil och högerpil. Menyn "Katalog" innehåller också två alternativ "Dra ihop alla underkataloger" och "Expandera alla underkataloger" som du kan använda för att dra ihop eller expandera alla kataloger på en gång. Om du dubbelklickar på ett filobjekt, utförs filjämförelsen och jämförelsefönstret för filer visas. Ikonen i namnkolumnen motsvarar filtypen i den första katalogen ("A"). Den kan vara någon av dessa: Normal fil Normal katalog (katalogikon) Länk till en fil (filikon med en länkpil) Länk till en katalog (katalogikon med en länkpil) Om filtypen är annorlunda i övriga kataloger, syns det i kolumnerna A/B/C och i fönstret som visar detaljinformation om det markerade objektet. Observera att i dessa fall kan inte någon sammanfogningsåtgärd väljas automatiskt. När sammanfogningen startas, informeras användaren om den här sortens problem. Kolumnerna A/B/C och färgläggningsschemat Som syns i bilden ovan, används färgerna röd, grön, gul och svart i kolumnerna A/B/C. Svart: Det här objektet finns inte i den här katalogen. Grön: Nyaste objektet. Gul: Äldre än grön, nyare än röd. Röd: Äldsta objektet. Utom för objekt som var identiska i jämförelsen, där är färgen också identisk även om åldern inte är det. Kataloger anses vara likadana om alla objekt de innehåller är likadana. Då har de också samma färg. Åldern på en katalog spelar dock ingen roll för dess färg. Idén för färgläggningsschemat hittade jag i dirdiff. Färgerna motsvarar färgerna hos ett löv som är grönt från början, sedan blir gult och till sist rött när det är gammalt. Åtgärdskolumnen Efter att ha jämfört katalogerna utvärderar &kdiff3; också ett förslag på sammanfogningsåtgärd. Det visas i kolumnen "Åtgärd". Du kan ändra den genom att klicka på åtgärden du vill ändra. En liten meny dyker upp och låter dig välja en åtgärd för objektet. (Du kan också välja den oftast använda åtgärden via tangentbordet. Ctrl+1/2/3/4/Delete väljer A/B/C/Sammanfoga/Ta bort om de är tillgängliga.) Åtgärden utförs under sammanfogningen. Vilka åtgärder som är tillgängliga beror på objektet och sammanfogningsläget som används. Sammanfogningsläget är ett av Sammanfogning av tre kataloger ("A" behandlas som äldsta bas för båda). Sammanfogning av två kataloger. Tvåkatalogs synkroniseringsläge (aktiveras med alternativet "Synkronisera kataloger"). Vid trekatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... ... alla tre katalogerna är likadana: Kopiera från C ... A och C är likadana med B är det inte: Kopiera från B (eller om B inte finns, ta bort målet om det finns) ... A och B är likadana med C är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns) ... B och C är likadana med A är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns) ... bara A finns: Ta bort målet (om det finns) ... bara B finns: Kopiera från B ... bara C finns: Kopiera från C ... A, B och C är inte likadana: Sammanfoga ... A, B och C har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas. Vid tvåkatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... ... båda katalogerna är likadana: Kopiera från B ... A finns men inte B: Kopiera från A ... B finns men inte A: Kopiera från B ... A och B finns men är inte likadana: Sammanfoga ... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas. Synkroniseringsläge är bara aktivt om två kataloger och ingen explicit målkatalog anges, och om alternativet "Synkronisera kataloger" är aktivt. &kdiff3; väljer då en standardåtgärd så att båda katalogerna är likadana efteråt. Om för ett objekt ... ... båda katalogerna är lika: Ingenting görs. ... A finns, men inte B: Kopiera A till B ... B finns, men inte A: Kopiera B till A ... A och B finns, men är inte likadana: Sammanfoga och lagra resultatet i båda kataloger. (För användaren är det synliga filnamnet för att spara B, men därefter kopierar &kdiff3; också B till A.) ... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas. När två kataloger sammanfogas och alternativet "Kopiera nyare istället för att sammanfoga" är markerat, tittar &kdiff3; på datum och föreslår att välja den nyare filen. Om filerna inte är lika men har samma datum, innehåller åtgärden "Fel: Datum är lika men filerna är det inte." Medan sådana objekt finns, kan inte katalogsammanfogningen startas. Statuskolumnen Under sammanfogningen behandlas en fil i taget. Statuskolumnen visar "Klar" för objekt där sammanfogningsåtgärden har lyckats, och någon annan text om något oväntat inträffade. När en sammanfogning är färdig, bör du göra en sista kontroll för att se att status för alla objekt är acceptabel. Statistikkolumner När filjämförelseläget "Fullständig analys" är aktiverat i alternativen, visar &kdiff3; extra kolumner som innehåller antal oupplösta, upplösta, inte blanka och blanka konflikter. (Kolumnen lösta visas bara när kataloger jämförs eller sammanfogas.) Välja listade filer Flera alternativ påverkar vilka filer som listas här. Vissa är tillgängliga i inställningsdialogrutan. Menyn Katalog innehåller alternativen: "Visa identiska filer": Filer som har detekterats som lika i alla indatakataloger. "Visa olika filer": Filer som finns i två eller flera kataloger men inte är lika. "Visa bara filer i A": Filer som bara finns i A, men inte i B eller C. "Visa bara filer i B": Filer som bara finns i B, men inte i A eller C. "Visa bara filer i C": Filer som bara finns i C, men inte i A eller B. Aktivera bara alternativen "Visa" för objekten du vill lista. Om du till exempel bara vill lista alla objekt som antingen finns i A eller i B men inte i båda, måste du aktivera "Visa bara filer i A" och "Visa bara filer i B" och inaktivera alla andra ("Visa identiska filer", "Visa olika filer", "Visa bara filer i C"). Listan uppdateras omedelbart för att motsvara ändringen. Alternativen gäller också för kataloger med ett undantag: Att inaktivera "Visa olika filer" döljer inte hela kataloger. Det fungerar bara för filer inne i dem. Observera att av dessa är bara alternativet "Visa identiska filer" som är bestående Övriga aktiveras när &kdiff3; startas. Utföra en katalogsammanfogning Du kan antingen sammanfoga markerat objekt (fil eller katalog), eller alla objekt. När du har gjort alla val av åtgärder (också i alla underkataloger), kan du utföra sammanfogningen. Var medveten om att om du inte explicit angav en målkatalog, blir målet "C" i trekatalogsläge, "B" i tvåkatalogsläge, och i synkroniseringsläge är det "A" och/eller "B". Om du också har angivit en målkatalog, kontrollera att alla objekt som ska finnas i utmatningen finns i trädet. Det finns några alternativ som får vissa objekt att utelämnas från katalogjämförelsen och sammanfogningen. Kontrollera dessa alternativ för att undvika obehagliga överraskningar: "Rekursiva kataloger": Om det är av, hittas inte objekt i underkataloger. "Mönster" eller "Undantagsmönster": Inkludera eller undanta objekt som matchar "Undanta gömda filer" "Visa"-alternativ (Visa identiska/olika filer, bara filer i A/B/C) Om du ändrar inställningarna för att visa fler filer, måste du göra en omsökning via menyn "Katalog" -> "Avsök igen". (Orsaken till det är att &kdiff3; utelämnar jämförelsen för filer enligt kriterierna för att få snabbare jämförelsehastighet.) Om du ändrade fil- och katalogmönster för att undanta filer, uppdateras fillistan omedelbart när inställningsdialogrutan stängs. Observera att när du skriver till en helt ny katalog vill du oftast också kopiera de identiska filerna. Aktivera "Visa identiska filer" i detta fall. Om din målkatalog är en av indatakatalogerna, är det inte nödvändigt eftersom filerna redan finns där. Om du är nöjd hittills, är resten enkelt. För att sammanfoga alla objekt: Välj "Starta eller fortsätt katalogsammanfogning" i menyn "Katalog" eller tryck på F7 (som är snabbtangenten). För att bara sammanfoga aktuellt objekt: Välj "Utför åtgärd för aktuellt objekt" eller tryck på F6. Om vissa objekt med ogiltiga filtyper fortfarande finns, på grund av filtyper med konflikter, visas en meddelanderuta och objekten pekas ut, så att du kan välja en giltig åtgärd för objektet. Om du sammanfogar alla objekt visas en dialogruta som ger dig alternativen "Gör det", "Simulera det" och "Avbryt". Välj "Simulera det" om du vill se vad som skulle göras utan att verkligen göra det. En utförlig lista med alla åtgärder visas. Välj annars "Gör det" för att verkligen utföra sammanfogningen. Därefter utför &kdiff3; den angivna åtgärden för alla objekt. Om manuell interaktion krävs (sammanfogning av enstaka fil), visas ett sammanfogningsfönster (se den stora skärmbilden). När du är klar med manuell sammanfogning av en fil, välj återigen "Starta eller fortsätt katalogsammanfogning" eller tryck på F7. Om du inte har sparat ännu, ber en dialogruta dig att göra det. Därefter fortsätter &kdiff3; till nästa objekt. När &kdiff3; stöter på ett fel, meddelas det och utförlig statusinformation visas. Längst ner i listan finns det några felmeddelanden som bör hjälpa dig att förstå problemets orsak. När du fortsätter sammanslagningen (tangenten F7), ger &kdiff3; dig valet att försöka igen eller hoppa över objektet som orsakade problemet. Det betyder att du kan välja en annan åtgärd, eller lösa problemet på annat sätt, innan du fortsätter. När sammanfogningen är färdig, informerar &kdiff3; dig med en meddelanderuta. Om vissa objekt sammanfogades individuellt innan katalogsammanfogningen, kommer &kdiff3; ihåg det (medan sammanfogningssessionen pågår), och sammanfogar dem inte igen när sammanfogningen för alla objekt utförs. Även när sammanfogningen hoppas över eller ingenting sparas räknas dessa objekt som färdiga. Bara när sammanfogningsåtgärden ändras, tas objektets "klar"-status bort och det kan sammanfogas igen. Alternativ för att jämföra och sammanfoga kataloger Inställning av &kdiff3; (menyn "Inställningar" -> "Anpassa &kdiff3;") har en sida som heter "Katalogsammanfogning" med följande alternativ: Rekursiva kataloger:Välj om kataloger ska sökas igenom rekursivt. Mönster för filer:Bara filer som matchar något mönster här läggs till i trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. (t.ex. "*.cpp;*.h"). Normalvärdet är "*". Mönstret används inte för kataloger. Undantagsmönster för filer:Filer som matchar något mönster undantas från trädet. Mer än ett mönster kan anges här genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "*.orig;*.o;*.obj". Undantagsmönster för kataloger:Kataloger som matchar något mönster undantas från trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "CVS;deps;.svn". Använd .cvsignore:Ignorera filer och kataloger som också skulle ignoreras av CVS. Många automatiskt genererade filer ignoreras av CVS. Den stora fördelen är att detta kan vara katalogspecifikt via en lokal ".cvsignore" fil. (Se info:/cvs/cvsignore.) Sök efter gömda filer och kataloger:För vissa filsystem har filer egenskapen "Dold". För andra system döljs ett filnamn som börjar med en punkt ("."). Alternativet låter dig bestämma om dessa filer ska ingå i trädet eller inte. Normalvärdet är på. Följ fillänkar:För länkar till filer: Om inaktiverad, jämförs de symboliska länkarna. Om aktiverad, jämförs filerna bakom länkarna. Normalvärdet är av. Följ kataloglänkar:För länkar till kataloger: Om inaktiverad, jämförs symboliska länkar. Om aktiverad behandlas länken som en katalog och avsöks rekursivt. (Observera att programmet inte kontrollerar om länken är "rekursiv". En katalog som innehåller en länk till samma katalog skulle orsaka en oändlig snurra, och efter en viss tid när stacken blir full eller minnet tar slut, kraschar programmet.) Normalvärdet är av. Skiftlägeskänslig filnamnsjämförelse:Förvalt värde är falskt på Windows, och sant för andra operativsystem. Filjämförelseläge: Binär jämförelse:Det här är förvalt filjämförelseläge. Fullständig analys:Gör en fullständig analys av varje fil och visa kolumner med statistisk information. (Antal upplösta, oupplösta, inte blanka och blanka konflikter.) Den fullständiga analysen är långsammare än en enkel binäranalys, och är mycket långsammare för filer som inte innehåller text. (Ange lämpliga filmönster för att undvika dem.) Lita på ändringsdatum:Om du jämför stora kataloger via ett långsamt nätverk, kan det gå snabbare att bara jämföra ändringsdatum och fillängd. Men hastighetsförbättringen sker till priset av en liten osäkerhet. Använd alternativet med försiktighet. Normalvärdet är av. Lita på storleken:Liknar att lita på ändringsdatum. Ingen verklig jämförelse sker. Två filer anses vara lika om deras filstorlekar är lika. Detta är användbart när filkopieringsåtgärden inte bevarade ändringsdatum. Använd alternativet med försiktighet. Normalvärdet är av. Synkronisera kataloger:Aktiverar "synkroniseringsläge" när två kataloger jämförs och ingen explicit målkatalog anges. I det här läget väljes föreslagna åtgärder så att båda källkatalogerna är likadana efteråt. Sammanfogningsresultatet skrivs också till båda kataloger. Normalvärdet är av. Kopiera nyare istället för att sammanfoga:Istället för att sammanfoga kopierar den föreslagna åtgärden den nyare källan om ändringar har skett. (Anses vara osäkert, eftersom det förutsätter att du vet att den andra filen inte också har redigerats. Kontrollera för att vara säker i varje enskilt fall.) Normalvärdet är av. Säkerhetskopiera filer:Om en fil eller hel katalog ersätts med en annan eller tas bort, då ändras originalversionens namn med tillägg av filändelsen ".orig". Om en gammal säkerhetskopia med filändelsen ".orig" redan finns tas den bort utan säkerhetskopiering. Det här gäller också normal sammanfogning av enstaka filer, inte bara sammanfogningsläge för kataloger. Normalvärdet är på. Andra funktioner i katalogsammanfogningsfönstret Delat eller fullskärmsläge Oftast förblir listfönstret för katalogsammanfogning synligt medan en enstaka fil jämförs eller sammanfogas. Du kan flytta raden som delar fillistan från fönstren för textjämförelse med musen. Om du inte vill göra det, kan du inaktivera "Delad skärmvy" i menyn "Katalog". Därefter kan du använda "Byt vy" i menyn "Katalog" för att byta mellan fillistan och fönstren för textjämförelse, som då upptar hela fönstret. Jämföra och sammanfoga en ensam fil Du föredrar troligen ett vanligt dubbelklick på musen för att jämföra en fil. Hur som helst finns det också ett alternativ i menyn "Katalog". Du kan också direkt sammanfoga en enstaka fil, utan att starta katalogsammanfogning via "Sammanfoga markerade filer" i menyn "Sammanfoga". När resultatet sparas, sätts status till klar, och filen sammanfogas inte igen om en katalogsammanfogning startas. Men observera att statusinformationen går förlorad när du kör om en katalogavsökning: menyn "Katalog", "Avsök igen" Jämföra eller sammanfoga filer med olika namn Ibland behöver du jämföra eller sammanfoga filer med olika namn (t.ex. nuvarande fil och säkerhetskopian i samma katalog). Markera den exakta filen genom att klicka på ikonen i kolumnen A, B eller C. Filen som först markeras på det sättet markeras med "A", den andra och tredje med "B" och "C" oberoende av vilken kolumn de finns i. Bara upp till tre filer kan markeras på detta sätt. Fortsätt genom att välja "Jämför explicit markerade filer" eller "Sammanfoga explicit markerade filer" från menyn "Katalog". Av bekvämlighetsskäl finns också menyalternativen som en sammanhangsberoende meny som visas när du klickar på den senast markerade filen. Jämförelsen eller sammanfogningen av en fil sker i samma fönster. Om metoden används för kataloger öppnas ett nytt fönster.
Diverse ämnen Nätverkstransparens via KIO I/O-slavar KDE stöder nätverkstransparens via I/O-slavar. &kdiff3; använder dem för att läsa indatafiler och avsöka kataloger. Det betyder att du kan ange filer och kataloger på lokal- och fjärr-resurser via webbadresser. Exempel: kdiff3 test.cpp ftp://ftp.langtbortistan.org/test.cpp kdiff3 tar:/home/hackare/arkiv.tar.gz/kat ./kat Den första raden jämför en lokal fil med en fil på en FTP-server. Den andra raden jämför en katalog i ett komprimerat arkiv med en lokal katalog. Andra I/O-slavar som är intressanta är: Filer från WWW (http:), Filer från FTP (ftp:), Krypterad filöverföring (fish:, sftp:), Resurser från Windows (smb:), Lokala filer (file:), Andra saker som är möjliga, men troligen mindre användbara, är: Manualsidor (man:), Infosidor (info:), Hur man skriver webbadresser En webbadress har en annorlunda syntax jämfört med sökvägar till lokala filer och kataloger. Vissa saker måste tas hänsyn till: En sökväg kan vara relativ, och kan innehålla "." eller "..". Det är inte möjligt för webbadresser, som alltid är absoluta. Specialtecken måste skrivas med särskilda "teckenföljder". ("#" blir "%23", mellanslag blir "%20", etc.) Till exempel skulle en fil med namnet "/#foo#" ha webbadressen "file:/%23foo%23". När webbadresser inte fungerar som väntat, försök att öppna dem i Konqueror först. Möjligheter med I/O-slavar Nätverkstransparens har en nackdel: Inte alla resurser har samma möjligheter. Ibland beror det på serverns filsystem, ibland på protokollet. Här är en kort lista med begränsningar: Ibland finns det inget stöd för länkar. Eller finns det inget sätt att särskilja om en länk pekar på en fil eller katalog, då antas alltid en fil (ftp:, sftp:). Kan inte alltid avgöra filstorleken. Begränsat stöd för rättigheter. Ingen möjlighet att ändra rättigheter eller ändringstid, så rättigheter eller tiden för en kopia skiljer sig från originalet. (Se alternativet "Lita på storlek". Ändring av rättigheter eller ändringstid är bara möjligt för lokala filer.) Använda &kdiff3; som en Kpart Kdiff3 är en Kpart. För närvarande implementeras gränssnittet KParts::ReadOnlyPart. Den huvudsakliga användningen är för skillnadsvisning i KDevelop. KDevelop startar alltid den interna skillnadsvisningen först. För att använda &kdiff3;, klicka med höger musknapp i skillnadsvisningens fönster och välj "Visa i KDiff3-del" i den sammanhangsberoende menyn. &kdiff3; kräver normalt två fullständiga filer som indata. När det används som en del, antar &kdiff3; att indatafilen är en programfixfil med unifierat format. &kdiff3; hämtar därefter originalfilernas namn i programfixfilen. Åtminstone en av de två filerna måste vara tillgänglig. &kdiff3; startar då kommandot patch för att återskapa den andra filen. Du kan välja en programfixfil i Konqueror och välja "Förhandsgranska i"-"Kdiff3-del" i den sammanhangsberoende menyn. Var medveten om att det inte fungerar om ingen av originalfilerna finns tillgänglig, och är inte tillförlitligt om originalfilen eller filerna har ändrats sedan programfixfilen skapades. När det kör som ett delprogram tillhandahåller &kdiff3; bara jämförelse mellan två filer, en mycket liten verktygsrad och meny. Sammanfogning eller katalogjämförelse stöds då inte. Vanliga frågor &reporting.bugs; &updating.documentation; Varför kallas det "&kdiff3;"? Verktyg som heter "KDiff" och "KDiff2" (som nu kallas "Kompare") fanns redan. Dessutom ska "Kdiff3" antyda att programmet kan sammanfoga som verktyget "diff3" från samlingen med diff-verktyg. Varför licensieras det under GPL? Jag har använt GPL-program under mycket lång tid nu, och lärt mig mycket genom att titta på en hel del av källkoden. Alltså är det här mitt "tack" till alla programmerare som också gjorde eller kommer att göra samma sak. Vissa knappar och funktioner saknas. Vad är fel? Du kompilerade från källkod, men angav troligen inte rätt KDE-prefix med configure. Normalt vill configure installera i /usr/local, men då kan inte KDE hitta resursfilerna för användargränssnittet (dvs. kdiff3ui.rc). Filen README innehåller mer information om riktigt prefix. Ofta visas rader som är liknande men inte identiska intill varandra, men inte alltid. Varför? Rader där bara antal blanktecken är olika behandlas som "lika", medan bara ett annorlunda blanktecken gör att raderna är "olika". Om liknande rader finns intill varandra, är detta i själva verket en slump men det är som tur är oftast fallet. Se också hjälpen på manualsidan för diff. Varför måste alla konflikter vara lösta innan sammanfogningsresultatet kan sparas? För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihåg var det börjar och slutar. Det behövs eftersom konflikter kan lösas upp manuellt genom att helt enkelt välja källknappen (A, B eller C). Informationen går förlorad när filen sparas som text, och det är för mycket ansträngning att skapa ett speciellt filformat som stöder att spara och återställa all nödvändig information. Hur kan jag synkronisera jämförelsevyn och sammanfogningsvyn så att alla vyer visar samma textposition? Klicka på sammanfattningskolumnen till vänster om texten. (Se också här.) Varför har inte editorn i resultatfönstret för sammanfogning en "ångra"-funktion? Hittills har det varit för stor ansträngning. Du kan alltid återställa en version från en källa (A, B eller C) genom att klicka på motsvarande knapp. För större redigering, rekommenderas användning av en annan editor ändå. När jag tog bort en del text, visades plötsligt "<Ingen källrad>" och det kan inte tas bort. Vad betyder det och hur kan man ta bort det? För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihåg var det börjar och slutar. "<Ingen källrad>" betyder att det inte finns någonting kvar i ett avsnitt, inte ens ett nyradstecken. Detta kan inträffa antingen vid automatisk sammanfogning eller efter redigering. Det är inget problem, eftersom den här informationen inte finns med i den sparade filen. Om du vill ha tillbaka originalkällan, markera bara källan (klicka på sammanfattningskolumnen till vänster) och klicka därefter på källknappen med innehållet som önskas (A, B eller C). Varför stöder inte &kdiff3; syntaxfärgläggning? &kdiff3; använder redan många färger för färgläggning av jämförelser. Ytterligare färgläggning skulle vara förvirrande. Använd en annan editor för detta. Kan jag använda &kdiff3; för att jämföra filer från OpenOffice.Org, Word, Excel, PDF, och så vidare? Även om &kdiff3; kan analysera alla sorters filer, är resultatet troligen inte särskilt tillfredsställande för dig. &kdiff3; skapades för att jämföra rena textfiler. OpenOffice, Word, Excel, och så vidare, lagrar mycket mer information i filerna (om teckensnitt, bilder, sidor, färger, etc.), som &kdiff3; inte känner till. Alltså visar &kdiff3; dig innehållet i filen tolkat som ren text, men det kan vara oläsbart eller åtminstone se mycket konstigt ut. Eftersom de flesta program nuförtiden lagrar sitt innehåll med XML-format, kanske du kan läsa det som ren text. Om ändringen bara var liten, kanske &kdiff3; fortfarande kan hjälpa dig. Den bästa lösningen om du bara vill jämföra texten (utan inbäddade objekt som bilder) är att använda "Markera alla" och "Kopiera" i programmet för att kopiera den intressanta texten till klippbordet och därefter klistra in texten i något av jämförelsefönstren i &kdiff3;. (Se också Markera, kopiera och klistra in.) Vart har katalogalternativet "Lista bara skillnader" tagit vägen? Det finns nu flera olika "Visa"-alternativ i katalogmenyn. Att inaktivera "Visa identiska filer" åstadkommer vad aktivering av "Lista bara skillnader" brukade göra. Hur kan man göra en stor markering i jämförelsefönstret fastän det tar så lång tid att rulla texten? Påbörja markeringen som vanligt (klicka och håll nere vänster musknapp). Använd därefter navigationstangenterna (t.ex. Page Up, Page Down) medan vänster musknapp hålls nere. (Se också Markera, kopiera och klistra in.) Det finns en stor mängd information här, men din fråga har ändå inte besvarats? Skicka gärna din fråga till mig. Jag uppskattar alla kommentarer. Tack till och licens &kdiff3;: Verktyg för jämförelser och sammanfogning av filer och kataloger Program copyright 2002-2007 Joachim Eibl joachim.eibl snabela gmx.de Flera häftiga idéer och felrapporter kom från kolleger och många personer ute i den Vida Vilda Världen. Tack! Dokumentation Copyright © 2002-2007 Joachim Eibl joachim. eibl snabela gmx.de Översättning Stefan Asserhällstefan.asserhall@comhem.se &underFDL; &underGPL; Installation Hur man skaffar &kdiff3; Du kan ladda ner senaste version av &kdiff3; från hemsidan http://kdiff3.sourceforge.net. &kdiff3; är också tillgänglig för andra plattformar. Se hemsidan för detaljinformation. Krav För att använda alla funktioner i &kdiff3; med lyckat resultat behöver du &kde; 3.1 eller senare. För information om hur &kdiff3; kan köras på andra plattformar utan KDE, se hemsidan. Du hittar en lista med ändringar på http://kdiff3.sourceforge.net/ChangeLog eller i filen "ChangeLog" i källkodspaketet. Kompilering och installation För att kompilera och installera &kdiff3; på ett system med KDE, skriv följande i baskatalogen för distributionen av &kdiff3;: % ./configure --prefix=kde-katalog % make % make install kde-katalog anger katalogen som innehåller KDE på ditt system. Om du inte är säker, läs filen README för detaljinformation. Om du inte använder KDE, använd inte configure utan följ instruktionerna för system som bara använder Qt i filen README. Eftersom &kdiff3; använder autoconf och automake bör du inte ha några problem med att kompilera det. Skulle du stöta på problem, rapportera dem gärna till &kde;:s e-postlistor. &documentation.index;
kdiff3-0.9.97/doc/sv/CMakeLists.txt0000644000175100001440000000013511626145653016265 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/sv SUBDIR kdiff3) kdiff3-0.9.97/doc/es/0000755000175100001440000000000011626145654013506 5ustar joachimuserskdiff3-0.9.97/doc/es/index.docbook0000644000175100001440000036640211626145652016170 0ustar joachimusers KDiff3"> ]> El manual de &kdiff3; Joachim Eibl
joachim.eibl at gmx.de
Santiago Fernández Sancho
santi@kde-es.org
Traductor
2002-2007 Joachim Eibl &FDLNotice; 2007-31-03 0.9.92 &kdiff3; es una herramienta para ver diferencias y fusionar archivos y directorios que: Compara y fusiona dos o tres archivos o directorios de texto. Muestra las diferencias línea a línea y caracter a caracter (!). Proporciona una utilidad de fusión automática. Tiene un editor para resolver de forma cómoda los conflictos de fusión. Proporciona transparencia de red a través de KIO. Tiene opciones para resaltar u ocultar los cambios en los espacios en blanco o en los comentarios. Soporta Unicode, UTF-8 y otras codificaciones de archivo. Imprime diferencias. Soporta claves de control de versiones e historial de fusionado. Este documento describe la versión 0.9.92 de &kdiff3;. KDE kdeextragear kdiff3 diferencia fusión CVS triple diferencia comparar archivos directorios control de versiones fusión del árbol diferencias en línea sincronización kpart kio transparencia de red editor espacio en blanco comentarios
Introducción ¿Otro interfaz para diff? Ya existen varias herramientas gráficas para diff. ¿Por qué elegir &kdiff3;? Déjeme decirle por qué lo escribí. &kdiff3; se inició debido a la dificultad para hacer la fusión. La fusión es necesaria cuando varias personas trabajan sobre los mismos archivos en un proyecto. Una fusión puede ser algo automatizado, cuando la herramienta de fusionado no solo tiene nuevos archivos modificados (llamados «ramas»), sino también el archivo original (llamado «base»). La herramienta de fusionado seleccionará automáticamente cualquier modificación que se haga solo en una rama. Cuando varios colaboradores cambian la misma línea, la herramienta detecta un conflicto que deberá resolverse manualmente. El fusionado se vuelve difícil porque, por ejemplo, un colaborador cambió muchas cosas y corrigió el sangrado en algunos lugares. Otro colaborador también cambió mucho texto en el mismo archivo, y todo esto dió como resultado varios conflictos durante la fusión. La herramienta que utilizaba, solo mostraba las líneas cambiadas, pero no los cambios hechos en estas líneas. Y no había información sobre los cambios en el sangrado. La fusión era una pequeña pesadilla. Por eso empecé. La primera versión podía mostrar las diferencias en un línea y las diferencias en los espacios en blanco. Después se añadieron otras características para incrementar la utilidad. Por ejemplo, si desea comparar algún texto rápidamente, podrá copiarlo al portapapeles y pegarlo en otra ventana de diff. Una característica que requería un enorme esfuerzo era la capacidad de comparar y fusionar directorios, que convirtió el programa en un navegador de archivos completo. Espero que &kdiff3; le funcione también. ¡Diviértase! Joachim Eibl (2003) Capturas de pantalla y características Esta captura de pantalla muestra la diferencia entre dos archivos de texto. (Utilizando una versión temprana de &kdiff3;): Existe 3 formas de fusión totalmente soportados. Es práctico si dos personas modifican código de forma independiente. El archivo original (la base) se utiliza para ayudar a &kdiff3; para seleccionar automáticamente los cambios correctos. El editor de fusión bajo la ventana de diferencias le permite resolver los conflictos, a la vez que le muestra la salida. También podrá editar la salida. Esta captura de pantalla muestra tres archivos de entrada que se pueden fusionar: &kdiff3; también le ayuda a comparar y fusionar directorios completos. Esta captura muestra &kdiff3; durante la fusión de un directorio: Más características Visor de diferencias línea a línea y caracter a caracter Utilizando las posibilidades que permite una pantalla gráfica a color &kdiff3; muestra exactamente cuál es la diferencia. Cuando haga algunas revisiones de código, obtendrá algo como ésto. Ver diferencias de espacios en blanco de un vistazo Los espacios y tabulaciones que difieren se muestran visiblemente. Cuando las líneas difieren solo en la cantidad de espacios en blanco puede verse de un vistazo en la columna resumen en la parte izquierda (no más preocupaciones cuando se hagan cambios en el sangrado). Triple diferencia Analiza tres archivos y ve dónde está la diferencia. Las ventanas izquierda/central/derecha se llamarán A/B/C y tendrán los colores azul/verde/gris respectivamente. Si un archivo es igual y el otro es diferente en una línea, el color mostrado en el archivo será diferente. El color rojo significa que ambos archivos son diferentes. Fusión cómoda de dos o tres archivos de entrada &kdiff3; puede utilizarse para fusionar dos o tres archivos de entrada y hacer la fusión todo lo automática que sea posible. El resultado se presentará en una ventana editable donde se podrán resolver la mayor parte de los conflictos con una pulsación de ratón: Seleccione los botones A/B/C de la barra de botones para seleccionar la fuente que se utilizará. También podrá seleccionar más de una fuente. Como la ventana de salida es un editor aunque los conflictos puedan necesitar correcciones más profundas, éste hecho puede resolverse aquí sin ninguna herramienta adicional. Y ... Navegación rápida a través de los botones. Una pulsación del ratón en la columna resumen sincronizará todas las ventanas para mostrar la misma posición. Seleccione una copia desde cualquier ventana y péguela en la ventana de fusión del resultado. Columna de vista general que muestra los cambios y conflictos. Los colores pueden ajustarse a sus preferencias. Tamaño de pestaña ajustable. Opción de insertar espacios en lugar de tabuladores. Abrir archivos cómodamente a través de un diálogo o especificando archivos en la línea de órdenes. Buscar cadenas en todas las ventanas de texto. Buscar (Ctrl-F) y Buscar siguiente (F3). Mostrar los números de línea. Pegar el portapapeles y arrastrar texto a una ventana de diferencias. Transferencia de red a través de KIO. Puede utilizarse como visor de diff en KDevelop 3. Ajuste de línea para las líneas largas. Soporte para Unicode, UTF-8 y otras codificaciones. Soporte para idiomas que van de derecha a izquierda. ... Comparación y fusión de archivos Opciones de la línea de órdenes Comparar 2 archivos: kdiff3 archivo1 archivo2 Fusionar 2 archivos: kdiff3 archivo1 archivo2 -m kdiff3 archivo1 archivo2 -o archivosalida Comparar 3 archivos: kdiff3 archivo1 archivo2 archivo3 Fusionar 3 archivos: kdiff3 archivo1 archivo2 archivo3 -m kdiff3 archivo1 archivo2 archivo3 -o archivosalida Tenga en cuenta que archivo1 será tratado como base de archivo2 y archivo3. Caso especial: Archivos con el mismo nombre Si todos los archivos tienen el mismo nombre pero están en directorios diferentes, puede reducir el tipo de trabajo especificando el nombre del archivo sólo para el primer archivo. P.ej.: kdiff3 directorio1/nombrearchivo directorio2 directorio3 Línea de órdenes para iniciar la comparación o fusión de un directorio: Es muy similar, pero ahora sobre directorios. kdiff3 directorio1 directorio2 kdiff3 directorio1 directorio2 -o directoriodestino kdiff3 directorio1 directorio2 directorio3 kdiff3 directorio1 directorio2 directorio3 -o directoriodestino Para la comparación y fusión de directorios puede continuar leyendo aquí. Opciones de la línea de órdenes Para obtener más información sobre las opciones de la línea de órdenes utilice: kdiff3 --help Ejemplo de salida: Opciones: -m, --merge Fusiona la entrada. -b, --base archivo Archivo base explícito. Por compatibilidad con ciertas herramientas. -o, --output archivo Archivo de salida. Supone -m. Ejem.: -o nuevoarchivo.txt --out archivo Archivo de salida, de nuevo. (Por compatibilidad con ciertas herramientas.) --auto Sin interfaz si todos los conflictos se resuelven de forma automática. (Necesita -o archivo) --qall No resuelve los conflictos automáticamete. (Por compatibilidad...) --L1 alias1 Reemplazo de nombre visible para la entrada del archivo 1 (base). --L2 alias2 Reemplazo de nombre visible para la entrada del archivo 2. --L3 alias3 Reemplazo de nombre visible para la entrada del archivo 3. -L, --fname alias Reemplazo de nombre visible alternativo. Proporcione éste una vez para cada entrada. --cs string Sobreescribe la configuración. Utilícelo una vez para cada opción. P.ej.: --cs "AutoAdvance=1" --confighelp Muestra la lista de las opciones de configuración y sus valores actuales. --config file Utiliza un archivo de configuración diferente. La opción le permite ajustar un valor de configuración que de otra forma solo sería ajustable a través del diálogo de configuración. Pero asegúrese de que cuando &kdiff3; finalice se guarden los valores con las configuraciones nuevas. Con puede encontrar los nombres de los elementos disponibles y los valores actuales. A través de puede especificar un archivo de configuración diferente. Cuando utilice con frecuencia diferentes configuraciones para &kdiff3; ésto le permitirá cambiar entre ellas. Opciones de la línea de órdenes que se ignoran Mucha gente quiere utilizar &kdiff3; con algún sistema de control de versiones. Pero cuando el sistema de control de versiones llama a &kdiff3; utilizando los parámetros de la línea de órdenes &kdiff3; no los reconoce, y termina con un error. Las preferencias de integración le permiten especificar los parámetros de línea de órdenes que &kdiff3; debería ignorar. Aparecerán en la ayuda de uso, de forma similar a este ejemplo: --foo Ignored. (Definida por el usuario.) Opciones de la línea de órdenes a ignorar:Una lista de opciones separadas por punto y coma «;». Cuando aparezca una de estas opciones en una línea de órdenes, &kdiff3; la ignorará y se ejecutará sin informar de ningún error (el valor predeterminado es «u;query;html;abort»). Si ésto no es suficiente, se recomienda escribir un script para el intérprete de órdenes que traduzcan esta opción. Diálogo abrir Como se pueden seleccionar varios archivos de entrada, el programa tiene un diálogo de apertura especial: El diálogo abrir le permite editar los nombres de los archivos manualmente, seleccionando un archivo a través del navegador de archivos («Archivo...») o permitir la elección de los archivos recientes a través de las listas desplegables. Si abre el diálogo nuevamente, el nombre actual continúa ahí. El tercer archivo de entrada no es necesario. si la entrada para «C» permanece vacía, solo se efectuará el análisis de diferencia de dos archivos. Puede seleccionar un directorio a través de «Dir...». Si se especifica un directorio para A entonces comienza la comparación/fusión de directorios. Si en A especifica un archivo pero en B,C o en la salida se especifica un directorio, &kdiff3; utiliza el nombre del archivo de A en los directorios especificados. Si está seleccionado «Fusionar», la línea de «Salida» será editable. Pero no se necesita especificar el nombre de archivo de salida de forma inmediata. Puede postponerlo hasta que lo guarde. El botón «Configurar...» abre el diálogo de opciones, de forma que pueda seleccionar las opciones antes de realizar el análisis. Pegar y soltar la entrada Algunas veces deseará comparar partes de un texto que no sea propiamente un archivo. &kdiff3; también le permite pegar texto desde el portapapeles a la ventana de entrada de diff que tenga el foco. El análisis de las diferencias se producirá inmediatamente. En el diálogo abrir no necesitará especificar archivos entonces, ciérrelo con el botón «Cancelar». También podrá utilizar arrastrar y soltar: Arrastre un archivo desde un administrador de archivos o seleccione texto en un editor y arrástrelo a la ventana de entrada. ¿Cuál es la idea? Algunas veces un archivo contiene dos funciones similares, pero comprobar las similitudes es un esfuerzo enorme si primero debe crear los archivos y luego cargarlos. Ahora bastará con copiar, pegar y comparar las secciones relevantes. Nota: En estos momentos no podrá arrastrar nada desde &kdiff3;. Solo está soportado en la ventana de entrada diff. Aviso: Algunos editores todavía interpretan arrastrar y soltar en otro programa como cortar (en lugar de copiar) y pegar. En este caso sus datos originales se perderían. Interpretar la información en las ventanas de entrada Línea de informaciónEn la parte superior de cada ventana de texto se encuentra la «línea de información». Las líneas de información de las ventanas de entrada contienen una letra «A», «B» y «C», el nombre del archivo, un botón para el navegador, y el número de línea de la primera línea visible en la ventana (recuerde que la ventana «C» es opcional). Cada línea de información aparecerá con un color diferente. Cuando selecciona otro archivo a través del navegador o termina de editar el nombre del archivo pulsando entrar, el nuevo archivo se cargará y se comparará con el(los) archivo(s) que ya estaba(n) cargado(s). ColoreadoLas tres ventanas de entrada tienen asignadas las letras «A», «B» y «C». «A» tiene color azul, «B» verde y «C» magenta (estos son los valores predeterminados, pero puede cambiarlos en el menú Preferencias). Cuando se detecta una diferencia el color mostrado en el archivo de entrada cambia. Cuando los dos archivos presentan diferencias el color utilizado para expresar esto es rojo de manera predeterminada («Color de conflicto» en las preferencias). Este esquema de color es especialmente práctico en el caso de que tenga tres archivos de entrada, tal y como se verá en la próxima sección (Fusionar). Columna resumenA la izquierda de cada texto se encuentra la «columna resumen». Si las diferencias se producen en una línea la columna resumen muestra el color correspondiente. Si la diferencia es sólo de espacios en blanco se marca el resumen. Para los lenguajes de programación en los que los espacios no son importantes es práctico para apreciar de un vistazo si se modificó algo importante. (En C/C++ los espacios en blanco sólo son interesantes en el interior de las cadenas, comentarios, para el preprocesador y en otra serie de extrañas situaciones). La línea vertical que separa la columna resumen y el texto se interrumpe si el archivo de entrada no tiene líneas. Cuando se activa el ajuste de línea, esta línea vertical aparecerá punteada en las líneas ajustadas. Columna de visión generalEn el lado derecho podemos encontrar la columna «visión general», a la izquierda de la barra de desplazamiento. Muestra la columna de resumen comprimida de la entrada «A». todas las diferencias y conflictos se pueden apreciar de un vistazo. Cuando solo se utilizan dos ventanas de entrada, todas las diferencias aparecerán en rojo, ya que cada diferencia supondrá un conflicto. Un rectángulo negro marca la parte visible de las entradas. Para los archivos con entradas muy largas, cuando el número de líneas es más grande que la altura de la columna visión general en pixels, varias líneas de entrada compartirán una línea de visión general. Un conflicto tendrá más prioridad que las simples diferencias, que a su vez tendrán prioridad sobre lo no cambiado, de forma que no se pierdan las diferencias o los conflictos aquí. Pulsando sobre la columna de visión general se mostrará el correspondiente texto. Líneas alineadas manualmenteAlgunas veces el algoritmo sitúa líneas incorrectas unas al lado de otras. O desea comparar un trozo de texto con otro texto que está en una posición completamente diferente en el otro archivo. Para estas situaciones puede indicar a &kdiff3; manualmente que alinee algunas líneas. Marque el texto que quiera alinear con el ratón, como si estuviera copiando y pegando, en la primera vista de diferencia y seleccione «Añadir alineación manual de diferencias» en el menú «Diffview» (acceso rápido de teclado «Ctrl-Y»). Aparecerá una barra naranja en la columna resumen al lado del texto seleccionado. Repita esto para la segunda y (si está disponible) para la tercera vista. &kdiff3; recalculará inmediatamente las diferencias cada vez que haga esto, y alineará las líneas elegidas. Por supuesto, alguna de las líneas que antes coincidían puede que ya no coincidan. En estos momentos el fusionado no soporta el uso de ayuda de diff manual. Secciones de división y unión manualEn algunos casos &kdiff3; verá muy pocas o demasiadas secciones diff para fusionar. Si éste es el caso puede unir o dividir las secciones existentes. Añada secciones nuevas seleccionando primero el texto de las líneas situadas junto a las ventanas de entrada (para copiarlo al portapapeles). A continuación elija «Dividir Diff en la selección» en el menú «Fusionar». Las divisiones se añadirán encima de la primera línea bajo el texto seleccionado. Si solo desea añadir una sección, seleccione el texto por el que comienza la sección que desea dividir. Para unir secciones en las ventanas de entrada seleccione varias líneas en las secciones que desea unir (puede unir varias secciones en un solo paso). A continuación elija «Unir las diferencias seleccionadas» en el menú «Fusionar». Fusionar y la ventana del editor de la salida fusionada La ventana del editor de la salida fusionada (bajo las ventanas de la entrada de diferencias) también tiene una línea de información sobre ella que mostrará «Salida», el nombre del archivo y «[Modificado]» si edita algo. Normalmente contendrá texto que podrá fusionarse automáticamente con facilidad, pero algunas veces también contendrá conflictos. El guardado está desactivado hasta que se hayan resuelto todos los conflictos (utilice los botones «Ir al conflicto anterior/siguiente sin resolver» para encontrar los conflictos que falten). Con sólo dos archivos de entrada, cada diferencia es también un conflicto que debe resolverse manualmente. Con tres archivos de entrada el primer archivo se utiliza como base, mientras que el segundo y tercer archivos de entrada contienen las modificaciones. Si en cualquier línea solo tienen cambios la entrada B o la C pero no ambas se seleccionará automáticamente la fuente cambiada. Solo cuando B y C tengan cambios en las mismas líneas, la herramienta detectará un conflicto que debe resolverse manualmente. Cuando B y C sean iguales, pero diferentes a A, se seleccionará C. La columna resumenEl editor de la salida de fusionado también tiene una columna resumen a su izquierda. Mostrará la letra de la entrada de la que se seleccionó la línea, o nada si las tres fuentes son iguales en esa línea. Para los conflictos mostrará un signo de interrogación «?» y la línea mostrará «<Conflicto de fusionado>», en rojo. Puesto que resolver los conflictos línea a línea es muy arduo, las líneas se agruparán en grupos que tengan las mismas diferencias y conflictos característicos. Pero los conflictos causados solo por espacios en blanco se separarán de los conflictos no causados por espacios en blanco para facilitar el fusionado de los archivos cuando el sangrado cambia en muchas líneas. Configurar el grupo actual, sincronizado de fusión y posición de vista de diferenciasCuando se pulsa en la columna resumen con el botón izquierdo del ratón en la ventana a la que pertenezca este grupo, se seleccionarán todas las ventanas y se mostrará el comienzo de este grupo (ésto implica un salto automático en la posición de la ventana si el principio del grupo no se encuentra visible). El grupo se convierte en el «grupo actual». Se resalta con la «gama (diff) de color del fondo actual» y aparecerá una barra negra en la parte izquierda del texto. Seleccionar las entradas A, B o C para el conflicto actual y la ediciónLa barra de botones bajo el menú incluye tres botones para seleccionar las entradas que contienen las letras «A», «B» y «C». Pulse el botón selector de entrada para insertar (o eliminar si ya se ha insertado) las líneas de la fuente respectiva. Para seleccionar las líneas de varias entradas pulse los botones correspondientes en el orden que necesite. Por ejemplo, si desea que las líneas de «B» aparezcan antes de las líneas de «A» en la salida, pulse primero «B» y luego «A». Si estaba utilizando la opción avance automático («Automáticamente ir al conflicto siguiente sin resolver después de una selección de origen»), debería desactivarla antes de elegir líneas desde varias entradas o editar líneas después de su elección. Sino lo hace &kdiff3; saltará al siguiente conflicto después de elegir la primera entrada. Suele ser práctico para editar directamente la salida resultante de la fusión. La columna resumen mostrará «m» para cada línea que se haya modificado manualmente. Cuando, por ejemplo, las diferencias estén alineadas de forma que la simple elección no sea satisfactoria, puede marcar el texto necesario y utilizar copiar y pegar de forma normal para situarlo en la salida de fusionado. Algunas veces, cuando una línea se elimina bien por el fusionado o por la edición manual y no hay más líneas en este grupo, aparecerá el texto <Sin línea fuente>. Se coloca en lugar del grupo de forma que pueda cambiar de idea y seleccionar de nuevo la fuente. Este texto no aparecerá en el archivo guardado o en cualquier selección que copie y pegue. El texto «<Conflicto de fusionado>» aparecerá en el portapapeles si copia y pega texto que la contenga. Pero tenga cuidado al hacerlo. Seleccionar las entradas A, B o C para todos los conflictosEl fusionado normal se inicia resolviendo los conflictos sencillos automáticamente. Pero el menú «Fusionar» proporciona algunas acciones para otras necesidades habituales. Si ha seleccionado la misma fuente para más conflictos, podrá seleccionar «A», «B» o «C» en cualquier sitio, o solo para los conflictos pendientes de resolver, o para los conflictos sin resolver que sean debidos a espacios. Si desea decidir cada delta por sí mismo, puede «Establecer deltas a conflictos». O si desea volver a las elecciones automáticas de &kdiff3; seleccione «Resolver automáticamente conflictos simples». &kdiff3; reiniciará el fusionado. Para las acciones que cambien sus modificaciones anteriores &kdiff3; le pedirá confirmación antes de realizarlo. Nota: Cuando seleccione fuente para los conflictos de espacios en blanco sin resolver y las opciones «Ignorar números» o «Ignorar comentarios C/C++», los cambios en los números o en los comentarios se tratarán también como espacios en blanco. Fusión automática de las claves de control de versión y del historial (registro)Muchos sistemas de control de versión soportan claves especiales en el archivo (p. ej.: «$Date$$», «$Header$», «$Author$», «$Log$», etc.) Durante la descarga el sistema de control de versiones (VCS) cambia estas líneas. Por ejemplo, «$Date$» se cambiará por «$Date: 2005/03/22 18:45:01 $». Como esta línea será diferente en cada versión del archivo, podría requerir interacción manual durante la fusión. &kdiff3; ofrece fusionado automático para estos elementos. Para las líneas que coincidan con la opción «Fusionar automáticamente expresión regular» en todos los archivos de entrada de &kdiff3; se elegirá la línea desde B o -si está disponible- desde C (adicionalmente es necesario que las líneas en cuestión si las comparamos con las líneas anteriores no han de tener conflictos). Esta fusión automática también se puede ejecutar de forma inmediata después de iniciar la fusión (active la opción «Ejecutar expresión regular de fusión automática al iniciar la fusión») o posteriormente a través del menú de fusión «Ejecutar expresión regular de fusión automática»). También está soportada la fusión automática para el historial de control de versión (también llamado «registro»). El historial de fusión automática se puede ejecutar automáticamente cuando se inicie la fusión activando la opción «Resolver automáticamente los conflictos del historial». Normalmente el historial de control de versión comienza con una línea que contiene la palabra clave «$Log$». Ésta deberá coincidir con la opción «El historial comienza con la expresión regular». &kdiff3; detecta que las siguientes líneas se encuentran en el historial analizando los caracteres importantes que se encuentran delante de la palabra clave «$Log$». Si el mismo «comentario importante» también aparece en las siguientes líneas, también éstas se incluirán en el historial. Durante cada descarga el VCS escribe una única línea especificando la versión, fecha, e información horaria seguida de líneas con comentarios del usuario. Estas líneas forman una entrada de historial. Esta sección del historial crece cada vez que descarga de forma que las entrada más recientes aparecerán en la parte superior (después de la línea de inicio del historial). Cuando dos o más desarrolladores que están realizando un desarrollo paralelo descargan una rama de un archivo la fusión del historial contendrá varias entradas que aparecerán como conflictos durante la fusión de las ramas. Como esta fusión puede ser muy aburrido, &kdiff3; ofrece soporte con dos posibles estrategias: Insertar la información del historial de ambos colaboradores en la parte superior u ordenar la información del historial por una clave definida por el usuario. El método que simplemente inserta las entradas es fácil de configurar. &kdiff3; solo necesita un método para detectar qué líneas pertenecen a una entrada del historial. La mayor parte de los VCS insertan una línea vacía después de cada entrada del historial. Sino hay otras líneas vacías, éste criterio es suficiente para &kdiff3;. Seleccione «Entrada del historial que inicia una expresión regular». Si el criterio de la línea vacía no es suficiente, puede especificar una expresión regular para detectar el inicio de la entrada del historial. Tenga en cuenta que &kdiff3; eliminará las entradas duplicadas del historial. Si una entrada aparece varias veces en el historial de un archivo de entrada, solo permanecerá una en la salida. Si desea ordenar el historial, debe especificar cómo se debe construir la clave de ordenación. Utilice paréntesis en «Entrada del historial que inicia una expresión regular» para agrupar partes del a expresión regular que se deberían utilizar posteriormente para la tecla de ordenación. A continuación especifique «Orden de la clave de ordenación que inicia la entrada del historial» especificando una lista de números separados por una coma «,» para referirse a la posición del grupo en la expresión regular. Debido a que no es sencillo de hacer al primer intento, podrá comprobar y mejorar la expresión regular y la generación de clave en un diálogo dedicado pulsando el botón «Comprobar sus expresiones regulares». Ejemplo: Supongamos que tenemos un historial similar a este: /************************************************************************** ** HISTORIAL: $Log: \vista_principal_de_tom\MiAplicación\src\algoritmocomplejo.cpp $ ** ** \main\rama_integración_12 2 Abr 2001 10:45:41 tom ** rama fusionada simon_rama_15. ** ** \main\henry_correccionerrores_rama_7\1 30 Mar 2001 19:22:05 henry ** mejora la velocidad de la subrutina convertToMesh(). ** Eliminación de fallo. **************************************************************************/ La línea de comienzo del historial es la que coincida con la expresión regular ".*\$Log.*\$.*". Las siguientes son las entradas del historial. La línea con «$Log$» -la palabra clave comienza con dos «*» seguidos de un espacio. &kdiff3; utiliza la cadena con el primer espacio no vacío como «comentario importante» y asume que el historial finaliza en la primera línea sin este comentario importante. En este ejemplo la última línea finaliza con una cadena que también comienza con dos «*», pero en lugar de un caracter de espacio le siguen más «*». Por tanto, esta línea finalizará el historial. Sino es necesaria la ordenación del historial entonces la entrada del historial comenzará con una línea de expresión regular como ésta (esta línea se divide en dos porque sino no se puede ajustar) \s*\\main\\\S+\s+[0-9]+ (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* Para obtener detalles sobre las expresiones regulares por favor, consulte la documentación de las expresiones regulares de Trolltech. Tenga en cuenta que «\s» (con la «s» minúscula) coincidirá con cualquier espacio y «\S» (con «S» mayúscula) coincidirá con lo que no sean espacios en blanco. En nuestro ejemplo la entrada del historial deberá contener primero la versión de información de la expresión regular "\\main\\\S+", la fecha formada por el día «[0-9]+», més «(Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic)» y año «[0-9][0-9][0-9][0-9]», la hora «[0-9][0-9]:[0-9][0-9]:[0-9][0-9]» y finalmente el nombre de registro del desarrollador «.*». Observe que el «comentario importante» (en el ejemplo «**») lo eliminará &kdiff3; antes de buscar la coincidencia, de ahí que la expresión regular comience con con una expresión regular para ninguno o más espacios en blanco «.*». Puesto que los caracteres de comentario puede ser diferentes en cada archivo (por ejemplo, C/C++ utilizan caracteres de comentarios diferentes a los que utiliza Perl script) &kdiff3; tiene en cuenta los caracteres de los comentarios y no debería especificarlos en la expresión regular. Si necesita un historial ordenado, se calculará la clave de ordenación. Para esta las partes relevantes en la expresión regular se deben agrupar entre paréntesis (los paréntesis adicionales puede mantenerse aunque desactive la ordenación del historial). (Ene|Feb|Mar|Abr|May|Jun|Jul|Ago|Sep|Oct|Nov|Dic) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) Los paréntesis ahora contendrán: 1. versión de información, 2. día, 3. mes, 4. año, 5. hora, 6. nombre. Pero si deseamos ordenarlos por fecha y hora, necesitará construir una clave con los elementos en un orden de aparición diferente: Primero el año, seguido del mes, día, hora, información de versión y nombre. De ahí que el orden de la clave de ordenación que se deba especificar sea «4,3,2,5,1,6». Ya que los nombres de los meses no son buenos para la ordenación («Abr» iría primero) &kdiff3; detectará que son nombres de meses y utilizará números en su lugar («Abr»->«04»). Si se encuentra un número puro se transformará en un valor de 4 dígitos con ceros significativos para la ordenación. Finalmente la clave de ordenación resultante que iniciará la primera entrada del historial será: 2001 04 0002 10:45:41 rama_integración_12 tom Para obtener más detalles consulte también Preferencias de fusionado. Navegación y edición La mayor parte de la navegación puede realizarse con las barras de desplazamiento y el ratón, pero también puede navegar con las teclas. Si pulsa en cualquier ventana puede utilizar los cursores izquierdo, derecho, arriba, abajo, página arriba, página abajo, inicio, fin, Ctrl-Inicio, Ctrl-Fin tal y como lo haría en otros programas. La columna vista general situada al lado de la barra vertical de desplazamiento en los archivos de entrada también puede utilizarse para navegar pulsando sobre ella. También puede utilizar la rueda del ratón para desplazarse arriba y abajo. En el editor de la salida de fusionado también puede utilizar las otras teclas para la edición. Puede cambiar entre los modos insertar y sobreescribir con la tecla Insertar (el modo predeterminado es insertar). Una pulsación del botón izquierdo del ratón en la columna resumen sincronizará todas las ventanas para mostrar el inicio del mismo grupo de líneas (tal y como se explicaba en la sección «Configurar el grupo actual, sincronizado de fusión y posición de vista de diferencias»). La barra de botones también contiene siete botones de navegación con los que podrá saltar a la diferencia actual/primera/última, a la siguiente/anterior diferencia (Ctrl-Flecha abajo/Ctrl-Flecha arriba), al siguiente/anterior conflicto (Ctrl-Página abajo/Ctrl-Página arriba), o al siguiente/anterior conflicto sin resolver. Tenga en cuenta que para &kdiff3; un «conflicto» que no se pudo resolver automáticamente al comienzo del fusionado continúa siendo un «conflicto» aunque se haya resuelto. De aquí la necesidad de distinguir los «conflictos sin resolver» Avance automático También existe el botón «Automáticamente ir al conflicto siguiente sin resolver después de una selección origen» (avance automático). Si activa esto, cuando se seleccione una fuente &kdiff3; saltará automáticamente al siguiente conflicto sin resolver. Esto puede ayudarle cuando desee seleccionar una sola fuente. Cuando necesite ambas fuerte, o desee editar después de la selección, probablemente querrá desactivar esto. Antes de continuar con el siguiente conflicto sin resolver &kdiff3; muestra el resultado de su elección durante un momento. Este retardo es ajustable en las preferencias Diff y fusión: Puede especificar en «Retardo auto avanzado» en milisegundos un valor entre 0 y 2.000. Pista: ¿Cansado de tanta pulsación? Utilice un retardo de avance automático pequeño y los accesos rápidos Ctrl-1/2/3 para seleccionar A/B/C para muchos de los conflictos. Seleccionar, copiar y pegar Las ventanas de entrada no muestran un cursor, por ello las selecciones se hacen pulsando el botón izquierdo del ratón al inicio, manteniendo pulsado el botón del ratón y moviéndose al final, momento en el que soltará el botón del ratón. También puede seleccionar una palabra con una doble pulsación. En la salida del editor de fusionado puede realizar la selección a través del teclado manteniendo pulsado el botón «mayúsculas» y navegando con las teclas de cursor. Si la selección excede el rango visible puede desplazar el ratón sobre los bordes de la ventana que harán que &kdiff3; se desplace en esta dirección. Para las selecciones muy largas puede utilizar las teclas de navegación mientras mantiene pulsado el ratón. P.ej. utilice RePág y AvPág para ir rápidamente a una posición determinada. Al final de la posición suelte el botón del ratón. Para seleccionarlo todo en la ventana actual utilice el menú «Editar»->«Seleccionar todo» (Ctrl-A). Para copiar al portapapeles debe pulsar el botón «Copiar» (Ctrl-C o Ctrl-Insertar). Pero también existe la opción «Auto copiar selección». Si está activado, todo lo que seleccione se copiará inmediatamente y no necesitará realizar la copia explícitamente. Ponga atención cuando lo utilice ya que el contenido del portapapeles puede destruirse accidentalmente. «Cortar» (Ctrl-X o Mayúsculas-Borrar) copia el texto seleccionado al portapapeles y lo borra. «Pegar» (Ctrl-V o Mayúsculas-Insertar) inserta el texto del portapapeles en la posición del cursor o sobre la selección actual. Si pega algo en cualquier ventana de entrada de diferencia se mostrará el contenido del portapapeles en esta ventana y la comparación se reiniciará inmediatamente. Es práctico si desea guardar rápidamente un trozo de texto de alguna parte y compararlo con algo sin crear los archivos en primer lugar. Guardar Guardar solo estará permitido cuando se hayan resuelto todos los conflictos. Si el archivo ya existe y la opción «Archivos de copia de seguridad» está activada el archivo existente se renombrará con una extensión «.orig», pero si ya existe un archivo se borrará. Cuando salga o inicie otro análisis de diferencias y los datos no se hayan guardado, &kdiff3; le preguntará si desea guardar, cancelar o continuar sin guardar (&kdiff3; no captura ninguna señal. Por eso si ejecuta «kill» sobre &kdiff3; sus datos se perderán). Los finales de línea se guardan de acuerdo con el método utilizado por el sistema operativo. Para Unix cada línea termina con un caracter de nueva línea «\n», mientras que para los sistemas basados en Win-32 cada línea termina con un retorno de carro + un nueva línea «\r\n». &kdiff3; no conserva los finales de línea de los archivos de entrada, lo que significa que no debería utilizar &kdiff3; con archivos binarios. Buscar cadenas Puede buscar una cadena en cualquier ventana de texto de &kdiff3;. La orden «Buscar...» («Ctrl-F) en el menú Editar abre un diálogo que le permite especificar la cadena a buscar. La búsqueda siempre comenzará en la parte superior. Utilice la orden «Buscar siguiente» («F3») para buscar la siguiente aparición. si selecciona la búsqueda en varias ventanas se comenzará a buscar en la primera ventana de arriba hacia abajo antes de iniciar la búsqueda en la parte superior de la siguiente ventana, etc. Impresión &kdiff3; soporta impresión de las diferencias en los archivos de texto. La orden «Imprimir» (Ctrl-P) en el menú archivo abre un diálogo que permite seleccionar la impresora y ajustar otras opciones. Existen varias posibilidades de ajustar el rango. Debido a las diferencias existentes en los diálogos de impresión de los diversos sistemas operativos, el método para realizar determinadas selecciones variará. Todo:Imprime todo. Actual:Imprime un página comenzando en la primera línea visible de la ventana (en sistemas sin esta opción se puede suplir este inconveniente especificando la página número 10000 para imprimir). Selección:Antes de realizar esta elección de impresión seleccione el texto con el ratón (como para copiar y pegar) en una de las ventanas de entrada de diferencias para definir las líneas inicial y final. Si no hay texto seleccionado en una de las ventanas de diferencia, no estará disponible esta opción (en sistemas sin esta opción se puede conseguir el mismo resultado especificando la página 9999). Rango:Especifique la primera y última página. Otras opciones importantes para la impresión son las habituales: Letra, tamaño de letra Mostrar números de línea Ajuste de texto Colores etc. También se recomienda la impresión en formato apaisado. Opciones Las opciones y la lista de archivos recientes se guardarán cuando salga del programa, y se recargarán cuando lo inicie (Menú Preferencias->Configurar &kdiff3; ...). Fuente Seleccione un tipo de letra de ancho fijo (en algunos sistemas este diálogo puede mostrar tipos de letra de ancho variable, pero no debería utilizarlas). Fuente cursiva para deltas:Si selecciona esto, las diferencias de texto se dibujarán con la versión cursiva del tipo de letra. Si el tipo de letra no soporta cursiva, no hará nada. Colores Color del primer plano:Habitualmente negro. Color de fondo:Habitualmente blanco. Color del fondo de diff:Habitualmente gris claro. Color A:Habitualmente azul oscuro. Color B:Habitualmente verde oscuro. Color C:Habitualmente magenta oscuro. Color de conflicto:Habitualmente rojo. Rango actual de color de fondo:Habitualmente amarillo claro. Rango actual de color de fondo de diff:Habitualmente amarillo oscuro. Colores para los rangos de diferencias seleccionados manualmente:Habitualmente naranja. Color del archivo más nuevo en la comparación de directorios:Habitualmente verde. Color del archivo más antiguo en la comparación de directorios:Habitualmente rojo. Color de los archivos de antigüedad media en la comparación de directorios:Habitualmente amarillo oscuro. Color para los archivos que faltan en la comparación de directorios:Habitualmente negro. Los cambios de color para la comparación de directorios no tendrán efecto hasta la siguiente vez que inicie la comparación de directorios. En sistemas que solo tengan 16 ó 256 colores algunos de ellos no estarán disponibles en su forma exacta. En aquellos sistema el botón «Predeterminados» seleccionará un color puro. Preferencias del editor El tabulador inserta espacios:Si está desactivado y pulsa la tecla tabulador, se insertará un caracter de tabulación, sino se insertará la cantidad adecuada de caracteres. Tamaño del tabulador:Se puede ajustar para sus necesidades. El valor predeterminado es 8. Auto indentación:Cuando pulsa Entrar; o Return el sangrado de la línea anterior se utiliza para la nueva línea. Auto-copiar selección:Cada selección se copia inmediatamente al portapapeles de forma que no necesitará copiarlo explícitamente. Estilo línea final:Al guardar puede seleccionar qué estilo de línea prefiere. El valor predeterminado es la elección habitual para el sistema operativo utilizado. Preferencias de fusionado Cuando se comparan archivos, &kdiff3; primero intenta hacer coincidir las líneas que sean iguales en todos los archivos de entrada. Solo durante este paso se ignorarán los espacios en blanco. El segundo paso compara cada línea. En este paso los espacios en blanco no se ignorarán. Los espacios en blanco tampoco se ignorarán durante la fusión. Conservar el retorno de carroAlgunos editores (en algunos sistemas) guardan los caracteres de retorno de carro «\r» y de línea siguiente «\n» al final de la línea, mientras que otros solo guardan el de línea siguiente «\n». Normalmente &kdiff3; ignora el retorno de carro, pero a pesar de que debido a ello no tengan el mismo tamaño parecerán iguales si se comparan juntos. Cuando se activa esta opción, los caracteres de retorno de carro se harán visibles, pero se tratarán como espacios en blanco. Esta opción debería estar desactivada durante el mezclado. El valor predeterminado es apagado. Ignorar números:De forma predeterminada estará desactivado. Los caracteres numéricos («0-9», «.», «-») se ignorarán en la primera parte del análisis en la que se efectuará la coincidencia de líneas. Sin embargo en el resultado las diferencias sí se mostrarán, pero serán tratadas como espacios en blanco. Ignorar comentarios de C/C++:De forma predeterminada estará desactivado. Los cambios en los comentarios se tratarán como cambios de espacios en blanco. Ignorar mayúsculas:De forma predeterminada estará desactivado. Las diferencias de mayúsculas y minúsculas de los caracteres (como «A» y «a») se tratarán como cambios de espacios en blanco. Comando del preprocesador:Vea la siguiente sección. Comando de preprocesador de combinación de línea:Vea la siguiente sección. Intentar más a fondo:Intenta encontrar más a fondo una delta más pequeña (de forma predeterminada estará activada). Debería ser efectivo para archivos grandes y complicados. Y lento para archivos muy grandes. Preferencias de fusionado Retardo auto avanzado (ms):Cuando está activado el modo de «auto avanzado» aquí se especifica durante cuanto tiempo se mostrará el resultado de la selección antes de saltar al siguiente conflicto sin resolver. Fusionar de forma predeterminada espacios en blanco de dos/tres archivos:Resuelve automáticamente todos los conflictos de los espacios en blanco seleccionando el archivo especificado (el modo predeterminado es el manual). Práctico si los espacios no son realmente importantes en los archivos. Si solo necesita ésto ocasionalmente mejor utilice «Seleccionar A/B/C para todos conflictos de los espacios en blanco sin resolver» en el menú Fusionar. Tenga en cuenta que si ha activado «Ignorar números» o «Ignorar comentarios de C/C++» esta autoelección también se aplica a los conflictos en los números y en los comentarios. Expresión regular de fusión automática:Expresión regular para las líneas en las que &kdiff3; debería elegir automáticamente una fuente. Consulte también Fusión automática. Ejecutar expresión regular de fusión automática al iniciar la fusión:Si está activado &kdiff3; ejecutará la fusión automática utilizando la «expresión regular de fusión automática» cuando se inicie una fusión. Expresión regular de inicio de historial:Expresión regular para el inicio de la entrada del historial de fusionado. Normalmente esta línea contiene la palabra clave «$Log$». El valor predeterminado es «.*\$Log.*\$.*». Expresión regular de inicio de entrada del historial:Una entrada del historial de fusión está formada por varias líneas. Especifique la expresión regular para detectar la primera línea (sin el comentario importante). Utilice paréntesis para agrupar las claves que desee utilizar para la ordenación. Si está vacío, KDiff3 asume que las líneas vacías separan entradas del historial. Consulte también Fusión automática. Ordenación del historial de fusión:Activar ordenación del historial del control de versiones orden de la clave de ordenación del inicio de la entrada del historial:Cada paréntesis utilizado en la expresión regular para la entrada del inicio del historial agrupa una clave que puede utilizarse para la ordenación. Especifique la lista de claves (están numeradas en orden de aparición comenzando con 1) y utilizando «,» como separador (p. ej. «4,5,6,1,2,3,7»). Si permanece vacío, no se realizará ordenación. Consulte también fusión automática. Historial del control de versión de fusión al iniciar la fusiónSi está activado &kdiff3; ejecuta automáticamente el fusionado del historial utilizando las opciones antes mencionadas cuando se inicia una fusión. Número máximo de entradas en el historial:&kdiff3; corta la lista del historial después del número especificado de entradas. Utilice -1 para evitar el corte (el valor predeterminado es -1). Compruebe sus expresiones regularesEste botón muestra un diálogo que le permite mejorar y comprobar la expresión regular. Copie los datos de sus archivos en las líneas de ejemplo. Los «Resultados coincidentes» si la coincidencia se produjo o no. El «Resultado de la clave de ordenación» mostrará la clave utilizada para la ordenación del historial de fusión. Orden de fusión irrelevante:Especifique una orden que debería ser llamada cuando &kdiff3; detecte que para el archivo B no contiene datos relevantes ya que están incluídos en C. La orden se llama con los tres nombres de archivo como parámetros. Las datos deberán coincidir con la «expresión regular de fusionado automático» o con el historial sino se considera relevante. Fusión de directorios Estas opciones están relacionadas con la exploración del directorio y el manejo del fusionado: Vea la Comparación/fusión de directorios de documentos para obtener los detalles. También existe una opción relevante para guardar archivos sencillos: Archivos de copia de seguridad:Cuando se guarde un archivo y ya exista una versión antigua, la versión original se renombrará con una extensión «.orig». Si ya existía un archivo de copia de seguridad antigua con la extensión «.orig» se borrará. Configuraciones regionales Idioma:Ajusta el idioma de la interfaz de usuario. Cambiar esta opción no afectará a la ejecución del programa. Tendrá que salir y reiniciar &kdiff3; para que el cambio tenga efecto (esta opción no está disponible en la versión de KDE; de &kdiff3; porque el idioma se ajusta de forma global en las preferencias de KDE). Usar la misma codificación para todo:Las siguientes opciones de codificación se pueden ajustar de forma separada para cada elemento, o si esta opción está activada, todos los valores tomarán el primer valor. Codificación local:Sobre los selectores de código aparece una nota que le indica cuál es la codificación local (no es ajustable, ya que se utiliza para informarle de su codificación en caso de que no la conozca, y necesite seleccionarla). Codificación de archivo para A/B/C:Ajusta la codificación para los archivos de entrada. Esto tiene efecto en la interpretación de los caracteres especiales. Como puede ajustar cada codificación por separado puede comparar y fusionar archivos guardados con diferentes codificaciones. Codificación de archivo para la salida de la fusión y guardar:Cuando haya editado un archivo, podrá ajustar qué codificación se utilizará al guardarse en el disco. Codificación de archivo para los archivos del preprocesador:Cuando defina el preprocesador puede que no sea capaz de operar con su codificación (ejem: Sus archivos son de unicode de 16 bit y su preprocesador solo puede utilizar ascii de 8 bit). Con esta opción puede definir la codificación de la salida del preprocesador. Idioma de derecha a izquierda:Algunos idiomas se escriben de derecha a izquierda. Cuando esta opción está activada, &kdiff3; dibuja el texto de derecha a izquierda en las ventanas de entrada de diff y en la ventana de la salida del fusionado. Tenga en cuenta que si inicia &kdiff3; con la opción de línea de órdenes «--reverse» toda la distribución se hará de derecha a izquierda también (ésta es una característica proporcionada por Qt). Este manual se escribió asumiendo que «Idioma de derecha a izquierda» o invertir distribución están desactivados. Por ello, algunas referencias a «izquierda» o «derecha» se reemplazarán por sus respectivas homólogas si utiliza estas opciones. Varios Estas opciones y acciones están disponibles en los menús o en la barra de botones. Mostrar números de líneas:Puede seleccionar si los números deberían mostrarse en los archivos de entrada. Mostrar caracteres espacio y tabulador por diferencias:Algunas veces los espacios visibles y los tabuladores molestan. Puede desactivarlos. Mostrar espacio en blanco:Desactívelo para suprimir cualquier resaltado o cambio de «solo espacio en blanco» en el texto o en las columnas de vista general (tenga en cuenta que ésto también se aplicará a los cambios en los números y comentarios si están activadas las opciones «Ignorar números» o «Ignorar comentarios C/C++»). Opciones de la vista general:Estas elecciones están disponibles cuando compara tres archivos. En el modo normal todas las diferencias se muestra en un color codificado en la columna de vista general. Pero algunas veces puede estar interesado en las diferencias entre solo dos de los tres archivos. Seleccionando vista «A vs. B», «A vs. C» o «B vs. C» se mostrará una segunda columna de vista general con la información requerida situado al lado de la visión general normal. Ajuste de palabras en las ventanas diff:Ajusta las líneas cuando su longitud excede del ancho de una ventana. Mostrar ventana A/B/C:Algunas veces deseará utilizar mejor el espacio de la pantalla para las líneas largas. Oculte las ventanas que no sean importantes (en el menú Ventanas). Cambiar orientación de división:Cambia entre las ventanas diff mostrándolas una cerca de la otra (A a la izquierda de B, y a la izquierda de C) o una sobre otra (A sobre B y sobre C). También debería servir de ayuda para las líneas largas (en el menú Ventanas). Iniciar fusión rápida:Algunas veces puede estar viendo las deltas y decidir fusionarlas. «Fusionar el archivo actual» en el menú Directorio también funcionará si solo compara dos archivos. Una simple pulsación inicia la fusión y utiliza el nombre de archivo del último archivo de entrada como nombre de archivo predeterminado (cuando se utiliza esto para reiniciar una fusión, se conservará el nombre de archivo de la salida). Configurar accesos rápidos de teclado En estos momentos solo la versión para KDE soporta accesos rápidos de teclado configurables por el usuario (Menú Preferencias->Configurar accesos rápidos). Órdenes del preprocesador &kdiff3; soporta dos opciones para el preprocesador. Comando del preprocesador:Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Se podrá ver la salida de esta orden en lugar del archivo original. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Utilice esto para cortar determinadas partes del archivo, o para corregir de forma automática el sangrado, etc. Comando de preprocesador de combinación de línea:Cuando se lee cualquier archivo, se redirigirá a través de esta orden externa. Si se especifica una orden de preprocesado (ver a continuación), la salida del preprocesador será la entrada de la coincidencia de líneas del preprocesador. La salida solo se utilizará durante la fase de coincidencia de líneas durante el análisis. Puede escribir su propio preprocesador que cubra sus necesidades específicas. Cada línea de entrada tendrá la correspondiente línea de salida. La idea es permitir al usuario gran flexibilidad durante la configuración del resultado de diff. Pero necesita un programa externo, y muchos usuarios no quieren escribirlo ellos. La buena noticia es que muchas veces sed o perl harán este trabajo. Ejemplo: Prueba de mayúsculas sencilla: considerar el archivo a.txt (6 líneas): aa ba ca da ea fa y el archivo b.txt (3 líneas): cg dg eg Sin un preprocesador las siguientes líneas se situarán unas al lado de otras: aa - cg ba - dg ca - eg da ea fa Esto no es lo que probablemente lo que se desea ya qu ela primera letra contiene actualmetne la información interesante. Para ayudar al algoritmo de coincidencias a ignorar la segunda letra podemos utilizar una orden de preprocesador, que reemplace «g» con «a»: sed 's/g/a/' Con esta orden el resultado del a comparación será: aa ba ca - cg da - dg ea - eg fa Internamente el algoritmo de coincidencia ve los archivos después de la ejecución de la línea del preprocesador de coincidencia, pero en la pantalla el archivo continúa sin cambios (el preprocesador normal cambiará también los datos en la pantalla). Lo básico de <command >sed</command > Esta sección solo introduce algunas características muy básicas de sed. Para obtener más información consulte info:/sed o http://www.gnu.org/software/sed/manual/html_mono/sed.html. Una versión precompilada para Windows puede encontrarse en http://unxutils.sourceforge.net. Tenga en cuenta que los siguientes ejemplos asumen que la orden sed se encuentra en algún directorio definido en la variable de entorno PATH. Si este no es el caso, deberá especificar la ruta completa absoluta de lo orden. También debe tener en cuenta que los siguientes ejemplos utilizan una marca de comilla simple (') que no funcionará para Windows. En Windows debería utilizar las marcas de comillas dobles (") en su lugar. En este contexto solo se utiliza la orden de sustitución sed: sed 's/REGEXP/REEMPLAZO/MODIFICADORES' Antes de utilizar una orden nueva con &kdiff3;, debería comprobarla en una consola. Aquí será práctica la orden echo. Ejemplo: echo abrakadabra | sed 's/a/o/' -> obrakadabra Este ejemplo muestra una orden sed muy simple que reemplaza la primera aparición de «a» con «o». Si desea reemplazar todas las apariciones necesitará el modificador «g»: echo abrakadabra | sed 's/a/o/g' -> obrokodobro El símbolo «|» es la orden de tubería que transfiere la salida de la orden anterior a la entrada de la siguiente orden. Si desea comprobar el uso con un archivo largo puede utiilzar cat en los sistemas tipo Unix o type en los sistemas tipo Windows. sed hará la sustitución para cada línea. cat nombrearchivo | sed opciones Ejemplos para <command >sed</command > usados en &kdiff3; Ignorar otros tipos de comentarios En estos momentos &kdiff3; solo entiende los comentarios C/C++. Utilizando la orden del preprocesado de línea coincidente también puede ignorar otros tipos de comentarios, convirtiéndoles en comentarios C/C++. Ejemplo: Para ignorar los comentarios que comiencen con «#», debería convertirlos a «//». Tenga en cuenta que debe tener activada la opción «Ignorar comentarios C/C++» para que tenga efecto. Una línea de preprocesado de línea coincidente podría ser: sed 's/#/\/\//' Al igual que para sed el caracter «/» tienen un significado especial, y es necesarío reemplazar el caracter «\» antes de cada «/» en la cadena de reemplazo. Algunas veces el «\» es necesario para añadir o eliminar un significado especial de ciertos caracteres. Las comillas simples (') antes y después de la orden de sustitución son importantes, ya que sino el intérprete de órdenes intentará interpretar algunos caracteres especiales como «#», «$» o «\» antes de pasarlos a sed. Tenga en cuenta que en Windows aquí necesitará utilizar las comillas dobles ("). Windows sustituye otros caracteres como «%», por ello debería experimentar un poquito. Sensibilidad de diff a mayúsculas y minúsculas Utilice la siguiente orden de preprocesado de coincidencia de línea para convertir todas las entradas a mayúsculas: sed 's/\(.*\)/\U\1/' Aquí el «.*» es una expresión regular que incluye a todos los caracteres en la línea. El «\1» en la cadena de reemplazo hace referencia al texto que coincide con el primer par de «\(» y «\)». La «\U» convierte el texto insertado a mayúsculas. Ignorar las claves de control de versión CVS y otros sistemas de control de versión utilizan algunas claves para insertar cadenas automáticamente generadas (info:/cvs/Keyword sustitución). Todos ellos siguen el modelo «$CLAVE generada texto$». Ahora necesitaremos una orden de preprocesado que elimine solo el texto generado: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' Las «\|» separan las posibles claves. Podría querer modificar esta lista para acomodarla a sus necesidades. La «\» before the «$» es necesaria porque de otra forma «$» coincidirá con el final de la línea. Mientras experimenta con sed puede llegar a entender y a gustarle las expresiones regulares. Son prácticas porque hay muchos programas que soportan cosas similares. Ignorar números Ignorar los números en realidad es una opción de construcción. Pero como en otros ejemplos, indica el aspecto que podría tener la orden de preprocesado. sed 's/[0123456789.-]//g' Cualquier caracter entre «[» y «]» será una coincidencia y no se reemplazará con nada. Ignorar ciertas columnas Algunas veces una texto tiene un formato muy estricto y contiene columnas que desearía ignorar, mientras que otras columnas deseará conservarlas para el análisis. En el siguiente ejemplo las primeras cinco columnas (caracteres) se ignorarán, las siguientes diez se conservarán, otras cinco se ignorarán y el resto de la línea se conservará. sed 's/.....\(..........\).....\(.*\)/\1\2/' Cada punto «.» coincidirá con cualquier caracter simple. El «\1» y el «\2» en la cadena de reemplazo hacen referencia al texto coincidente dentro del primer y segundo par de «\(» y «\)» indicando el texto que se conservará. Combinar varias sustituciones Algunas veces deseará aplicar varias sustituciones a la vez. Puede utilizar el punto y coma «;» para separarlas unas de otras. Ejemplo: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO Utilizar <command >perl</command > en lugar de <command >sed</command > En lugar de sed podría utilizar algo como perl. perl -p -e 's/EXPREG/REEMPLAZO/MODIFICADORES' Pero algunos detalles son diferentes en perl. Tenga en cuenta que sed necesita «\(» y «\)» perl necesita solo «(» y «)» sin estar precedido de «\». Ejemplo: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Orden de la ejecución de preprocesado Los datos van pasando por todos los preprocesadores internos y externos en el siguiente orden: Preprocesador normal. Preprocesador de coincidencia de líneas. Ignorar mayúsculas (conversión a mayúsculas). Detección de comentarios C/C++. Ignorar números. Ignorar espacios en blanco. Los datos después del preprocesador normal se conservarán para mostrarse y fusionarse. El resto de operaciones solo modificarán los datos para que los vea el algoritmo de coincidencia de líneas de diff. En alguna ocasión cuando use el preprocesador normal se dará cuenta de que el preprocesador de coincidencia de líneas verá la salida del preprocesador normal como entrada. Aviso La orden de preprocesado suele ser muy práctica, pero como con cualquier opción que modifique su texto u oculte ciertas diferencias automáticamente, puede saltarse accidentalmente ciertas diferencias y en el peor de los casos destruir datos importantes. Por esta razón durante un fusionado si &kdiff3; utiliza una orden de preprocesado normal le preguntará si desea desactivarla o no. Pero no se producirá ningún aviso si está activada la orden de preprocesado de líneas coincidentes. La fusión no se completará hasta que se resuelvan los conflictos. Si desactiva «Mostrar espacios en blanco» las diferencias eliminadas con la orden de preprocesado de líneas coincidentes también estarán visibles. Si el botón guardar continúa desactivado durante una fusión (porque aún existen conflictos), asegúrese de activar «Mostrar espacios en blanco». Si no desea fusionar estas diferencias sin importancia de forma manual puede elegir «Seleccionar [A|B|C] para todos los conflictos de espacios en blanco sin resolver» en el menú Fusionar. Comparación y fusionado de directorios con &kdiff3; Iniciar la comparación y fusión del directorio Frecuentemente los programadores modifican varios archivos en un directorio para conseguir su propósito. Para esto &kdiff3; también le permite comparar y fusionar directorios completos recursivamente. Aunque la comparación y fusionado de directorios parezca bastante obvio, existen varios detalles que debería conocer. Lo más importante es el hecho de que la operación podría afectar a muchos archivos. Si no tiene copias de seguridad de los datos originales, podría ser complicado e incluso imposible devolverlos a su estado original. Por lo tanto, antes de realizar un fusionado, asegúrese de guardar sus datos en un lugar seguro, de forma que sea posible volver atrás. Si crea un archivo o utiliza algún sistema de control de versiones es cosa suya, pero los programadores experimentados y los integradores pueden necesitan las antiguas fuentes. Y tenga en cuenta que a pesar de que yo (el autor de &kdiff3;) intento hacerlo lo mejor posible, no garantizo que no existan fallos. De acuerdo con la licencia GNU GPL NO EXISTE NINGUNA GARANTÍA para este programa. Por lo tanto, sea humilde y tenga siempre lo siguiente en mente:
Errar es humano, pero para echar las cosas a perder necesita un ordenador.
Ésto es lo que este programa puede hacer por usted: &kdiff3; ... ... lee y compara dos o tres directorios recursivamente. ... tiene un especial cuidado con los enlaces simbólicos. ... le permitirá navegar por los directorios con una doble pulsación del ratón. ... para cada elemento propone una operación de fusión, que puede cambiar antes de iniciar la fusión del directorio. ... le permite simular la fusión y lista las acciones que se realizarían si se llegasen a llevar a cabo. ... le permite realizar la fusión, y le permite interactuar cuando sea necesaria la interacción manual. ... le permite ejecutar las operaciones seleccionadas para todos los elementos (tecla F7) o para el elemento seleccionado (tecla F6). ... le permite continuar la fusión después de la interacción manual con la tecla F7. ... crea copias de seguridad opcionales, con la extensión «.orig». ...
Iniciar la comparación o fusión del directorio Es similar a la fusión y comparación de archivos. Solo debe especificar los directorios en la línea de órdenes o en el diálogo abrir archivo. Comparar/fusionar dos directorios: kdiff3 directorio1 directorio2 kdiff3 directorio1 directorio2 -o directorio-destino Sino se especifica directorio de destino, &kdiff3; utilizará directorio2. Comparar/fusionar tres directorios: kdiff3 directorio1 directorio2 directorio3 kdiff3 directorio1 directorio2 directorio3 -o directorio-destino Cuando se fusionen tres directorios directorio1 se utiliza como base para la fusión. Sino se especifica directorio destino, &kdiff3; utilizará directorio3 como directorio destino para la fusión. Tenga en cuenta que solo la comparación se inicia automáticamente, no la fusión. Para esto debería seleccionar la entrada de menú o la tecla F7 (más detalles a continuación). Información visible del directorio de fusión Mientras lee estos directorios se mostrará un cuadro de diálogo en el que se informará del progreso. Si cancela la exploración del directorio, solo se compararán los archivos listados. Cuando se termine la exploración del directorio &kdiff3; mostrará una lista con el resultado... ... y detalles sobre el elemento seleccionado actualmente a la derecha: La columna nombre Cada archivo y directorio que se encuentre durante la exploración se mostrará aquí en un árbol. Puede seleccionar un elemento pulsando una vez con el ratón. De forma predeterminada los directorios están contraídos. Puede expandirlos y contraerlos pulsando en «+»/«-», con una doble pulsación, o utilizando las teclas Flecha izquierda o Flecha derecha. El menú «Directorio» también contiene dos acciones «Plegar todos los subdirectorios» y «Desplegar todos los subdirectorios» con los que podrá contraer y expandir todos los directorios de una vez. Si hace una doble pulsación sobre un elemento de archivo comenzará la comparación y aparecerá la ventana de diferencias de archivos. La imagen de la columna nombre reflejará el tipo de archivo en el primer directorio («A»). Puede ser uno de estos: Archivo normal. Directorio normal (imagen de directorio). Enlace a un archivo (imagen de archivo con una flecha de enlace). Enlace a un directorio (imagen de directorio con una flecha de enlace). Si el tipo de archivo es diferente en el resto de directorios, ésto podrá verse en las columnas A/B/C y en la ventana que muestra los detalles sobre el elemento seleccionado. Tenga en cuenta que en este caso la fusión no podrá seleccionarse automáticamente. Cuando inicie la fusión, el usuario será informado de problemas de este tipo. Las columnas A/B/C y el esquema de coloreado Como puede verse en la imagen superior los colores rojo, verde, amarillo y negro son los que se utilizan en las columnas A/B/C. Negro: Este elemento no existe en este directorio. Verde: El elemento más nuevo. Amarillo: Más antiguo que verde, más nuevo que rojo. Rojo: El elemento más antiguo. Pero para los elementos que son idénticos en la comparación sus colores son idénticos aunque no coincida la antigüedad. Los directorios se consideran iguales si todos los elementos que contienen son idénticos. Entonces tendrán el mismo color. Pero la antigüedad de un directorio no se considerará para su color. La idea de este esquema de color se basa en dirdiff.Los colores son semejantes a las hojas, que son verdes cuando nacen, se vuelven amarillas más tarde y cuando envejecen se vuelven rojos. La columna Operación Después de comparar los directorios &kdiff3; también evalúa una propuesta para una operación de fusión. Esto se muestra en la columna «Operación». Puede modificar la operación pulsando en la operación que desee cambiar. Aparecerá un pequeño menú y le permitirá seleccionar una operación para este elemento (también puede seleccionar las operaciones a través del teclado. Ctrl+1/2/3/4/Supr seleccionarán A/B/C/Fusionar/Borrar respectivamente si están disponibles). Esta operación se ejecutará durante la fusión. La disponibilidad de estas operaciones dependerá del elemento y del modo de fusión. El modo de fusión será uno de los siguientes: Fusión del árbol de directorios («A» será tratada como la base más antigua de ambas). Fusionar dos directorios. Sincronizar dos directorios (activado a través de la opción «Sincronizar directorios»). En la fusión de tres directorios la operación propuesta será: Si para un elemento... ... todos los árboles de directorios son iguales: Copiar desde C. ... A y C son iguales pero B no: Copiar desde B (o si B no existe, borra el destino, si existe). ... A y B son iguales pero C no: Copiar desde C (o si C no existe, borra el destino, si existe). ... B y C son iguales pero A no: Copiar desde C (o si C no existe, borra el destino, si existe). ... solo existe A: Borrar el destino (si existe). ... solo existe B: Copiar desde B. ... solo existe C: Copiar desde C. ... A, B y C no son iguales: Fusionar. ... A, B y C no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan elementos como éstos la fusión de directorio no comenzará. En la fusión de dos directorios la operación propuesta será: Si para un elemento... ... ambos directorios son iguales: Copiar desde B. ... A existe, pero B no: Copiar desde A. ... B existe, pero no A: Copiar desde B. ... A y B existe pero no son iguales: Fusionar. ... A y B no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan de elementos como éstos la fusión de directorio no comenzará. El modo de sincronización estará activo si solo existen dos directorios, no se ha especificado destino y está activa la opción «Sincronizar directorios». &kdiff3; seleccionará una operación predeterminada de forma que ambos directorios sean idénticos después. Si para un elemento ... ... ambos directorios son iguales: No se hará nada. ... A existe, pero B no: copiar A a B. ... B existe, pero A no: Copiar B a A. ... A y B existen, pero no son iguales: Fusionar y guardar el resultado en ambos directorios (para los usuarios el nombre de archivo guardado es B, pero entonces &kdiff3; copiará B a A). ... A y B no tienen el mismo tipo de archivo (p.ej. A es un directorio, B es un archivo): «Error: Conflicto en los tipos de archivo». Mientras existan de elementos como éstos la fusión de directorio no comenzará. Cuando se fusionen dos directorios y esté seleccionada la opción «Copiar nuevo en lugar de fusionar», &kdiff3; buscará en las fechas y propondrá como elección el nuevo archivo. Si los archivos no son iguales pero tienen las mismas fechas, la operación contendrá «Error: Las fechas son iguales pero los archivos no». Mientras éstos elementos existan no se iniciará la fusión de directorios. La columna estado Durante la fusión se procesará un archivo tras otro. La columna estado mostrará «Hecho» para los elementos donde se haya producido la operación de fusionado, y otro texto si sucede algo inesperado. Cuando se completa una fusión, debería hacer una última comprobación para ver si el estado de todos los elementos es el adecuado. Columnas estadísticas Cuando está activado en las opciones el modo de comparación de archivos «Análisis completo», &kdiff3; mostrará columnas que contienen el número de conflictos sin resolver, resueltos, no en blanco o de espacios en blanco (la columna resueltos solo se mostrará cuando se comparen o fusionen directorios). Seleccionar archivos listados Varias opciones influyen en los archivos que se listarán aquí. Algunas son accesibles a través del diálogo preferencias. El menú Directorio contiene las entradas: «Mostrar archivos idénticos». Archivos que se han detectado como iguales en todos los directorios. «Mostrar archivos diferentes». Archivos que existen en dos o más directorios pero que no son iguales. «Mostrar archivos solo en A». Archivos que existen solo en A, pero no en B o C. «Mostrar archivos solo en B». Archivos que existen solo en B, pero no en A o B. «Mostrar archivos solo en C». Archivos que existen solo en C, pero no en A o B. Active las opciones «Mostrar» para los elementos que desee listar. Si por ejemplo solo desea listar todos los elementos que existan en A o en B pero no en ambos, deberá activar «Mostrar archivos solo en A» y «Mostrar archivos solo en B» y desactivar todas las demás («Mostrar archivos idénticos», «Mostrar archivos diferentes», «Mostrar archivos solo en C»). La lista se actualizará inmediatamente para reflejar los cambios. Estas opciones también se aplican para los directorio con una excepción: Desactivar «Mostrar archivos diferentes» no ocultará ningún directorio. Solo funcionará para los archivos que contenga. Tenga en cuenta que de estas opciones solo es persistente la opción «Mostrar archivos idénticos». Los otros se activarán cuando se inicie &kdiff3;. Hacer una fusión de directorios Puede fusionar el elemento seleccionado (archivo o directorio) o todos los elementos. Cuando haya hecho todas sus operaciones de elección (en todos los subdirectorios también) podrá iniciar la fusión. Sea consciente de que sino especifica un directorio de destino explícitamente, el destino será «C» en el modo de tres directorios, «B» en el modo de fusión de dos directorios, y en el modo de sincronización será «A» y/o «B». Si ha especificado un directorio de destino marque todos los elementos del árbol que debieran estar en la salida. Existen algunas opciones que hará que se omitan ciertos elementos del directorio de comparación y del de fusión. Marque estas opciones para evitar sorpresas desagradables: «Directorios recursivos»: Si está desactivado, no se buscarán los elementos de los directorios. «Patrón»/«Anti-patrón»: Incluir/excluir elementos que coincidan. «Excluir archivos ocultos» «Mostrar» opciones (Mostrar archivos idénticos/diferentes, archivos solo en A/B/C) Si cambia las preferencias para listar más archivos, debería volver a buscar a través del menú «Directorio»->«Volver a buscar» (el motivo es que para realizar una comparación rápida &kdiff3; omite la comparación para los archivos suprimidos por este criterio). Si cambia sus patrones de archivo y directorio de exclusión de archivos, la lista de archivos se actualizará inmediatamente al cerrar el diálogo de las opciones. Tenga en cuenta que cuando escribe un nuevo directorio completo también deseará copiar los archivos idénticos. En este caso active la opción «Mostrar archivos idénticos». Si su directorio de destino es una de las entradas, ésto no será necesario ya que el archivo ya estará aquí. Si está satisfecho con ésto, el resto es sencillo. Para fusionar todos los elementos: Seleccione «Comenzar/continuar fusión de directorio» en el menú «Directorio» o pulse F7 (que es el acceso rápido). Para fusionar solo el elemento actual: Seleccione «Realizar operación para el elemento actual» o pulse F6. Si debido a tipos de archivos conflictivos todavía continúan existiendo operaciones no válidas, aparecerá un mensaje señalándolo, de forma que pueda seleccionar una operación válida para este elemento. Si fusiona todos los elementos aparecerá un diálogo proporcionándole las opciones «Hacer», «Simular» y «Cancelar». Seleccione «Simular» si desea ver el resultado sin hacer la fusión. Se mostrará un lista de todas las operaciones. Sino seleccione «Hacer» para realizar el fusionado. Entonces &kdiff3; realizará las operaciones especificadas para todos los elementos. Si se precisa interacción manual (fusión de un solo archivo), aparecerá una ventana de fusión (vea la gran captura de pantalla). Cuando haya terminado con un archivo, seleccione de nuevo «Comenzar/continuar fusión de directorio» o la tecla F7. Si todavía no la había guardado, un diálogo le preguntará para hacerlo. Entonces &kdiff3; continuará con el siguiente elemento. Cuando &kdiff3; encuentre un error, éste se lo indicará con información literal del estado. En la parte inferior de la lista, aparecerán algunos mensajes de error que deberían ayudarle a entender la causa del problema. Cuando continúe con la fusión (tecla F7) &kdiff3; le permitirá reintentar o saltarse el elemento que provocó el problema. Esto significa que antes de continuar puede seleccionar otra operación o resolver el problema por otros medios. Cuando la fusión se haya completado, &kdiff3; le informará a través de un cuadro de diálogo. Si algunos elementos se fusionaron de forma individual &kdiff3; lo recordará (mientras esté en esta sesión de fusionado), y no les fusionará nuevamente cuando haga la fusión para todos los elementos. Incluso cuando se salte la fusión o no se guarde nada estos elementos se contarán como completos. Solo cuando cambie la operación de fusionado se eliminará el estado «hecho» del elemento y se podrá fusionar de nuevo. Opciones para comparación y fusión de directorios Las preferencias de &kdiff3; (menú «Preferencias»->«Configurar &kdiff3;») ahora tienen una sección llamada «Fusión de directorio» con estas opciones: Directorios recursivos:Indica si se realizará la búsqueda en los directorios de forma recursiva. Patrón(es) de archivo(s):Solo los archivos que coincidan con el patrón se colocarán en el árbol. Puede especificarse más de un patrón utilizando el punto y coma «;» como separador. Comodines válidos: «*» y «?» (p. ej. «*.cpp;*.h»). El valor predeterminado es «*». Este patrón no se utiliza en directorios. Anti-patrón(es) de archivo:Los archivos y directorios que coincidan con este patrón se excluirán del árbol. Se puede especificar más de un patrón utilizando el «;» como separador. Comodines válidos: «*» y «?». El valor predeterminado es «*.orig;*.o;*.obj». Anti-patrón(es) de direcctorio:Los archivos y directorios que coincidan con este patrón se excluirán del árbol. Se puede especificar más de un patrón utilizando el «;» como separador. Comodines válidos: «*» y «?». El valor predeterminado es «CVS;deps;.svn». Usar .cvsignore:Ignora los archivos y directorios que también se vayan a ignorar por el CVS. Muchos archivos generados automáticamente se ingorarán por el CVS. La gran ventaja es que puede ser un directorio especificado a través del archivo local «.cvsignore» (vea info:/cvs/cvsignore). Buscar archivos y directorios ocultos:En algunos sistemas de archivos tienen un atributo «Oculto». En otros sistemas el nombre de archivo comienza con un punto («.»), lo que hace que esté oculto. Esta opción le permite decidir si incluir o no estos archivos en el árbol. De forma predeterminada está activado. Seguir enlaces de archivos:Para los enlaces de los archivos: Cuando esté desactivado, se compararán los enlaces simbólicos. Cuando esté activado, se compararán los archivos que estén detrás de los enlaces. De forma predeterminada está desactivada. Seguir enlaces de directorios:Para los enlaces de los directorios: Cuando esté desactivado se compararán los enlaces simbólicos. Cuando esté activado, el enlace será tratado como un directorio y se explorará recursivamente (tenga en cuenta que el programa no comprueba si el enlace es «recursivo»). Así por ejemplo, un directorio que contenga un enlace al directorio puede provocar un bucle infinito, y después de cierto tiempo podrá sobrecargar la pila o utilizar toda la memoria, colgando el programa). De forma predeterminada está desactivada. Comparación de nombres de archivo sensible a mayúsculas y minúsculas:El valor predeterminado es false (falso) para Windows, true (verdadero) para otros sistemas operativos. Modo de comparación de archivos: Comparación binaria:Éste es el modo de comparación de archivos predeterminado. Análisis completo:Hace un análisis completo de cada archivo y muestra las columnas de información estadística (número de conflictos resueltos, sin resolver, no blancos y blancos). El análisis completo es más lento que un simple análisis binario, y mucho más lento cuando se utiliza con archivos que no contienen texto (especifique el anti-patrón archivo). Validar la fecha de modificación:Si compara directorios grandes sobre una red lenta, es más rápido comparar solo las fechas de modificación y el tamaño del archivo. Pero esta mejora del rendimiento paga el precio de una pequeña inseguridad. Utilice esta opción con cuidado. De forma predeterminada estará desactivada. Validar el tamaño:Similar a la validación de la fecha. No hace comparaciones reales. Dos archivos se consideran iguales si sus tamaños son iguales. Esto es práctico cuando la operación de copiado no conserva la fecha de modificación. Utilice esta opción con cuidado. De forma predeterminada estará desactivada. Sincronizar directorios:Activa el «Modo sincronizado» cuando se comparan dos directorios y no se especificó el directorio de destino. En este modo las operaciones propuestas se seleccionarán de forma que tras realizar la operación ambos directorios queden iguales. Por ello el resultado del fusionado se escribirá en ambos directorios. De forma predeterminada estará desactivada. Copiar el más nuevo en vez de fusionar:En lugar de fusionar la operación propuesta será copiar la fuente nueva si hubo algún cambio (considerado inseguro, ya que implica que el otro directorio no ha sido editado. Deberá hacer una comprobación para cada caso). De forma predeterminada estará desactivada. Archivos de copia de seguridad:Si se reemplaza un archivo o directorio por otro o se borra, la versión original se renombrará con una extensión «.orig». Si ya existía un archivo con la extensión «.orig» se borrará sin hacer copia de seguridad. También afecta al fusionado normal de archivos simples, no solo al modo de fusionado de directorio. De forma predeterminada estará activada. Otras funciones en la ventana del directorio de fusión Modo de pantalla dividida/completa Normalmente la vista de la lista de fusionado de directorios permanece visible cuando se compara o fusiona un solo archivo. Con el ratón puede mover la barra divisoria que separa la lista de archivos de las ventanas de texto diff. Sino desea ésto, puede desactivar la «Vista de pantalla dividida» en el menú «Directorio». A continuación utilice «Cambiar vista» en el menú «Directorio» para conmutar entre la lista de archivos y la ventana de texto diff que ocupará la pantalla completa. Comparar o fusionar un solo archivo Probablemente preferirá una doble pulsación del ratón sobre un archivo para compararlos. Sin embargo existe una entrada en el menú «Directorio». También puede fusionar directamente un solo archivo, sin iniciar el fusionado del directorio a través de la opción «Fusionar un solo archivo» en el menú «Directorio». Al guardar el resultado, el estado cambiará a «hecho», y el archivo no se fusionará si se inicia un fusionado de directorio. Pero tenga en cuenta que la información del estado se perderá cuando vuelva a explorar un directorio: Menú «Directorio»->«Volver a buscar». Comparar o fusionar archivos con nombres diferentes Algunas veces necesitará comparar o fusionar archivos con nombres diferentes (p. ej. el archivo actual y la copia de seguridad en la misma carpeta). Seleccione el archivo exacto pulsando en el icono en la columna A, B o C. El primer archivo seleccionado se marcará con una «A», el segundo y tercero con «B» y «C» con independencia de la columna en la que esté. Solo se podrá seleccionar en la parte superior de los árboles de archivos. Seleccione «Comparar explícitamente archivos seleccionados» o «Fusionar explícitamente archivos seleccionados» desde el menú «Directorio». Estas entradas también aparecerán como menú contextual cuando pulse el botón derecho cuando pulse el último archivo seleccionado. La comparación o fusión de un archivo se realizará en la misma ventana. Si este método se utiliza para directorios se abrirá una ventana nueva.
Temas variados Transferencia de red a través de KIO KIO-Slaves KDE soporta transparencia de red a través de los KIO-slaves. &kdiff3; lo utiliza para leer los archivos de entrada y para explorar directorios. Esto significa que puede especificar archivos y directorios locales y en recursos remotos a través de URLs. Ejemplo: kdiff3 prueba.cpp ftp://ftp.muylejos.org/prueba.cpp kdiff3 tar:/home/hacker/archivo.tar.gz/dir ./dir La primera línea compara un archivo local con un archivo en un servidor FTP. La segunda línea compara un directorio con un archivo comprimido con un directorio local. Otros KIO-slaves interesantes son: Archivos de la web (http:). Archivos desde el FTP (ftp:). Transferencia de archivos encriptados (fish:, sftp:). Recursos Windows (smb:). Archivos locales (file:). Otras cosas posibles, aunque probablemente poco prácticas son: Páginas de manual (man:). Páginas de información (info:). Cómo escribir URLs Una URL tiene una sintaxis diferente comparada con las rutas de los archivos y directorios locales. Algunas cosas a considerar son: Una ruta puede ser relativa y puede contener «.» o «..» Ésto no es posible para URLs que son siempre absolutas. Los caracteres especiales deben escribirse «escapados» («#» se convertirá en «%23», los espacios se convertirán en «%20» y así sucesivamente). P.ej. Un archivo con el nombre «/#foo#» tendrá el URL «file:///%23foo%23». Cuando un URL no funcione tal y como esperaba, intente abrirla primero en Konqueror. Capacidades de los KIO-Slaves. La transparencia de red tiene un inconveniente: No todos los recursos tienen las mismas capacidades. Algunas veces esto es debido al sistema de archivos del servidor, otras al protocolo. Aquí tenemos una pequeña lista de restricciones: Algunas veces no soporta enlaces. O no hay forma de distinguir si un enlace apunta a un archivo o a un directorio. Siempre se asume un archivo (ftp:, sftp:). No siempre se puede determinar el tamaño del archivo. Soporte limitado para los permisos. No hay posibilidad de modificar los permisos o la hora, por ello los permisos o la hora de la copia puede diferir del original (vea la opción «Verificar tamaño»). La modificación de permisos o de la hora solo es posible en los archivos locales. Utilizar &kdiff3; como un KPart KDiff3 es un KPart. Actualmente implementa la interfaz KParts::ReadOnlyPart-interface. Su principal utilización es la de visor de diferencias en KDevelop. KDevelop siempre inicia primero el visor interno de diferencias. Para llamar a &kdiff3; pulse el botón derecho del ratón en la ventana de diferencias y seleccione «Mostrar en KDiff3Part» en el menú contextual. &kdiff3; normalmente requiere dos archivos completos como entrada. Cuando se utiliza como una parte &kdiff3; asume que el archivo de entrada es un archivo de parches en formato unificado. &kdiff3; recupera el nombre del archivo original del archivo del parche. Al menos uno de los dos archivos debe estar disponible. &kdiff3; llamará a patch para volver a crear el segundo archivo. En Konqueror puede seleccionar un archivo de parche y seleccionar «Previsualizar en» - «KDiff3Part» desde el menú contextual. Sea consciente de que esto no funcionará si no está disponible ninguno de los archivos originales, y no será fiable si hubo modificaciones en el(los) archivo(s) original(es) desde que se generó el parche. Cuando se ejecute como una parte, &kdiff3; solo proporcionará la diferencia de dos archivos, una pequeñísima barra de herramientas y un menú. La fusión y comparación de directorios no está soportada. Preguntas y respuestas &reporting.bugs; &updating.documentation; ¿Por qué se llama «&kdiff3;»? Las herramientas llamadas «KDiff» y «KDiff2» (ahora llamada «Kompare») ya existen. Por tanto «KDiff3» debería sugerir que incluye la fusión de forma similar a la herramienta «diff3» de la colección de herramientas Diff. ¿Por qué la he liberado bajo la GPL? He utilizado programas GPL durante mucho tiempo y aprendí mucho echando un vistazo a muchas fuentes. Ésta es mi forma de dar las «gracias» a todos programadores que han hecho lo mismo. Faltan algunos botones y funciones. ¿Que está pasando? Compiló las fuentes, pero probablemente no especificó de forma correcta el parámetro «prefix» de KDE en configure. De forma predeterminada configure intentará instalarlo en /usr/local pero KDE no encuentra el archivo de recursos de la interfaz de usuario (p.ej. kdiff3ui.rc). El archivo README contiene más información sobre el parámetro «prefix» correcto. Algunas líneas que son similares, pero no idénticas aparecen unas al lado de las otras, pero no siempre. ¿Por qué? Las líneas que solo contienen una cantidad diferente de espacios se tratan «igual» al principio, de forma que solo una diferencia en un caracter que no sea un espacio en blanco hará que las líneas sean «diferentes». Si aparecen líneas similares unas al lado de las otras, en realidad es una coincidencia, y sucede algunas veces. Consulte el manual de ayuda de Diff. ¿Por que se deben resolver todos los conflictos de fusionado antes de guardarlos? Para cada sección ya sea igual o diferente el editor en la ventana de resultado de la fusión recordará su comienzo y su final. Ésto es necesario para que los conflictos puedan resolverse manualmente pulsando el botón de la fuente (A, B o C). Esta información se perderá cuando se guarde el texto y es demasiado complicado crear un formato de archivo especial que soporte el guardado y la restauración de toda la información. Cómo puedo sincronizar las vista de diferencia y de fusión, de forma que todas muestren la misma posición de texto? Pulse en la columna de resumen situada a la izquierda del texto (Consulte también estó.) ¿Por qué el editor en la ventana de resultado no tiene una función «deshacer»? Es demasiado esfuerzo por el momento. Siempre puede restaurar una versión a partir de una fuente (A, B o C) pulsando el botón respectivo. Para editar archivos grandes se recomienda utilizar otro editor. Cuando eliminó texto, de repente aparece «<Sin línea fuente>» y no se puede borrar. ¿Qué significa y cómo puedo eliminarlo? Para cada sección ya sea igual o diferente el editor en la ventana de resultado de la fusión recuerda dónde comienza y dónde termina. «<Sin línea fuente>» significa que no falta nada en una sección, ni siquiera un caracter de línea nueva. Esto puede suceder mientras realiza la fusión automática o mientras está editando. Ésto no es un problema, ya que no aparecerá en el archivo guardado. Si desea volver al archivo original seleccione la sección (pulse en la columna de resumen a la izquierda) y después pulse el botón de la fuente con los contenidos necesarios (A/B o C). ¿Por qué &kdiff3; no soporta resaltado de sintaxis? &kdiff3; ya utiliza muchos colores para resaltar las diferencias. Más resaltado resultaría confuso. Utilice otro editor para esto. Puedo utilizar &kdiff3; para comparar archivos OpenOffice.Org, Word, Excel, Pdf, &etc;? A pesar de que &kdiff3; analizará cualquier tipo de archivo el resultado no será satisfactorio. &kdiff3; se creó para comparar archivos de texto puro. OpenOffice, Word, Excel, etc. guardan mucha más información en los archivos (relativa a tipos de letra, imágenes, páginas, colores, etc.) con la que &kdiff3; no sabe qué hacer. Por tanto &kdiff3; le mostrará el contenido del archivo interpretado como si fuera texto puro, pero esto no es para lo que se utiliza. Desde que muchos programa guardan su contenido en formato XML, puede ser capaz de leer éste como texto puro. Por tanto si el cambio es pequeño, &kdiff3; todavía puede ayudarle. La mejor solución si solo desea comparar texto (sin objetos empotrados como imágenes) es utilizar «Seleccionar todo» y «Copiar» en su programa para copiar el texto interesante al portapapeles y a continuación pegar en &kdiff3; el texto en cualquiera de las ventanas de diferencias (Consulte también Seleccionar, copiar y pegar). ¿Donde está la opción de directorio «Listar solo deltas»? Ahora existen varias opciones «Mostrar» en el menú directorio. Desactivar «Mostrar archivos idénticos» activará «Listar solo deltas» ¿Cómo puedo realizar una selección grande en la ventana de entrada de diferencias sin tardar demasiado tiempo? Inicie la selección de la forma habitual (pulse y mantenga pulsado el botón izquierdo del ratón). A continuación utilice las teclas de navegación (p.ej. RéPag, AvPág) manteniendo pulsado el botón izquierdo del ratón (consulte también Seleccionar, copiar y pegar). Aquí hay mucha información, pero ¿su pregunta no está respondida? Por favor, envíeme su pregunta. Aprecio todos los comentarios. Créditos y licencia &kdiff3; - Herramienta de comparación y fusionado de archivos y directorios. Derechos de autor del programa. 2002-2007. Joachim Eibl joachim.eibl en gmx.de. Algunas buenas ideas e informes de fallos me llegaron de colegas y de mucha gente a lo largo de la red ¡Gracias! Derechos de autor de la documentación. © 2002-2007. Joachim Eibl joachim.eibl en gmx.de. Traducido por Santiago Fernández Sancho santi@kde-es.org. &underFDL; &underGPL; Instalación Cómo obtener &kdiff3; Puede descargar la última versión de &kdiff3; de su página principal: http://kdiff3.sourceforge.net. &kdiff3; también está disponible para otras plataformas. Vea la página principal para obtener más detalles. Requerimientos Para utilizar adecuadamente todas las características de &kdiff3;, necesitará &kde; 3.1 o superior. Para obtener información sobre cómo ejecutar &kdiff3; en otras plataformas sin KDE vea la página principal. Puede encontrar una lista de cambios en http://kdiff3.sourceforge.net/ChangeLog o en el archivo «ChangeLog» del paquete fuente. Compilación e instalación Para compilar en instalar &kdiff3; en un sistema con KDE, teclee lo siguiente en el directorio base de la distribución de &kdiff3;: % ./configure --prefix=kde-dir % make % make install kde-dir especifica el directorio que contiene KDE en su sistema. Sino está seguro, lea el archivo README para obtener los detalles. Sino utiliza KDE utilice configure pero siga las instrucciones para los sistemas que solo tienen Qt en el archivo README. Puesto que &kdiff3; utiliza autoconf y automake no debería tener problemas para compilarlo. Si tiene problemas al ejecutarlo, por favor, informe de ello a las listas de correo de &kde;. &documentation.index;
kdiff3-0.9.97/doc/es/CMakeLists.txt0000644000175100001440000000013511626145652016243 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/es SUBDIR kdiff3) kdiff3-0.9.97/doc/fr/0000755000175100001440000000000011626145654013506 5ustar joachimuserskdiff3-0.9.97/doc/fr/index.docbook0000644000175100001440000027110711626145653016166 0ustar joachimusers KDiff3"> ]> Le guide de &kdiff3; Joachim Eibl
joachim.eibl at gmx.de
&traducteurSimonDepiets; 2002-2004 Joachim Eibl &FDLNotice; 2004-05-29 0.9.84 &kdiff3; est un comparateur fusionneur de fichiers et dossiers qui compare et fusionne deux ou trois fichiers textes ou dossiers montre les différences ligne par ligne et caractère par caractère, proposant une fusion automatique facilitée, ayant un éditeur pour résoudre facilement les conflits de fusion proposant une transparence réseau via KIO ayant des options pour surligner ou cacher les changements dans les espaces ou commentaires. Ce document décrit kdiff3 version 0.9.84. KDE kdeextragear kdiff3 diff fusion CVS triple comparaison comparer fichiers dossiers CVS fusion à trois voies différences à la ligne synchronise kpart kio transparence réseau éditeur espace commentaires
Introduction Encore une autre interface Diff ? Beaucoup d'outils graphiques pour diff existent. Pourquoi choisir KDiff3  Laissez moi vous expliquer pourquoi je l'ai écrit. Kdiff3 a été créé car j'ai eu a faire une fusion difficile. Fusionner est nécessaire quand beaucoup de gens travaillent sur les mêmes fichiers dans un projet. Une fusion peut parfois être automatisée, quand l'outil de fusion n'a pas seulement les fichiers modifiés (appelés "branches"), mais aussi le fichier original (appelé "base"). L'outil de fusion choisira automatiquement la modification faite uniquement dans une seule branche. Quand beaucoup de contributeurs auront changé les mêmes lignes, alors l'outil de fusion détectera un conflit et vous devrez le résoudre manuellement. La fusion fut donc difficile car un contributeur a changé beaucoup de choses. Un autre a aussi changé beaucoup de texte dans le même fichier, ce qui résulte en beaucoup de conflits lors de la fusion. L'outil que j'ai utilisé ne m'a donc montré que les lignes modifiées mais pas ce qui avait changé dans ces lignes. La fusion fut un vrai cauchemar. Voila donc le début. La première version a montré les différences dans une ligne et les différences d'espaces. Plus tard beaucoup d'autres options furent ajoutées pour augmenter l'utilité. Par exemple si vous voulez comparer du texte rapidement, alors vous pouvez le copier dans le presse-papiers et le coller dans une autre fenêtre diff. Une option qui me demanda beaucoup d'efforts fut la comparaison de dossiers et la facilitation de la fusion, qui a transformé le navigateur en navigateur complet. J'espère que KDiff3 marche chez vous aussi. Amusez vous ! Joachim Eibl (2003) Captures d'écrans et caractéristiques Cette capture d'écran montre la différence entre deux fichiers texte. (Utilisant une ancienne version de KDiff3) : La fusion à trois voies est pleinement supportée. Ceci est utile si deux personnes ont changé le code indépendamment. Le fichier original (la base) est utilisé pour aider KDiff3 a sélectionner les bons changements. L'éditeur de fusion situé sous la fenêtre diff vous autorise à résoudre les conflits, en vous montrant le résultat que vous obtiendrez. Vous pouvez aussi éditer le résultat. Cette capture d'écran montre trois fichiers en train d'être fusionnés. KDiff3 vous aide aussi à comparer et fusionner des dossiers complets. Cette capture d'écran montre KDiff3 pendant une fusion de dossiers : Plus d'options Visionneuse de différences ligne par ligne et caractère par caractère En utilisant les possibilités d'affichages colorés d'une interface graphique, KDiff3 montre exactement quelle est la différence. Quand vous aurez a traiter beaucoup de texte, cela vous aidera beaucoup. Voir les différences d'espaces en un coup d'oeil. Les espaces et alinéas apparaissent visiblement. Quand des lignes diffèrent seulement d'un espace, cela peut être vu en un coup d'oeil dans la colonne sur le côté gauche. Plus de problèmes quand les gens changent les espaces. Triple comparaison Analyser trois fichiers et voir en quoi ils diffèrent. Les fenêtres de gauche/millieu/droite sont appelées A/B/C et on respectivement les couleurs bleu/vert/mauve. Si un des fichiers et le même et un des fichiers est différent sur une ligne alors la couleur montre quel fichier est différent. La couleur rouge montre que les deux sont différents. Fusion confortable de deux ou trois fichiers. KDiff3 peut être utilisé pour fusionner deux ou trois fichiers et faire autant de fusions automatiques que possible. Le résultat est représenté dans une fenêtre modifiable ou la plupart des conflits peuvent être résolus avec un simple clic de souris. Sélectionnez les boutons A/B/C depuis la barre des boutons pour sélectionner la source qui doit être utilisée. Vous pouvez aussi utiliser plus d'une source. Cette fenêtre est aussi un éditeur pour les conflits nécessitant des corrections plus poussées pouvant être corrigées sans autre outil. Et ... Une navigation rapide via les bouttons. Un clic de souris dans la colonne du sommaire synchronise toutes les fenêtres pour indiquer la même position. Sélectionnez et copiez depuis n'importe qu'elle fenêtre et collez dans la fenêtre de résultat de la fusion. La colonne d'aperçu qui montre où les changements et conflits sont situés. Les couleurs sont ajustables a vos préférences. Taille des alinéas ajustable. Option pour insérer des espaces à la place des alinéas. Ouvrir les fichiers confortablement via une boîte de dialogue ou spécifier les fichiers via la ligne de commande. Chercher une partie d'un texte dans toutes les fenêtres. Trouver (Ctrl+F) et trouver le suivant (F3). Indiquer le numéro de ligne pour chaque ligne. Coller le presse-papiers ou tirer un texte dans une fenêtre diff. Transparence réseau via KIO. Peut être utilisé pour voir les diff dans KDevelop 3. Coupage des mots dans les lignes longues. ... Documentation de la comparaison et fusion de fichiers Options en ligne de commande Comparer 2 fichiers : kdiff3 fichier1 fichier2 Fusionner 2 fichiers : kdiff3 fichier1 fichier2 -m kdiff3 fichier1 fichier2 -o fichier-résultat Comparer 3 fichiers : kdiff3 fichier1 fichier2 fichier3 Fusionner 3 fichiers : kdiff3 fichier1 fichier2 fichier3 -m kdiff3 fichier1 fichier2 fichier3 -o fichier-résultat Notez que fichier1 sera traité comme étant la base de fichier2 et fichier3. Cas spécial : fichiers du même nom Si tous les fichiers ont le même nom mais sont situés dans des dossiers différents, vous pouvez réduire la saisie en ne spécifiant que le nom d'un fichier, pour le premier fichier. Ex : kdiff3 dos1/fichier dos2 dos3 Ligne de commande pour lancer une comparaison ou fusion de dossiers : C'est assez similaire, mais cela concerne désormais des dossiers. kdiff3 dos1 dos2 kdiff3 dos1 dos2 -o dossier-de-destination kdiff3 dos1 dos2 dos3 kdiff3 dos1 dos2 dos3 -o dossier-de-destination Pour la comparaison et fusion de dossiers vous pouvez continuer à lire ici. Pour plus d'informations sur les options en ligne de commande, utilisez : kdiff3 --help Options : -m, --merge Fusionner. -b, --base file Fichier de base explicite. Par compatibilité avec certains outils. -o, --output file Fichier de résultat. Implique -m. Ex. : -o newfile.txt --out file Fichier de résultat, encore. (Par compatibilité avec certains outils). --auto Pas d'interface graphique si tous les conflits se résolvent tout seuls. (Nécessite -o fichier) --qall Ne pas résoudre les conflits automatiquement. (Par compatibilité)... --L1 alias1 Alias pour le fichier 1 (base). --L2 alias2 Alias pour le fichier 2. --L3 alias3 Alias pour le fichier 3. -L, --fname alias Alias alternatif. Mettez cela une fois pour chaque entrée. -u N'a pas d'effet. Pour la compatibilité avec certains outils. Fenêtre d'ouverture Étant donné que plusieurs fichiers doivent être sélectionnes en entrée, le programme a une fenêtre d'ouverture spéciale : La fenêtre d'ouverture vous permet d'éditer les noms des fichier à la main, en sélectionnant un fichier via le navigateur ("Fichier...") ou vous permet de choisir des fichiers récemment utilisés via la liste défilante. Si vous rouvrez la fenêtre, alors les noms actuels seront toujours ici. Le troisième fichier d'entrée n'est pas nécessaire. SI l'entrée pour "C" reste vide, alors une analyse diff de deux fichiers seulement sera effectuée. Vous pouvez aussi sélectionner un dossier via "Dossier...". Si pour A un dossier est spécifié alors une comparaison/fusion de dossiers débutera. Si "Fusionner" est sélectionné, alors la ligne "Sortie" devient éditable. Mais il n'est pas nécessaire de spécifier le fichier du résultat de la fusion immédiatement. Vous pouvez aussi le faire au moment de l'enregistrement. Le bouton "Configurer..." ouvre la fenêtre des options pour que vous puissiez mettre en place les options avant de débuter l'analyse. La saisie en Coller et Lâcher Parfois vous voulez comparer les parties d'un texte qui n'est pas un fichier. KDiff3 vous permet aussi de coller le texte du presse-papiers dans une fenêtre de diff sélectionnée. L'analyse diff est alors immédiate. Dans la fenêtre ouverte vous n'aurez pas besoin de spécifier des fichiers, mais simplement de la fermer via "Annuler". Vous pouvez aussi utiliser la méthode du tirer/lâcher : Tirez un fichier depuis le navigateur ou sélectionnez du texte depuis un éditeur et lâchez le dans la fenêtre de diff. Quelle est l'idée ? Parfois un fichier contient deux fonctions similaires, mais vérifier à quel niveau elles sont similaires est compliqué si vous devez d'abord créer deux fichiers puis les charger. Maintenant vous pouvez simplement copier, coller et comparer les sections en question. Note : Actuellement vous ne pouvez rien tirer depuis KDiff3. Seulement le lâchage dans l'entrée de diff est géré. Attention : Certains éditeurs interprètent toujours la méthode du tirer/lâcher vers un autre programme comme un couper (à la place de copier) et coller. Vos données originales pourraient alors être perdues. Interpréter l'information dans les fenêtres de saisie En haut de chaque fenêtre il y a sa "ligne d'informations". Les lignes d'informations des fenêtres de saisie contiennent une lettre "A", "B" ou "C", le nom de fichier et le numéro de ligne de la première ligne visible dans la fenêtre. (Notez que la fenêtre "C" est optionnelle). Chaque ligne d'information apparaît dans une couleur différente. (Si les chemins sont trop longs, alors vous pouvez déplacer la souris sur la ligne d'information et une bulle apparaîtra, vous montrant le nom complet). Les trois fenêtres de saisies sont assignées aux lettres "A", "B" et "C". "A" a la couleur bleue, "B" le vert et "C" le mauve. (Ce sont les options par défaut, mais elles peuvent être changées via le Menu Options). Quand une différence est détectée les couleurs montrent quel fichier diffère. Quand les deux fichiers en entrée diffèrent, alors la couleur utilisée est le rouge par défaut ("Couleur de conflit" dans les Options). Ce schéma de couleur est particulièrement utile si vous avez trois fichiers en entrée, ce qui sera vu dans la prochaine section (Fusion). A la gauche de chaque texte se trouve la "colonne de résumé". Si des différences sont trouvées sur une ligne alors la colonne de résumé affiché la couleur respective. Pour une différence d'espace seulement la colonne est changée. Pour les langages de programmation où les espaces ne sont pas si importants, il est pratique de voir d'un coup d'oeil si quelque chose d'important a été modifié. (En C/C++ les espaces ne sont intéressants que dans les chaînes, commentaires, pour le préprocesseur et dans quelques situations très ésotériques). La ligne verticale séparant la colonne de résumé et le texte est interrompue si le fichier en entrée n'a pas de lignes. Quand la coupe des mots est activée, alors cette ligne verticale apparaît en pointillé. Sur le côté droit une colonne d'"aperçu" est visible à gauche de la barre de défilement verticale. Cela montre la colonne de résumé compressée de l'entrée "A". Toutes les différences et conflits sont visibles d'un coup d'oeil. Quand seulement deux fenêtre de saisie sont utilisées, alors toutes les différences apparaîtront en rouge ici car chaque différence est aussi un conflit. Un rectangle noir encadre les parties visibles des entrées. Pour les fichiers très longs, quand le nombre de lignes est plus grand que la hauteur de la colonne d'aperçu en pixels, alors plusieurs lignes partagent la seule ligne d'aperçu. Un conflit a alors la priorité maximale sur les autres simples différences, qui ont la priorité sur les lignes ou rien ne change, pour qu'aucune différence ou conflit ne soit perdu ici. En cliquant sur cette colonne d'aperçu le texte correspondant sera affiché. Fusionner et la Fenêtre d'édition du Résultat de la Fusion La fenêtre d'édition du résultat de la fusion (située sous la fenêtre de saisie de diff) a aussi une ligne d'information en haut affichant "Résultat :", le nom du fichier et "[Modifié]" si vous avez édité quelque chose. Habituellement elle contiendra du texte à travers les facilités de fusion automatique, mais conserve souvent quelques conflits. !!! L'enregistrement est désactivé avant que tous les conflits ne soient résolus !!! (Utilisez les boutons "Aller au conflit suivant/précédent" pour trouver les conflits restants). Avec seulement deux fichiers en entrée, chaque différence est aussi un conflit devant être résolu manuellement. Avec trois fichiers en entrée, le premier fichier est traité comme la base, alors que les second et troisième fichiers en entrée contiennent des modifications. Quand dans une ligne seulement soit B ou C a changé mais pas les deux, la source changée sera sélectionnée. Seulement si B et C ont changé sur les mêmes lignes, alors l'outil détectera un conflit devant être résolu manuellement. Quand B et C sont les mêmes, mais différents de A, alors C est sélectionné. La fenêtre d'édition du résultat de la fusion a aussi une colonne de résumé sur la gauche. Elle affiche la lettre de l'entrée sélectionnée pour une ligne ou rien si les trois sources étaient égales sur une ligne. Pour les conflits, elle affiche un point d'interrogation "?" et la ligne affiche "<Conflit de Fusion>" tout en rouge. Étant donné que la résolution des conflits ligne par ligne prendrait beaucoup de temps, les lignes sont groupées en groupes ayant les mêmes caractéristiques de différences et conflits. Seuls les conflits d'espaces sont séparés des autres conflits pour faciliter la fusion de fichiers où l'indentation a changé pour beaucoup de lignes. Quand vous cliquez dans la colonne de résumé avec le bouton gauche de la souris dans une fenêtre alors le groupe correspondant à cette ligne sera sélectionné dans toutes les fenêtres et le début de ce groupe sera affiché. (Cela peut invoquer un saut de repositionnement automatique dans la fenêtre si le début d'un groupe n'est pas visible). Ce groupe devient alors le "groupe actuel". Il est surligné et une barre noire apparaît sur le côté gauche du texte. Regardez les bouttons de sélection de l'entrée contenant les lettres "A", "B" et "C" dans la barre des bouttons sous la barre de menu. Quand vous cliquez sur un bouton de sélection d'entrée, les lignes de cette entrée seront ajoutées à la fin du groupe sélectionné si ce groupe ne contenait pas déjà cette source auparavant. Sinon les lignes de cette entrée seront supprimées. En outre, vous pouvez éditer directement n'importe quelle ligne ici. La colonne de résumé affichera "m" pour chaque ligne ayant été modifiée. Parfois, quand une ligne est supprimée soit par fusion automatique ou édition et qu'aucune autre ligne ne reste dans ce groupe, alors le texte <Pas de ligne à la source> apparaîtra sur cette ligne. C'est juste pour vous souvenir qu'il y avait une source ici si vous changez d'idée et sélectionnez une ligne de nouveau. Ce texte n'apparaîtra pas dans le fichier enregistré ou dans n'importe quelle sélection que vous copierez et collerez. Le texte "<Conflit de Fusion>" apparaîtra dans le presse-papiers si vous copiez et collez du texte contenant une ligne au maximum. Mais faites toujours attention à cela. La fusion normale démarrera par la résolution automatique de conflits simples. Mais le menu "Fusion" propose quelques actions pour d'autres besoins communs. Si vous avez à sélectionner la même source pour la plupart des conflits, alors vous pouvez choisir "A", "B" ou "C" partout, ou seulement pour les conflits restant non résolus, ou pour les conflits d'espacement non résolus. Si vous voulez décider chaque différence vous même, vous pouvez "Mettre des deltas aux conflits". Ou si vous voulez retourner aux choix automatiques de KDiff3 alors sélectionnez "Résoudre automatiquement les conflits simples". KDiff3 redémarre alors la fusion. Pour les actions changeant vos précédentes modifications KDiff3 vous demandera votre confirmation avant de continuer. Note : Quand vous choisissez une des sources pour les conflits d'espacement non résolus et que les options "Ignorer les nombres" ou "Ignorer les commentaires C/C++" sont utilisées alors les changements dans les nombres ou commentaires seront aussi traités comme des espaces. Navigation et Édition La majorité de la navigation sera effectuée avec les barres de défilement et la souris mais vous pouvez aussi naviguer avec les touches. Si vous cliquez dans une des fenêtres alors vous pouvez utilisez les touches page précédente, page suivante, home, fin, ctrl-home, ctrl-fin et les flèches comme vous le feriez dans les autres programmes. La colonne de résumé située à côté de la barre de défilement verticale des fichiers en entrée peut aussi être utilisée pour naviguer en cliquant dessus. Vous pouvez aussi utiliser la molette de la souris pour monter et descendre. Dans l'éditeur de résultat de la fusion vous pouvez aussi utiliser les autres touches pour l'édition. Vous pouvez basculer entre les modes insérer et remplacer avec la touche Insertion. (Le mode par défaut est le mode d'insertion). Un clic gauche dans une colonne de résumé synchronisera toutes les fenêtres pour qu'elles affichent le début du même groupe de lignes (comme expliqué dans la section "Fusion"). La barre de boutons contient aussi sept bouttons de navigation avec lesquels vous pouvez naviguer vers la première/actuelle/dernière différence, vers la différence précédente/suivante (ctrl-haut/ctrl-bas), vers le conflit précédent/suivant (ctrl-pgpréc/ctrl-pgsuiv), ou vers le conflit non résolu précédent/suivant. Notez que pour KDiff3 un "conflit" qui n'a pas été résolu automatiquement au début de la fusion reste un "conflit" même s'il est résolu. Voila la nécessité de distinguer les "conflits non résolus". Il y a aussi un bouton "Aller automatiquement au conflit non résolu suivant après la sélection de la source" (Avancée automatique). Si vous activez cette option, alors, quand une source est sélectionnée, KDiff3 avancera automatiquement en sélectionnant le prochain conflit non résolu. Cela vous aidera si vous voulez toujours ne choisir qu'une source. Si vous avez besoin de deux sources, ou si vous voulez éditer après la sélection, alors vous voudrez probablement désactiver cette fonctionnalité. Avant d'avancer au conflit suivant KDiff3 vous montre les modifications de ce choix pour un court laps de temps. Ce délai est ajustable dans les Options de Fusion et de Diff : Vous pouvez spécifier le "Délai d'avancée automatique" en millisecondes entre 0 et 2000. Astuce : Vous êtes fatigué d'effectuer trop de clics ? - Utilisez un court délai d'avancée automatique et les raccourcis Ctrl-1/2/3 pour sélectionner A/B/C pour les conflits. Sélectionner, Copier et Coller La fenêtre d'entrée n'affiche pas de curseur, les sélections peuvent donc être effectuées via la souris en cliquant avec le bouton gauche au début, en gardant le bouton pressé et en se déplaçant à la fin de la sélection souhaitée, où vous relâchez le bouton. Vous pouvez aussi sélectionner un mot en double cliquant dessus. Dans l'éditeur de résultat de la fusion vous pouvez aussi sélectionner via le clavier en gardant le bouton "Maj" pressé et en naviguant via les flèches. Pour copier vers le presse-papiers vous devez cliquez sur le boutton "Copier" (Ctrl-C ou Ctrl-Inser). Mais il existe une fonctionnalité "Copier automatiquement la sélection". Si elle est activée, alors tout ce que vous sélectionnerez sera copié automatiquement vers le presse papier et vous n'aurez pas besoin de copier. Mais faites attention lorsque vous utilisez cela car le contenu du presse-papiers peut être effacé accidentellement. "Couper" (Ctrl-X ou Maj-Suppr) copie le texte vers le presse-papiers et supprime celui-ci et "Coller" (Ctrl-V ou Maj-Inser) insère le texte du presse-papiers à la position du curseur à la place de la sélection actuelle. Enregistrer L'enregistrement ne sera autorisé que quand tous les conflits seront résolus. Si le fichier existe déjà et que la fonctionnalité "Effectuer une copie de sauvegarde des fichiers" est activée alors le fichier existant sera renommé avec une extension en ".orig", mais si un fichier .orig existe déjà il sera supprimé. Quand vous quittez ou lancez une autre analyse diff et que les données n'ont pas encore été enregistrées, alors KDiff3 vous demandera si vous voulez enregistrer, annuler ou continuer sans enregistrer. (KDiff3 ne saisit aucun signal. Donc si vous "tuez" KDiff3 vos données seront perdues). Les fins de ligne sont enregistrées selon la méthode normale de l'OS. Pour les Unix chaque fin de ligne se termine avec un caractère "\n", tandis que pour les systèmes basés sur Win32 chaque ligne se termine avec un retour chariot et "\r\n". KDiff3 ne préserve pas les fins de ligne des fichiers en entrée, ce qui signifie aussi que vous ne devriez pas utiliser KDiff3 pour les fichiers binaires. Trouver des chaînes Vous pouvez chercher une chaîne dans n'importe quelle fenêtre de KDiff3. La commande "Chercher..." (Ctrl-F) dans le menu Édition ouvre une fenêtre vous permettant de spécifier la chaîne à rechercher. Vous pouvez aussi sélectionner la fenêtre dans laquelle la chaîne doit être cherchée. La recherche reste toujours au premier plan. En utilisant "Chercher le suivant" (F3), vous chercherez l'occurrence suivante. Si vous sélectionner plusieurs fenêtres, alors la première fenêtre sera scannée du début jusqu'à la fin avant que la recherche ne démarre dans la fenêtre suivante au premier plan, etc. Options Les options et la liste des fichiers récemment ouverts seront enregistrées lorsque vous quitterez le programme, et rechargées lorsque vous le démarrerez. (Menu Options / Configurer KDiff3)... Police Sélectionnez un taille de police fixe. (Sur certains systèmes cette fenêtre présentera aussi des tailles de police variable, mais vous ne devriez pas les utiliser). Police italique pour les différences :Si vous sélectionnez cela, alors les différences de texte seront affichées dans la version italique de la police. Si la police ne supporte pas l'italique, cela ne fera rien. Couleurs Couleur du premier plan :Habituellement le noir. Couleur de l'arrière plan :Habituellement le blanc. Couleur de l'arrière plan de Diff :Habituellement le gris clair. Couleur A :Habituellement le bleu foncé. Couleur B :Habituellement le vert foncé. Couleur C :Habituellement le mauve foncé. Couleur de conflit :Habituellement le rouge. Couleur de l'arrière plan de la sélection actuelle :Habituellement le jaune clair. Couleur de l'arrière plan de la sélection différant actuelle :Habituellement le jaune foncé Pour les systèmes ne comprenant que 16 ou 256 couleurs certaines couleurs ne sont pas disponibles en forme pure. Sur ces systèmes le boutton "Par défaut" choisira une couleur pure. Options de l'éditeur Tabulation insère des espaces :Si ceci est désactivé et que vous pressez la touche de tabulation, un caractère de tabulation est inséré, sinon la quantité appropriée de caractères est insérée. Taille de la tabulation :Peut être ajustée pour vos besoins spécifique. Par défaut, 8. Indentation automatique :Quand vous pressez le bouton Entrée ou Retour l'indentation de la ligne précédente est utilisée pour la nouvelle ligne. Copier automatiquement la sélection :Chaque sélection est copiée automatiquement vers le presse-papiers quand cette option est activée. Style de fin de ligne :Quand vous enregistrez vous pouvez sélectionner quel style de fin de ligne vous préférez. La configuration par défaut est le choix commun pour le système d'exploitation utilisé. Utiliser un encodage local :Pour afficher des caractères étrangers. Essayez de changer cela si certains caractères de votre langue ne sont pas affichés correctement. Options de Comparaison et de Fusion Quand vous comparez des fichiers, KDiff3 essaie d'abord de comparer les lignes qui sont égales dans les trois fichiers. Il ne peut ignorer les espaces que dans cette étape. La seconde étape compare chaque ligne. Dans cette étape les espaces ne seront pas ignorés. Durant la fusion les espaces ne seront pas ignorés non plus. Se préserver contre le Retour Chariot :Certains éditeurs (sur certains systèmes) enregistrent les caractères de retour chariot '\r' et saut de ligne '\n', tandis que les autres n'enregistrent que le saut de ligne '\n'. Habituellement KDiff3 ignore le retour chariot, mais alors les fichiers n'auront pas la même taille, mais seront les mêmes en comparaison terme à terme. Quand cette option est activée, alors les caractères de retour chariot seront visibles mais traités comme des espaces. Cette option doit être désactivée lors d'une fusion. Elle est désactivée par défaut. Ignorer les nombres :Désactivé par défaut. Les chiffres ('0'-'9', '.', '-') seront ignorés dans la première partie de l'analyse durant laquelle la comparaison des lignes est effectuée. Dans le résultat les différences seront affichées dans tous les cas, mais elles sont traitées comme des espaces. Ignorer les commentaires C/C++ :Désactivé par défaut. Les changements dans les commentaires seront traités comme les changements dans les espaces. Ignorer la casse :Désactivé par défaut. Les différences de casse de caractères (comme 'A' et 'a') seront traitées comme des changements dans les espaces. Commande Préprocesseur :Se reporter à la section suivante. Commande préprocesseur de comparaison de ligne :Se reporter à la section suivante. S'efforcer :S'efforcer de trouver des différences encore plus petites. (Activé par défaut). Ceci sera probablement efficace pour les fichiers lourds et compliqués, lent pour les fichiers très lourds. Délai d'avancée automatique (en ms) :Quand le mode d'avancée automatique est activé, cette option spécifie la durée d'affichage du résultat de la sélection avant de sauter au conflit non résolu suivant. Choix par défaut pour les espaces lors d'une fusion à 2/3 fichiers :Résoudre automatiquement tous les conflits d'espaces en choisissant le fichier spécifié. (Le choix par défaut est le choix manuel). Utile si tous les espaces ne sont pas vraiment importants dans les fichiers. Si vous avez besoin de cela occasionellement, il est mieux d'utiliser "Choisir A/B/C pour tous les conflits d'espaces non résolus" dans le menu de fusion. Notez que si vous activésoit "Ignorer les nombres" ou "Ignorer les commentaires C/C++" alors ce choix automatique est aussi appliqué pour les conflits dans les nombres ou les commentaires. Fusion de dossiers Ces options sont en relation avec le scan de dossiers et le déroulement de la fusion : Reportez-vous à la Documentation sur la Comparaison/Fusion de dossiers pour plus de détails. Il y a déjà une option ici qui est aussi pertinente pour l'enregistrement de fichiers seuls : Fichiers de sauvegarde :Quand un fichier est enregistré et qu'une ancienne version existe déjà, alors la version originale sera renommée avec une extension ".orig". Si un ancien fichier de sauvegarde portant l'extension ".orig" existe déjà, alors il sera supprimé sans sauvegarde. Divers (Ces options et actions sont disponibles dans les menus ou la barre des boutons). Afficher les numéros de ligne :Vous pouvez sélectionner si les numéros de ligne doivent être affichés pour les fichiers en entrée. Afficher les espaces et les alinéas pour les différences :Parfois les espaces et alinéas visibles peuvent vous déranger. Vous pouvez désactiver cette option. Afficher les espaces :Désactivez cette option pour supprimer tous les surlignements ou les changements d'espaces dans le texte ou dans les colonnes d'aperçu. (Notez que cela s'applique aussi aux changements dans les nombres ou commentaires quand les options "Ignorer les nombres" ou "Ignorer les commentaires" sont actives). Options de l'aperçu :Ces choix ne sont disponibles que si vous comparez trois fichiers. Dans le mode normal toutes les différences sont affichées dans une colonne d'aperçu codée en une seule colonne. Mais parfois vous pouvez être particulièrement intéressés par les différences entre seulement deux de ces trois fichiers. En sélectionnant l'aperçu "A et B", "A et C" ou "B et C", une seconde colonne d'aperçu sera affichée avec les informations nécessaires à côté de l'aperçu normal. Fenêtre de coupe des mots :Coupe des mots lorsque leur longueur dépasse la largeur de la fenêtre. Afficher la fenêtre A/B/C :Parfois vous voudrez mieux utiliser l'espace sur l'écran pour les longues lignes. Cachez les fenêtres qui ne sont pas importantes. (Dans le menu Fenêtre). Sens de la séparation des fenêtres :Choisir entre les fenêtres de comparaison affichées côte à côte (A à côté de B à côté de C) ou l'une au-dessus de l'autre (A sur B sur C). Cela devrait aussi vous aider si les lignes sont longues. (Dans le menu Fenêtre). Démarrer une fusion rapide :Parfois vous voyez des différences et vous décidez de fusionner. "Fusionner le fichier actuel" dans le menu Dossiers fonctionne aussi si vous voulez comparer deux fichiers. Un simple clic démarre la fusion et utilise le nom de fichier du dernier fichier en entrée comme étant le nom du fichier résultat de la fusion par défaut. (Quand ceci est utilisé pour redémarrer une fusion, alors le nom de fichier résultat sera conservé). Configurer les raccourcis clavier Actuellement seule la version KDE supporte la configuration des raccourcis clavier par l'utilisateur. (Menu Configuration / Configurer les raccourcis clavier)... Commandes préprocesseur KDiff3 supporte deux options préprocesseur. Commande Préprocesseur :Quand un fichier est lu, il sera traité à travers cette commande externe. Le résultat de cette commande sera visible à la place du fichier original. Vous pouvez écrire votre propre commande préprocesseur qui remplit des besoins spécifiques. Utilisez cela pour exclure les parties du fichier qui vous gênent, ou corriger automatiquement l'indentation, etc. Commande préprocesseur de comparaison de ligne :Quand un fichier est lu, il sera traité à travers cette commande externe. Si une commande préprocessus (voir ci-dessus) est aussi spécifiée, alors le fichier résultat de la commande préprocesseur est utilisé pour le préprocessus de traitement de lignes. Le résultat de cette dernière ne sera utilisé que durant la phase de comparaison de lignes de l'analyse. Vous pouvez écrire votre propre commande préprocesseur qui remplit des besoins spécifiques. Chaque ligne en entrée a une ligne en sortie correspondante. L'idée est de permettre à l'utilisateur d'avoir une plus grande flexibilité de configuration du résultat de la comparaison. Mais cela nécessite un programme externe, et beaucoup d'utilisateurs ne veulent pas en écrire un eux-mêmes. La bonne nouvelle est que très souvent sed ou perl feront l'affaire. Exemple : Cas simple : Considérons le fichier a.txt (6 lignes) : aa ba ca da ea fa Et le fichier b.txt (3 lignes) : cg dg eg Sans commande préprocesseur les lignes suivantes seront placées les unes à côté des autres   aa - cg ba - dg ca - eg da ea fa Ceci n'est probablement pas voulu étant donné que la première lettre contient l'information intéressante actuelle. Pour aider l'algorithme à ignorer la seconde lettre nous pouvons utiliser un préprocesseur qui remplacera 'g' par 'a' : sed 's/g/a/' Avec cette commande le résultat de la comparaison devrait être : aa ba ca - cg da - dg ea - eg fa L'algorithme de comparaison regarde les fichiers après avoir lancé le préprocesseur, mais à l'écran le fichier est inchangé. (Le préprocesseur normal aurait changé aussi les données affichées à l'écran). Bases de <command >sed</command > Cette section n'introduit qu'aux fonctions les plus basiques de sed. Pour plus d'informations reportez vous à la page info de sed ou http://www.gnu.org/software/sed/manual/html_mono/sed.html. Une version précompilée pour Windows peut être trouvée à http://unxutils.sourceforge.net. Notez que les exemples qui suivent partent du principe que la commande sed est dans un dossier de la variable d'environnement PATH. Si ce n'est pas le cas, vous devrez spécifier le chemin complet absolu pour la commande. Notez aussi que les exemples qui suivent utilisent les guillemets simples (') qui ne fonctionnent pas sous windows. Sur windows vous devez utilisez les doubles guillemets (") à la place. Dans ce contexte seule la commande de substitution sed est utilisée : sed 's/REGEXP/REPLACEMENT/FLAGS' Avant d'utiliser une nouvelle commande dans KDIff3, vous devriez d'abord la tester dans la console. Ici la commande echo est utile. Exemple : echo abrakadabra | sed 's/a/o/' -> obrakadabra Cet exemple affiche une commande sed très simple qui remplace la première occurrence de "a" par un "o". Si vous voulez remplacer toutes les occurrences vous aurez besoin du flag "g" : echo abrakadabra | sed 's/a/o/g' -> obrokodobro Le symbole "|" est la commande tuyau qui transfère la sortie de la commande précédente vers l'entrée de la commande suivante. Si vous voulez tester avec un fichier plus long vous pouvez utiliser cat sur les systèmes basés sur Unix ou type sur les systèmes Windows. sed fera la substitution pour chaque ligne. cat nom-du-fichier | sed options Exemples d'utilisations de <command >sed</command > dans KDiff3 Ignorer les autres types de commentaires Actuellement KDiff3 ne comprend que les commentaires C/C++. En utilisant la commande préprocesseur de traitement de ligne vous pouvez aussi ignorer d'autres types de commentaires, en les convertissant en commentaires C/C++. Exemple : Pour ignorer les commentaires commençant par "#", vous devriez les convertir en "//". Notez que vous devrez aussi activer l'option "Ignorer les commentaires C/C++" pour que cela ait un effet. La commande préprocesseur de traitement de ligne appropriée serait sed 's/#/\/\//' Étant donné que pour sed le caractère "/" a un sens particulier, il est nécessaire de placer le caractère "\" devant chaque "/" dans une chaîne de remplacement. Parfois le "\" est nécessaire pour ajouter ou supprimer un sens particulier de certains caractères. Le guillemet simple (') avant et après la commande de substitution est désormais important, car sinon le shell essaierait d'interpréter certains caractères spéciaux comme'#', '$' ou '\' avant de les passer à sed. Notez que sur Windows vous aurez besoin des doubles marques de citation ici ("). Windows substitue les autres caractères comme '%', alors vous pourriez avoir quelques essais à faire. Comparaison non sensible à la casse Utilisez la commande préprocesseur de traitement de ligne suivante pour convertir toutes ce qui est situé en entrée en majuscules : sed 's/\(.*\)/\U\1/' Ici ".*" est une expression rationnelle qui trouve, dans ce contexte, tous les caractères de la ligne. Le "\1" est la chaîne de remplacement en référence au texte trouvé dans la première paire de "\(" et "\)". Le "\U" convertit le texte inséré en majuscules. Ignorer les mots clés CVS CVS et d'autres systèmes de contrôle de version utilisent des mots clés pour insérer les chaînes générées automatiquement (info:/cvs/Keyword substitution). Tous suivent le modèle "$KEYWORD generated text$". Nous avons maintenant besoin d'une commande préprocesseur de traitement de ligne qui ne supprime que le texte généré : sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' Le "\|" sépare les mots clés possibles. Vous pouvez vouloir modifier cette liste selon vos besoins. Le "\" avant le "$" est nécessaire car sinon le "$" signifie fin de la ligne. Quand vous ferez des expérimentations avec sed vous pourrez arriver à comprendre toutes ces expressions rationnelles. Elles sont utiles car beaucoup d'autres programmes supportent ces mêmes fonctionnalités. Ignorer les nombres Ignorer les nombres est actuellement une option intégrée. Mais en tant qu'autre exemple, c'est ce qui se passerait si vous aviez mis comme commande préprocesseur de traitement de ligne. sed 's/[0123456789.-]//g' Chaque caractère dans '[' ']' est remplacé par rien. Ignorer certaines colonnes Parfois un texte est très strictement formaté, et il y a certaines colonnes que vous voudrez toujours ignorer, tandis que vous voudrez en gardez d'autres pour l'analyse. Dans l'exemple qui suit les cinq premières colonnes (caractères de chaque ligne) sont ignorés, les dix colonnes suivantes sont conservées, puis de nouveaux cinq colonnes sont ignorées et le reste de la ligne est conservé. sed 's/.....\(..........\).....\(.*\)/\1\2/' Chaque point '.' correspond à un caractère. Le "\1" et "\2" dans la chaîne de remplacement réfère au texte correspondant situé entre la première paire de "\(" et"\)" dénotant que le texte doit être conservé. Combiner plusieurs substitutions Parfois vous voudrez appliquer plusieurs substitutions à la fois. Vous pouvez alors utilisez le point-virgule ';' pour les séparer les unes des autres. Exemple : echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO Utiliser <command >perl</command > à la place de <command >sed</command > A la place de sed vous pouvez vouloir utiliser quelque chose d'autre comme perl. perl -p -e 's/REGEXP/REPLACEMENT/FLAGS' Mais certains détails sont différents avec perl. Notez que la où sed à besoin de "\(" and "\)" perl n'a besoin que de "(" and ")" sans les '\' qui le précède. Exemple : sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Ordre d'exécution des commandes préprocesseur Les données traversent tous les préprocesseurs internes et externes dans l'ordre suivant : Préprocesseur normal, Préprocesseur de traitement de ligne, Ignorer la casse (conversion en majuscule), Détection des commentaires C/C++, Ignorer les nombres, Ignorer les espaces Les données après le préprocesseur normal seront conservées pour l'affichage et la fusion. Les autres opérations ne modifient que les données que l'algorithme de comparaison de lignes peut voir. Dans les rares cas ou vous utiliserez un préprocesseur normal, notez que le préprocesseur de traitement de ligne prend la sortie du préprocesseur normal en tant qu'entrée. Attention Les commandes préprocesseur sont très souvent utiles, mais comme avec toutes les options modifiant vos textes ou cachant certaines différences automatiquement, vous pouvez accidentellement sauter certaines différences et dans le pire des cas supprimer des données importantes. C'est pour cette raison que durant une fusion, si une commande préprocesseur normale est utilisée, KDiff3 vous en informera et vous demandera si elle doit être ou non désactivée. Mais ne vous inquiétez pas si une commande préprocesseur de traitement de ligne est active. La fusion ne sera pas terminée tant que tous les conflits ne seront pas résolus. SI vous avez désactivé "Afficher les espaces", alors les différences qui seront supprimées avec la commande préprocesseur de traitement de ligne seront aussi invisibles. Si le boutton d'enregistrement reste désactivé durant une fusion (à cause de conflits restants), assurez vous d'avoir activé "Montrer les espaces". Si vous ne voulez pas fusionner ces différences moins importantes manuellement, vous pouvez sélectionner "Choisir [A|B|C] pour tous les conflits d'espaces non résolus" dans le menu Fusion. Comparaison et Fusion de dossiers avec KDiff3 Introduction Souvent les programmeurs doivent modifier beaucoup de fichiers dans un dossiers pour parvenir à leur but. Pour cela KDiff3 vous permet aussi de comparer et de fusionner des dossiers complets récursivement ! Bien souvent la comparaison et la fusion de dossiers semble bien compliquée, il y a beaucoup de détails dont que vous devriez savoir. Le plus important est bien sur le fait que maintenant beaucoup de fichiers peuvent être affectés par chaque opération. Si vous n'avez pas de sauvegardes de vos données originales, alors il peut être très difficile voire impossible de revenir à l'état original. Donc, avant de démarrer une fusion, assurez-vous que vos données sont en sécurité, et qu'un retour à l'état initial est possible. Vous pouvez faire une archive ou utiliser un système de contrôle de version (CVS), mais même les programmeurs expérimentés et les intégrateurs ont besoin des anciennes sources. Et notez que même si moi (auteur de KDiff3) ait essayé de faire de mon mieux, je ne peux pas garantir qu'il n'y ait pas de bogues. Et selon la GNU-GPL il n'y a AUCUNE GARANTIE sur quoi que ce soit pour ce programme. Alors soyez humble et gardez toujours à l'esprit :
L'erreur est humaine, mais pour vraiment faire n'importe quoi vous avez besoin d'un ordinateur.
Voila ce que ce programme peut faire pour vous : KDiff3... ...lit et compare deux ou trois dossiers récursivement, ... fait spécialement attention aux liens symboliques, ... vous permet de naviguer dans vos fichiers avec des double-clics, ... pour chacun d'eux propose une opération de fusion, que vous pouvez changer avant de démarrer une fusion de dossiers, ... vous permet de simuler la fusion et de lister les actions qui auraient eu lieu, sans les faire, ... vous permet de faire réellement la fusion, et vous permet d'interagir lorsqu'une action manuelle est nécessaire, ... vous permet de lancer l'opération pour tous les éléments (touche F7) ou pour l'élément sélectionné (touche F6), ... vous permet de continuer la fusion après une interaction manuelle avec la touche F7, ... crée des copies de sauvegarde en option, portant l'extension ".orig", ...
Démarrer une comparaison ou une fusion de dossiers C'est très similaire à la fusion et à la comparaison d'un seul fichier. Vous devrez juste spécifier les dossiers depuis la ligne de commande ou la fenêtre d'ouverture de fichiers. Comparer/Fusionner deux dossiers : kdiff3 dos1 dos2 kdiff3 dos1 dos2 -o dosdedest Si aucun dossier de destination n'est spécifié, alors KDiff3 utilisera dos2. Comparer/Fusionner trois dossiers : kdiff3 dos1 dos2 dos3 kdiff3 dos1 dos2 dos3 -o dossier de destination Quand trois dossiers sont fusionnés alors dos1 est utilisé comme la base de la fusion. Si aucun dossier de destination n'est spécifié, alors KDiff3 utilisera dos3 comme dossier de destination de la fusion. Notez que seule la comparaison démarre automatiquement, pas la fusion. Pour cela vous devrez sélectionner le choix du menu ou appuyez sur la touche F7. (Plus de détails à la suite). Information visible Lors de la lecture des dossiers, une boîte de dialogue apparat vous informant de la progression. Si vous annulez le scan de dossier, alors seuls les fichiers déjà comparés seront listés. Quand le scan de dossiers est terminé KDiff3 affiche une liste avec les résultats à gauche, ... ... et les détails concernant l'élément actuellement sélectionné à droite : La colonne de nom Chaque fichier et dossier ayant été trouvé durant le scan et affiché ici dans une arborescence. Vous pouvez sélectionner un élément en cliquant dessus avec la souris. Les dossiers sont fermés par défaut. Vous pouvez les développer ou les fermer on cliquant sur "+"/"-", en double cliquant sur l'élément ou simplement en utilisant les flèches gauche/droite du clavier. Le menu "Dossier" contient aussi deux actions "Naviguer dans tous les sous-dossiers" et "Refermer tous les sous-dossiers" avec lesquelles vous pouvez fermer ou développer tous les dossiers d'un seul coup. Si vous double-cliquez sur un fichier, alors la comparaison démarre et la fenêtre de comparaison apparaîtra. L'image de la colonne de nom reflète du type de fichier dans le premier dossier ("A"). Cela peut être : Fichier normal Dossier normal (image de dossier) Lien vers un fichier (image de fichier avec une flèche) Lien vers un dossier (image de dossier avec une flèche) SI le type de fichier est différent dans les autres dossiers, alors cela est visible dans les colonnes A/B/C et dans la fenêtre affichant les détails concernant les éléments sélectionnés. Notez que dans un cas comme cela aucune opération de fusion ne peut être sélectionnée automatiquement. Quand une fusion est démarrée, alors l'utilisateur sera informé de problèmes de ce type. Les colonnes A/B/C et le système de coloration Comme cela peut être vu dans l'image ci-dessous les couleurs rouge, vert, jaune et noir sont utilisées dans les colonnes A/B/C. Noir : Cela ne semble pas exister dans ce dossier. Vert : Élément le plus récent. Jaune : Plus vieux que le vert, plus récent que le rouge. Rouge : Élément le plus ancien. Mais pour les éléments qui sont identiques dans la comparaison leur couleur est aussi identique même si leur âge ne l'est pas. Les dossiers sont considérés comme égaux si tous les éléments qu'ils contiennent sont égaux. Alors ils auront aussi la même couleur. Mais l'âge d'un dossier n'est pas considéré pour sa couleur. L'idée pour le schéma de coloration vient de dirdiff. Les couleurs ressemblent aux couleurs d'une feuille d'un arbre qui est verte au printemps, puis devient jaune à l'automne pour devenir rouge à l'hiver. La colonne d'opération Après avoir comparé les dossiers, KDiff3 évalue aussi une proposition pour l'opération de fusion. Cela est affiché dans la colonne "Opération". Vous pouvez modifier l'opération en cliquant sur l'opération que vous voulez changer. Un petit menu se déroulera vous permettant de sélectionner une opération pour cet élément. (Vous pouvez aussi sélectionner les opérations les plus importantes via le clavier. Ctrl+1/2/3/4/Del sélectionnera ainsi respectivement A/B/C/Fusion/Suppression (si disponibles). Cette opération sera exécutée durant la fusion. Cela dépend de l'élément et du mode de fusion dans lequel vous êtes. Le mode de fusion est un des modes qui suit Fusion à trois dossiers ("A" est considéré comme la base des deux autres). Fusion de deux dossiers. Deux dossiers en mode synchronisé (activé via l'option "Synchroniser les dossiers"). Dans le cas d'une fusion à trois dossiers l'opération proposée sera : Si pour un élément ... ... les trois dossiers sont égaux : Copie depuis C ... A et C sont égaux mais B ne l'est pas : Copier depuis B (ou si B n'existe pas, supprimer la destination si elle existe) ... A et B sont égaux mais C ne l'est pas : Copier depuis C (ou si C n'existe pas, supprimer la destination si elle existe) ... B et C sont égaux mais A ne l'est pas : Copier depuis C (ou si C n'existe pas, supprimer la destination si elle existe) ... seul A existe : Supprimer la destination (si elle existe) ... seul B existe : Copier depuis B ... seul C existe : Copier depuis C ... A, B et C ne sont pas égaux : Fusion ... A, B et C n'ont pas le m me type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des éléments comme ceux-ci existent la fusion de dossiers ne peut pas commencer. Dans la fusion à deux dossiers, l'opération proposée sera : Si pour un élément ... les deux dossiers sont égaux : Copier depuis B ... A existe, mais pas B : Copier depuis A ... B existe, mais pas A : Copier depuis B ... A et B existent mais ne sont pas égaux : Fusion ... A, et B n'ont pas le même type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des éléments comme ceux-ci existent la fusion de dossiers ne peut pas commencer. Le mode de synchronisation est actif si il n'y a que deux dossiers, qu'aucune destination explicite n'a été spécifiée et que l'option "Synchroniser les dossiers" est active. KDiff3 sélectionne alors une opération par défaut pour que les deux dossiers soient les m mes après-coup. Si pour un élément ... ... les deux dossiers sont égaux : Rien ne sera fait. ... A existe, mais pas B : Copier A vers B ... B existe, mais pas A : Copier B vers A ... A et B existent, mais sont différents : Fusion et stockage du résultat dans les deux dossiers. Pour l'utilisateur le nom de fichier visible est B, mais alors KDiff3 copie aussi B vers A). ... A, et B n'ont pas le même type de fichier (par exemple A est un dossier, B un fichier : "Erreur : Conflit de types de fichiers". Tant que des éléments comme ceux-ci existent la fusion de dossiers ne peut pas commencer. Quand deux dossiers sont fusionnés et que l'option "Copier le plus récent à la place de fusionner" est sélectionnée, alors KDiff3 regardera les dates et proposera de choisir le fichier le plus récent. Si les fichiers ne sont pas égaux mais ont les mêmes dates alors l'opération contiendra "Erreur : Les dates sont les mêmes mais les fichiers ne le sont pas". Tant que des éléments comme ceux-ci existent la fusion ne pourra pas commencer. La colonne d'état Durant la fusion, les fichiers seront traités les uns après les autres. La colonne d'état affichera "Terminé" pour les éléments où l'opération de fusion s'est bien déroulée, et d'autres textes si une chose non attendue est arrivée. Quand une fusion est terminée, vous devriez faire une dernière vérification pour voir si l'état de tous les éléments est correct. Colonne de statistiques Quand le mode de comparaison de fichiers "Analyse complète" est activé dans les options, alors KDiff3 affichera des colonnes contenant le nombres de conflits non résolus, résolus et conflits d'espacement ou non. (La colonne résolu s'affichera seulement lors de la comparaison ou fusion de trois dossiers). Faire une fusion Vous pouvez soit fusionner l'élément sélectionné actuellement (fichier ou dossier), out tous les éléments. Quand vous aurez fait tous les choix (aussi dans les sous-dossiers) alors vous pourrez démarrer la fusion. Soyez conscient que si vous ne spécifiez pas de dossier de destination explicitement, alors la destination sera "C" dans le mode de fusion a trois dossiers, "B" dans le mode de fusion à deux dossiers, et dans le mode synchronisé, ce sera "A" ou/et "B" Si vous avez spécifié un dossier de destination vérifiez aussi que tous éléments devant être à la sortie, sont dans l'arborescence. Il y a quelques options qui font que certains éléments sont oubliés de la comparaison et la fusion de dossiers. Vérifiez ces options pour éviter des mauvaises surprises : "Dossiers récursifs" : Si cette option est désactivée, alors les éléments contenus dans les sous-dossiers ne seront pas trouvés. "Modèle"/"Anti-modèle" : Inclure/exclure les éléments qui correspondent "Exclure les fichiers cachés" "Ne lister que les différences" : Les fichiers qui sont identiques dans tous les dossiers n'apparaîtront pas dans l'arborescence, ni dans le dossier de destination. (Dans la version actuelle, vous devez rescanner via "Dossier"/"Rescan" vous même après avoir changé les options affectant le scan de dossiers). Si vous êtes satisfaits ici, le reste et simple. Pour fusionner tous les éléments : Sélectionnez "Démarrer/Continuer la fusion de dossiers" dans le menu "Dossier" ou appuyez sur la touche F7 (qui est le raccourci). Pour fusionner seulement l'élément actuel : Sélectionnez "Lancer l'opération pour l'élément actuel" ou appuyez sur F6. Si à cause de conflits de type de fichiers certains éléments portant des opérations non valables existent, alors un boîte de dialogue apparaîtra et certains de ces éléments seront pointés, pour que vous puissiez sélectionner une opération valable Si vous fusionnez tous les éléments, une fenêtre apparaîtra vous proposant de "Le faire", "Le simuler" ou "Annuler". Sélectionnez "Le simuler" si vous voulez voir comment cela serait sans le faire réellement. Une liste de toutes les opérations sera affichée. Sinon sélectionnez "Le faire" pour démarrer réellement la fusion. Alors KDiff3 lancera l'opération spécifiée pour tous les éléments. Si une interaction manuelle est nécessaire (fusion d'un seul fichier), alors une fenêtre de fusion s'ouvrira (voir la grosse capture d'écran). Quand vous en aurez terminé avec un fichier, sélectionnez de nouveau "Démarrer/Continuer la fusion de dossiers" ou utilisez la touche F7. SI vous n'avez pas encore enregistré les résultats, une fenêtre vous le proposera. Alors KDiff3 continuera avec l'élément suivant. Quand KDIff3 rencontre une erreur, il vous en informe et affiche l'information détaillée de l'état. Au bas de cette liste, il y aura quelques messages d'erreur qui vous aideront à comprendre la cause du problème. Quand vous continuerez la fusion, KDiff3 vous proposera de réessayer ou de sauter l'élément qui à causé le problème. Cela signifie qu'avant de continuer vous pouvez choisir une autre opération ou résoudre le problèmes par d'autres moyens. Quand la fusion est complète, alors KDiff3 vous informera via une boîte de dialogue. Si certains éléments ont été fusionnés individuellement, KDiff3 s'en rappellera (tant que la session de fusion continue), et ne fusionne pas ces éléments de nouveau plus tard quand la fusion de tous les éléments est lancée. Même si la fusion a été sautée ou si rien n'a été enregistré ces éléments sont comptés comme complétés. La fusion ne sera refaite que si vous changez l'opération de fusion de l'élément. Options pour la comparaison et la fusion de dossiers Les options de Kdiff3 (menu "Configuration"/"Configurer KDiff3...") ont maintenant une section appelée "Fusion de dossiers" contenant ces options : Dossiers récursifs :Sélectionner si il faut rechercher les dossiers récursivement. Modèle(s) de fichier :Seuls les fichiers qui correspondent à un modèle ici seront mis dans l'arborescence. Plus d'un modèle peut être spécifié en utilisant le point-virgule ";" comme séparateur. Les jokers valables sont '*' et '?' (par exemple pour "*.cpp;*.h". L'option par défaut est "*". Les dossiers ne seront pas reconnus par ce modèle. Anti-modèle(s) :Les fichiers et dossiers correspondants à cette règle seront exclus de l'arborescence. Plus d'un modèle peut être spécifié ici en utilisant le point-virgule ";" comme séparateur. Les jokers valides sont : '*' et '?'. Le modèle par défaut est "*.orig;*.o". Ignorer comme CVS :Ignorer les fichiers et dossiers qui seraient aussi ignorés par CVS. Beaucoup de fichiers générés automatiquement sont ignorés par CVS. Le gros avantage est que cela peut être spécifique à un dossier via un fichier local ".cvsignore". (Reportez-vous à info:/cvs/cvsignore). Trouver les fichiers et dossiers cachés :Sur certains systèmes de fichiers les fichiers ont un attribut "Caché". Sur d'autres un nom de fichier commençant par un point "." le cache. Cette option vous permet de décider si il faut inclure ces fichiers dans l'arborescence ou non. Option activée par défaut. Suivre les liens vers les fichiers :Pour les liens vers les fichiers : Quand cette option est désactivée, alors les liens symboliques sont comparés. Quand elle est activée, alors ce sont les fichiers situé derrière les liens qui sont comparés. Désactivée par défaut. Suivre les liens vers les dossiers :Pour les liens vers les dossiers : Quand désactivé, alors les liens symboliques seront comparés. Quand activée alors le lien sera traité comme un dossier et sera scanné récursivement. (Notez que le programme ne vérifie pas si le lien est "récursif". Si par exemple un dossier contenait un lien vers lui-même, cela causerait une boucle infinie, et après quelque temps il y aurait dépassement de tampon ou toute la mémoire serait utilisée, crashant le programme. Ne lister que les différences :Seuls les éléments qui ne sont pas égaux dans tous les dossiers seront listés et seuls les fichiers changés seront visibles. Ici les fichiers étant égaux dans tous les dossiers ne seront pas copiés durant une fusion, vous pouvez oublier quelques fichiers après. (Cette option a de fortes chances d'être changée dans une prochaine version). Désactivée par défaut. Mode de comparaison des fichiers : Comparaison binaireC'est le mode de comparaison de fichiers par défaut. Analyse complèteFaire une analyse complète de chaque fichier et afficher la colonne d'informations statistiques. (Nombre de conflits résolus, non résolus, d'espacement ou non). L'analyse complète est plus lente qu'une simple analyse binaire, et plus lente quand utilisée sur des fichiers ne contenant pas du texte. (Spécifiez les anti-modèles de fichiers appropriés). Croire la date de modification :Si vous comparez des gros dossiers sur un réseau lent, cela peut être plus rapide de ne comparer que les dates de modification et les longueurs des fichiers. Mais cette augmentation de vitesse comporte néanmoins un petit doute. Utilisez cette option avec précaution. Désactivée par défaut. Croire la taille :Identique à croire la date de modification. Pas de réelle comparaison, les deux fichiers sont considérés comme égaux si leur tailles sont égales. C'est utile lorsqu'une opération de copie ne conserve pas la date de modification. Utilisez cette option avec précaution. Désactivé par défaut. Synchroniser des dossiers :Active le "Mode synchroniser" quand deux dossiers sont comparés et qu'il n'y a pas de dossier de destination explicitement spécifié. Dans ce mode les opérations proposées seront choisies pour que les deux dossier sources soient égaux après coup. Aussi le résultat de la fusion sera écrit dans les deux dossiers. Désactivé par défaut. Copier le plus récent au lieu de fusionner :Au lieu de fusionner l'opération proposée sera copier la source la plus récente si des changements ont eu lieu. (Considéré comme peu sur, car cela implique la connaissance que l'autre fichier n'a pas été édité. Vérifiez le pour vous assurez dans tous les cas). Désactivé par défaut. Fichiers de sauvegarde :Si un fichier ou un dossier complet est remplacé par un autre ou est supprimé alors la version originale sera renommée avec une extension ".orig". Si un ancien fichier de sauvegarde portant l'extension ".orig" existe toujours alors il sera supprimé sans sauvegarde. Cela affecte aussi la fusion de simples fichiers, pas seulement le mode de fusion de dossiers. Activé par défaut. Autres fonctions Mode plein écran/écran partagé Habituellement la vue de la liste de fusion de dossiers reste visible quand un fichier simple est comparé ou fusionné. Avec la souris vous pouvez déplacer la barre de séparation qui sépare la liste de fichiers de la fenêtre de comparaison. Si vous ne voulez pas faire cela, vous pouvez désactiver "Scinder la fenêtre" Dans le menu "Dossier". vous pouvez aussi utiliser "Basculer la vue" dans le menu "Dossier" pour basculer entre la liste de fichiers et la fenêtre de comparaison qui occupait tout l'écran. Comparer ou Fusionner un simple fichier Probablement vous préférerez un simple double clic sur un fichier pour le comparer. Néanmoins il existe aussi une entrée dans le menu "Dossier". vous pouvez aussi fusionner directement un simple fichier, sans lancer la fusion de dossiers via "Fusionner un simple fichier" dans le menu "Dossier". A l'enregistrement des résultats l'état sera validé, et le fichier ne sera plus fusionné si une fusion de dossiers est démarrée. Mais notez que l'information de l'état sera perdue lorsque vous relancerez un scan de dossier via : "Dossier"/"Rescanner"
Sujets divers Transparence réseau via KIO KIO-Slaves KDE supporte la transparence réseau via KIO. KDiff3 utilise cela pour lire les fichiers en entrée ou scanner les dossiers. Cela signifie que vous pouvez spécifier des fichiers et des dossiers locaux ou distants via des URL. Exemple : kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp kdiff3 tar:/home/hacker/archive.tar.gz/dos /dos La première ligne compare un fichier local avec un fichier sur un serveur FTP. La seconde compare un dossier contenu dans une archive compressée a un dossier local. Les autres KIOslaves intéressants sont : Fichiers depuis le WWW (http:), Fichiers depuis un FTP (ftp:), Transfert de fichier crypté (fish;, sftp;), Ressources Windows (smb:), Fichiers locaux (file:), D'autres choses sont possibles, mais probablement moins utiles sont : Pages man (man:), Pages info (info:), Comment écrire des URLs Une URL a une syntaxe différence par rapport aux chemins pour les fichiers et dossiers locaux. Certains éléments doivent être considérés : Un chemin peut être relatif et contenir "." ou "..". Ce n'est pas possible pour les URL qui sont toujours absolues. Les caractères spéciaux doivent être écrits avec des espaces ("#"->"%23", espace >"%20", etc). Par exemple un fichier nommé "#foo#" aura l'URL "file:/%23foo%23". Quand les URLs ne fonctionnent pas comme attendu, essayez de les ouvrir tout d'abord avec Konqueror. Possibilités des KIO-Slaves La transparence réseau à un inconvénient : Toutes les ressources n'ont les mêmes possibilités. Parfois ceci est dû au système de fichiers du serveur, parfois au protocole. Voici une liste de restrictions : Parfois il n'y a pas de support des liens. Ou il n'y a pas moyen de distinguer si un lien pointe vers un fichier ou un dossier ; on estime que c'est toujours un fichier.(ftp :, sftp :). Ne peut pas toujours déterminer la taille des fichiers. Support limité des permissions. Il est impossible de modifier les permissions ou la date de dernière modification, les permissions ou la date de dernière modification d'une copie diffèrent donc de l'original. (Voir l'option "Croire la taille"). (Modifier les permissions ou la date de dernière modification n'est possible que pour les fichiers locaux). Utiliser &kdiff3; en tant que KPart &kdiff3; fait partie de KPart. Actuellement il implémente l'interface KParts::ReadOnlyPart. Son utilisation principale est en tant que visionneur de différences pour KDevelop. KDevelop démarre tout le temps par le visionneur de différences interne. Pour invoquer KDiff3, faites un clic droit sur le visionneur de différences et sélectionnez "Afficher dans KDiff3Part" depuis le menu contextuel. KDiff3 a normalement besoin de deux fichiers complets en entrée. Quand utilisé dans KPart, KDiff3 estimera que le fichier en entrée est un fichier patch dans le format unifié. KDiff3 retrouvera alors les noms de fichiers originaux depuis le patch. Au moins un des deux fichiers doit être disponible. Kdiff3 invoquera alors patch pour recréer le second fichier. Dans Konqueror, vous pouvez sélectionner un fichier patch et sélectionner "Aperçu dans"-"KDiff3Part" depuis le menu contextuel. Soyez conscient que cela ne fonctionnera pas si aucun des fichiers originaux n'est disponible, et que ce n'est pas fiable si les fichiers originaux ont changé depuis que le patch a été généré. Quand lancé à l'intérieur de KPart, KDiff3 ne propose qu'une comparaison à deux fichiers, une barre d'outils et un menu très petits. La fusion et la comparaison de dossiers n'est donc pas gérée. Foire Aux Questions &reporting.bugs; &updating.documentation; Pourquoi l'appeler "KDiff3" ? Des outils nommés "KDiff" et "KDiff2" (désormais appelé "Kompare") existent déjà. "KDiff3" suggère aussi qu'il peut fusionner comme l'outil "diff3" dans la collection des Outils Diff. Pourquoi le logiciel est-il sous licence GPL ? J'utilise les programmes GPL depuis très longtemps désormais et j'ai appris beaucoup de choses en jetant un oeil aux sources. Voici mon "Merci" à tous les programmeurs qui ont aussi ou qui feront aussi de même. Certains boutons ou fonctions sont manquantes. Quel est le problème ? Vous avez compilé depuis la source mais vous n'avez probablement pas spécifier le bon préfixe de KDE lors de la configuration. Par défaut configure veut installer dans /usr/local mais dans ce cas KDE ne peut trouver le fichier de ressource de l'interface utilisateur (c.é.d. kdiff3ui.rc). Le fichier README contient plus d'informations à propos du préfixe correct. Souvent les lignes similaires mais non identiques apparaissent côte à côte mais parfois pas. Pourquoi ? Les lignes ou seules les quantités d'espaces sont différentes sont traitées comme "égales", tandis qu'une différence d'un caractère seulement peut changer l'état des lignes en "différentes". Si des lignes similaires apparaissent côte à côte, c'est actuellement une coïncidence mais heureusement c'est souvent le cas. Pourquoi tous les conflits doivent-ils être résolus avant que le résultat de la fusion puisse être enregistré ? Pour chaque section égale ou différente, l'éditeur dans la fenêtre de résultat de la fusion se souvient ou elle commence ou se termine. Cela est nécessaire pour que les conflits puissent être résolus manuellement en sélectionnant simplement le bouton de source (A, B ou C). Cette information sera perdue quand vous enregistrerez un texte et c'est trop compliqué de créer un format de fichier spécial supportant l'enregistrement et la restauration de toutes les informations nécessaires. Pourquoi l'éditeur dans la fenêtre de résultat n'a pas de fonction "annuler" ? C'était très compliqué jusqu'à présent. Vous pouvez toujours restaurer une version depuis une source (A, B ou C) en cliquant sur le bouton respectif. Pour une édition importante, l'utilisation d'un autre éditeur comme Kwrite est recommandée. Quand j'ai supprimé du texte, soudainement, "<Pas de ligne de la source>" est apparu et ne peut être supprimé. Qu'est-ce que cela signifie et comment supprimer cela ? Pour chaque section égale ou différente, l'éditeur dans la fenêtre de résultat de fusion se souvient, de son début et de sa fin. "<Pas de ligne de la source>" signifie qu'il n'y a plus rien dans une section, même plus de caractère de nouvelle ligne. Cela peut apparaître soit lors de la fusion automatique ou lors de l'édition. Ce n'est pas un problème, étant donné que cela n'apparaîtra pas dans le fichier enregistré. Si vous voulez que la source originale réapparaisse, sélectionnez juste la section (un clic sur la colonne de résumé de gauche) et cliquez alors le bouton de source avec le contenu nécessaire (A/B ou C). Pourquoi KDiff3 ne supporte-t-il pas le surlignement des syntaxes ? KDiff3 utilise déjà beaucoup de couleurs pour le surlignement des différences. Plus de surlignement amènerait de la confusion. Utilisez un autre éditeur pour cela. Il y a beaucoup d'informations ici, mais votre question ne trouve toujours pas de réponse ? Veuillez m'envoyer vos questions. J'apprécie chaque commentaire. Remerciements et licence &kdiff3; - Outil de Comparaison et de Fusion de Fichiers et Dossier Programme protégé par copyright 2002-2004 Joachim Eibl joachim.eibl at gmx.de Beaucoup de bonnes idées et de rapports de bogue viennent de collègues et de beaucoup d'inconnus du Web. Merci ! Documentation Copyright © 2002-2004 Joachim Eibl joachim.eibl at gmx.de &traducteurSimonDepiets; &underFDL; &underGPL; Installation Comment obtenir &kdiff3; Vous pouvez télécharger la dernière version de KDiff3 depuis sa page web http://kdiff3.sourceforge.net. KDiff3 est aussi disponibles sur d'autres plates-formes. Veuillez vous reporter à la page web pour plus de détails. Configuration minimale Pour utiliser avec succès toutes les fonctionnalités de &kdiff3;, vous aurez besoin de &kde; >3.1. Pour plus d'informations sur le lancement de KDiff3 sur d'autres plates-formes sans KDE, veuillez vous reportez à la page web. Vous pouvez trouver une liste des changements surhttp://kdiff3.sourceforge.net/ChangeLog ou dans le fichier "ChangeLog" de la source. Compilation et Installation Pour compiler et installer &kdiff3; sur un système avec KDE, saisissez ce qui suit dans le dossier de base de votre dossier de &kdiff3; : % ./configure --prefix=dos-kde % make % make install dos-kde spécifie le dossier contenant KDE sur votre système. Si vous ne connaissez pas celui-ci, lisez le fichier README pour les détails. Étant donné que &kdiff3; utilise autoconf et automake vous ne devriez pas avoir de problèmes à les compiler. Si vous rencontriez des problèmes, veuillez les reporter aux listes de diffusion &kde;. &documentation.index;
kdiff3-0.9.97/doc/fr/CMakeLists.txt0000644000175100001440000000013511626145653016244 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/fr SUBDIR kdiff3) kdiff3-0.9.97/doc/da/0000755000175100001440000000000011626145654013463 5ustar joachimuserskdiff3-0.9.97/doc/da/index.docbook0000644000175100001440000033751311626145653016147 0ustar joachimusers KDiff3"> ]> &kdiff3;-håndbogen Joachim Eibl
joachim.eibl snabela gmx.de
&erik.kjaer.pedersen.role;
2002-2006 Joachim Eibl &FDLNotice; 2006-05-14 0.9.90 &kdiff3; er et værktøj til sammenligning og sammenfletning af filer og mapper, som sammenligner og fletter to eller tre tekst-inddatafiler eller mapper sammen, viser forskellen linje-for-linje og tegn-for-tegn(!), sørger for en automatisk sammenfletningsfunktion, har en editor til behagelig løsning af sammenfletningskonflikter, tilbyder netværksgennemsigtighed via KIO, har valgmuligheder til at fremhæve eller skjule ændringer i blanke tegn eller kommentarer, understøtter Unicode, UTF-8 og andre tegnsæt, udskriver forskelle, understøtter versionshåndteringsnøgleord og historiksammenfletning. Dette dokument beskriver &kdiff3; version 0.9.98. KDE kdeextragear kdiff3 diff sammenflet CVS trippelsammenligning sammenlign filer mapper versionskontrol trevejs sammenfletning forskelle i linje synkronisér kpart kio netværksgennemsigtighed editor blanke tegn kommentarer
Indledning Endnu en sammenligningsgrænseflade? Der eksisterer flere grafiske sammenligningsværktøjer. Hvorfor skal du vælge &kdiff3;? Lad mig fortælle dig hvorfor jeg skrev det. &kdiff3; blev påbegyndt fordi jeg var tvunget til at lave en svær sammenfletning. At sammensætte er nødvendigt når flere personer arbejder med samme fil i et projekt. En sammenfletning kan være delvis automatiseret, når sammenfletningsværktøjet ikke kun har adgang til de nye ændrede filer (som kaldes "grene"), men også originalfilen (som kaldes "basis"). Sammenfletningsværktøjet vælger automatisk en ændring som kun er udført i en gren. Når flere bidragydere ændrer samme linjer, detekterer sammenfletningsværktøjet en konflikt som skal løses manuelt. Sammenfletningen var svær eftersom en bidragyder havde ændret meget og rettet indrykningen mange steder. Den anden bidragydere havde også ændret meget tekst i samme fil, hvilket forårsagede flere konflikter ved sammenfletningen. Værktøjet som jeg dengang brugte viste kun ændrede linjer, men ikke hvad der var ændret indenfor linjen. Der fandtes heller ikke nogen information om hvor kun indrykningen var ændret. Sammenfletningen var et mindre mareridt. Det var altså begyndelsen. Den første version kunne vise forskelle på en linje, og viste forskelle i blanke tegn. Senere kom mange andre funktioner til for at øge brugbarheden. Hvis du for eksempel hurtigt vil sammenligne en tekst, kan du kopiere den til klippebordet og indsætte den i et af sammenligningsvinduerne. En funktion som krævede en stor anstrengelse var funktionen for mappesammenligning og sammenfletning, som gjorde programmet til en næsten fuldstændig filsøger. Jeg håber at &kdiff3; også virker for dig. Hav det sjovt! Joachim Eibl (2003) Skærmaftryk og funktioner Dette skærmaftryk viser forskellen mellem to tekstfiler (Med en tidlig version af &kdiff3;): Trevejs sammenfletning understøttes fuldstændigt. Dette er nyttigt hvis to personer ændrer kode uafhængig af hinanden. Originalfilen (basen) bruges til at hjælpe &kdiff3; med automatisk at vælge de rigtige ændringer. Sammenfletningseditoren under diff-vinduerne lader dig løse konflikter, mens uddata du vil få vises. Skærmbilledet viser tre inddatafiler som er ved at blive flettet sammen: &kdiff3; hjælper dig også med at sammenligne og sammenflette hele mapper. Dette skærmaftryk viser &kdiff3; under en mappesammenfletning: Flere funktioner Linje-for-linje og tegn-for-tegn sammenligningsvisning Ved at bruge mulighederne en grafisk farveskærm har, viser &kdiff3; nøjagtigt hvad forskellene er. Når du skal lave mange kodegennemgange, vil du kunne lide dette. Se forskelle i blanke tegn med et blik Mellemrum og tabulatorer som er forskellige ses. Når linjer kun er forskellige i mængden af blanke tegn ses det med et blik i sammendragssøjlen til venstre. (Ikke flere problemer hvis nogen ændrer indrykningen.) Trevejssammenligninger Analysér tre filer og se hvor de adskiller sig. Venstre/midt/højre vindue kaldes A/B/C og har blå/grøn/magenta farve. Hvis en fil er den samme og en anden anderledes for en linje, så viser farverne hvilken fil der er anderledes. Den røde farve betyder at begge de andre filer er forskellige. Bekvem sammenfletning af to eller tre inddatafiler &kdiff3; kan bruges til at sammenflette to eller tre inddatafiler og sammenfletter automatisk så meget som muligt. Resultatet vises i et redigerbart vindue hvor de fleste konflikter kan løses med et enkelt museklik. Vælg knapperne A/B/C i værktøjslinjen for at vælge kilden som skal bruges. Du kan også vælge mere end en kilde. Eftersom udskriftsvinduet er en editor, kan til og med konflikter som behøver yderligere korrigering løses her uden at kræve et andet værktøj. Og ... Hurtig navigering via knapper. Et museklik i sammendragssøjlen synkroniserer alle vinduer så samme position vises. Markér og kopiér fra hvilket som helst vindue, og indsæt i resultatvinduet for sammenfletning. Oversigtssøjle som viser hvor ændringer og konflikter er. Farverne kan justeres efter dine specifikke ønsker. Justerbar fanebladsstørrelse. Valgmulighed for at indsætte mellemrum i stedet for tabulatortegn. Åbn filer bekvemt via dialoger, eller angiv filnavn på kommandolinjen. Søg efter strenge i alle tekstvinduer. Find (Ctrl-F) og Find næste (F3). Vis linjenummer for hver linje. Indsæt klippebordet eller træk tekst til et inddatavindue for sammenligning Netværksgennemsigtighed via KIO. Kan bruges som en forskelsviser i KDevelop 3. Tekstombrydning af lange linjer. Støtte for Unicode, UTF-8 og andre kodninger. Støtte for sprog som læses fra højre til venstre. ... Filsammenligning og fletning Kommandolinjeflag Sammenlign to filer: kdiff3 fil1 fil2 Sammenflet to filer: kdiff3 fil1 fil2 -m kdiff3 fil1 fil2 -o uddatafil Sammenlign tre filer: kdiff3 fil1 fil2 fil3 sammenflet tre filer: kdiff3 fil1 fil2 fil3 -m kdiff3 fil1 fil2 fil3-o uddatafil Bemærk at fil1 behandles som basis for fil2 og fil3. Specialtilfælde: Filer med samme navn Hvis alle filer har samme navn men er i forskellige mapper, kan du reducere hvor meget du skal skrive ved kun at angive filnavnet for den første fil. ⪚: kdiff3 kat1/filnavn kat2 kat3 Kommandolinje for at starte en mappesammenligning eller sammenfletning: Dette er meget lignende, men nu drejer det sig om mapper. kdiff3 kat1 kat2 kdiff3 kat1 kat2 -o målkat kdiff3 kat1 kat2 kat3 kdiff3 kat1 kat2 kat3-o målkat For mappesammenligning og sammenfletning kan du fortsætte med at læse her. Andre kommandolinjeflag For at se alle tilgængelige kommandolinjeflag, skriv kdiff3 --help Eksempeluddata: Vælgare: -m, --merge Sammenflet inddata. -b, --base file Eksplicit basisfil. For at virke sammen med visse værktøjer. -o, --output file Uddatafil. Betyder underforstået -m. F.eks.: -o ny_fil.txt --out file Uddatafil, igen. (for at virke med visse værktøjer.) --auto Ingen grafisk grænseflade hvis alle konflikter kan løses automatisk (kræver -o fil) --qall Løs ikke konflikter automatisk. (For at virke med andre værktøjer...) --L1 alias1 Synlig erstatning af navn for inddatafil 1 (basis). --L2 alias2 Synlig erstatning af navn for inddatafil 2. --L3 alias3 Synlig erstatning af navn for inddatafil 3. -L, --fname alias Alternativ synlig erstatning af navn. Angiv dette en gang for al inddata. --cs string Sæt en indstilling ud af kraft. Anvend en gang for hver indstilling, f.eks. --cs "AutoAdvance=1" --confighelp Vis liste med indstillinger og nuværende værdier. --config file Anvend en anden indstillingsfil. Flaget lader dig justere et indstillingstilvalg som ellers kun kan justeres via indstillingsdialogerne. Men vær klar over at når &kdiff3; afsluttes opbevares den ændrede værdi sammen med andre indstillinger. Med kan du finde ud af navnene på tilgængelige tilvalg og nuværende værdier. Via kan du angive en anden indstillingsfil. Hvis du ofte bruger &kdiff3; med helt forskellige indstillinger tillader dette dig nemt at skifte mellem dem. Kommandolinjeflag som ignoreres Mange personer vil bruge &kdiff3; sammen med et versionshåndteringssystem, men når versionshåndteringssystemet kalder &kdiff3; med kommandolinjeflag som &kdiff3; ikke genkender, afsluttes &kdiff3; med en fejl. Integrationsindstillingerne gør det muligt at angive kommandolinjeflag som skal ignoreres af &kdiff3;. De vises i brugshjælpen som i dette eksempel: --foo Ignoreres. (brugerdefineret) Kommandolinjeflag at ignorere:En liste med flag, adskilte med semikolon ';'. Når et af disse flag findes på kommandolinjen, ignorerer &kdiff3; det og kører uden at rapportere en fejl. (Standard er "u;query;html;abort"). Hvis dette ikke er nok, anbefales du at skrive et skalscript som udfører oversættelsen af flag. Dialogen Åbn Eftersom mange inddatafiler skal kunne vælges, har programmet en særlig åbningsdialog: Åbningsdialogen tillader at filnavnene redigeres i hånden, at en fil vælges via filsøgeren ("Fil...") eller at nyligt brugte filer vælges i dropned-feltet. Hvis du åbner dialogen igen, eksisterer de nuværende navne stadigvæk der. Den tredje inddatafil kræves ikke. Hvis feltet for "C" forbliver tomt, udføres kun en tovejs sammenligninganalyse. Du kan også vælge en mappe med "Mappe...". Hvis en mappe angives for A, starter en mappesammenligning og sammenfletning. Hvis A angiver en fil, men B, C eller udskriften angiver en mappe, bruger &kdiff3; filnavnet fra A i de angivne mapper. Hvis "Sammenflet" er valgt, bliver linjen "Udskrift" redigerbar. Det kræves dog ikke at uddatafilens navn angives med det samme. Du kan også vente med dette til du gemmer. Knappen "Indstil.." viser indstillingsdialogen, så du kan indstille tilvalgene inden analysen udføres. Indsæt eller slip inddata Sommetider vil du sammenligne dele af en tekst som ikke er en egen fil. &kdiff3; lader dig også indsætte tekst fra klippebordet i det inddatavindue for sammenligning som har fokus. Sammenligningsanalysen sker så med det samme. I åbningsdialogen behøver du så ikke at angive filer, men kun at lukke den via "Annullér". Du kan også bruge træk og slip: Træk en fil fra en filhåndtering eller markeret tekst fra en editor og slip den på et inddatavindue til sammenligning. Hvad er idéen? Sommetider indeholder en fil to lignende funktioner, men at kontrollere hvor ens de virkelig er bliver en stor anstrengelse hvis du først skal oprette to filer og derefter indlæse dem. Nu kan du helt enkelt kopiere, indsætte og sammenligne de relevante afsnit. Bemærk: For øjeblikket kan du ikke trække noget fra &kdiff3;. Det understøttes kun at slippe inddata i sammenligningvinduet. Advarsel: Visse editorer tolker stadigvæk træk og slip til et andet program som klip ud (i stedet for kopiér) og indsæt. De oprindelige data kan derfor gå tabt. Sammenlign filer og tolke informationen i inddatavinduerne InformationslinjeLængst oppe i hvert tekstvindue er dets "informationslinje". Informationslinjerne i inddatavinduet indeholder bogstaven "A", "B" eller "C", filnavnet og linjenummeret for den første synlige linje i vinduet. (Bemærk at vinduet "C" er valgfrit.) Hver informationslinje vises i en egen farve. Når du vælger en anden fil ved at bladre eller afslutter at redigere filnavnet her ved at trykke på returtasten, indlæses den nye fil og sammenlignes med filen eller filerne som allerede er indlæste. FarvelægningDe tre inddatavinduer tildeles bogstaverne "A", "B" og "C". "A" har blå farve, "B" har grøn farve og "C" har magenta. (Dette er standardfarver, men de kan ændres via menuen Opsætning.) Når en forskel opdages viser farven hvilken inddatafil som adskiller sig. Når begge de øvrige inddatafiler adskiller sig, er farven som bruges for at udtrykke dette normalt rød ("Konfliktfarve" i indstillingerne). Dette farvelægningsmønster er særlig nyttigt i tilfældet med tre inddatafiler, som ses i næste afsnit (Sammenfletning). SammenfatningssøjleTil venstre for hver tekst er "sammendragssøjlen". Hvis forskelle opstod på en linje, viser sammendragssøjlen tilsvarende farve. For en forskel som kun består af blanke tegn er sammendraget afkrydset. For programmeringssprog, hvor blanke tegn ikke er så vigtige er det nyttigt at se med et blik om noget af vigtighed er ændret. (For C/C++ er blanke tegn kun interessante inde i strenge, i kommentarer, for præprocessoren og i nogle meget esoteriske situationer.) Den lodrette linje som adskiller sammendragssøjlen og teksten er afbrudt hvis inddatafilen ikke har nogen linjer der. Når tekstombrydning er aktiveret så vil denne linje se prikket ud for ombrudte linjer. OversigtssøjlePå højre side er en "oversigtssøjle" synlig til venstre for den lodrette rullebjælke. Den viser et komprimeret sammendrag af inddata "A". Alle forskelle og konflikter er synlige med et blik. Når kun to inddatavinduer bruges, ses alle forskelle i rødt her, eftersom alle forskelle også er konflikter. Et sort rektangel indrammer den synlige del af inddata. For meget lange inddatafiler, hvor antallet af inddatalinjer er større end højden på oversigten i billedpunkter, deler flere inddatalinjer en oversigtslinje. En konflikt har prioritet over enkle forskelle, som har prioritet over ingen ændringer, så ingen forskelle eller konflikter går tabte her. Ved at klikke på oversigtssøjlen vises den tilsvarende tekst. Justér linjer manueltSommetider placerer algoritmen forkerte linjer ved siden af hinanden, eller du vil sammenligne et stykke tekst med tekst på en helt anden position i den anden fil. I disse tilfælde kan du manuelt fortælle &kdiff3; at visse linjer skal arrangeres i bestemte linjer linje. Markér teksten som du vil arrangere med musen, som du ville gøre ved kopi og indsæt, i det første diff-vindue og vælg derefter "Tilføj manuel justering af sammenligning" i menuen "Sammenligning" (genvejstasten "Ctrl+Y"). En orange linje vises i sammenfatningssøjlen udfor den markerede tekst. Gentag det for den anden og (hvis tilgængelig) tredje sammenligningsvisning. &kdiff3; genberegner med det samme sammenligningen hver gang du gør det, og justerer de markerede linjer. Naturligvis matcher nogle af linjerne tidligere matchede ikke længere. For øjeblikket understøttes ikke sammenfletning ved brug af manuel hjælp til sammenligning. Sammenfletning og editorvinduet for sammenfletning af uddata Editorvinduet for sammenfletning af uddata (under inddatavinduet for sammenligning) har også en informationslinje længst oppe som viser "Uddata", filnavnet og "[Ændret]" hvis du har redigeret noget. Oftest indeholder det en tekst fra de automatiske sammenfletningsfunktioner, men det indeholder også ofte konflikter. Gem er deaktiveret indtil alle konflikter er løst!!! (Brug knapperne "Gå til foregående/næste uløste konflikt" for at finde de tilbageværende konflikter.) Med kun to filer er hver forskel også en konflikt, som skal løses manuelt. Med tre inddatafiler behandles den første som basis, mens den anden og tredje inddatafil indeholder ændringer. Hvis kun inddata B eller C er ændret for en vis linje, men ikke begge vælges den ændrede kilde automatisk. Kun hvis B og C er ændret på samme linjer, detekterer værktøjet en konflikt som skal løses manuelt. Når B og C er ens, men ikke det samme som A, vælges C.  SammenfatningssøjlenEditorvinduet for sammenfletning af uddata har også en sammendragssøjle til venstre. Den viser bogstaverne for inddata fra hvilken linjen valgtes, eller ingenting hvis alle tre kilder var ens for linjen. Ved konflikter viser den et spørgsmålstegn "?" og linjen viser "< Konflikter ved sammenfletning >", alt med rødt. Eftersom det ville tage meget lang tid at løse konflikter linje for linje, grupperes linjer i grupper som har samme forskelle og konfliktkarakter. Konflikter med kun blanke tegn adskilles dog fra andre konflikter for at forbedre sammenfletningen af filer hvor indrykningen er ændret på mange linjer. Indstil nuværende gruppe og synkronisér sammenfletnings- og sammenligningsvisningen positionNår du klikker på sammenfatningssøjlen med venstre museknap i et af vinduerne, så markeres gruppen som hører til den linje i alle vinduer og gruppens begyndelse vises. (Dette kan indebære et automatisk skift af position i vinduerne hvis gruppens begyndelse ikke ses.) Gruppen bliver så til den "nuværende gruppe". Den markeres med "Baggrundsfarven for nuværende sammenligningsområde" og en sort linje vises til venstre for teksten. Vælg inddata A, B eller C for nuværende konflikt og redigeringKnaplinjen under menulinjen indeholder tre knapper for inddatavalg som indeholder bogstaverne "A", "B" og "C". Klik på knappen for inddatavalg for at indsætte linjer (eller fjerne dem hvis de allerede er indsat) fra de respektive kildefil. For at vælge linjer fra flere inddatafiler klikkes på de respektive knapper i den nødvendige rækkefølge. Hvis du for eksempel ønsker at linjer fra "B" skal havne før linjer fra "A" i uddata, klikkes først på "B" og derefter på "A". Hvis du bruger tilvalget automatisk at gå videre (Gå automatisk til næste uløste konflikt efter valg af kilde), skal du deaktivere dette inden du vælger linjer fra flere inddatafiler eller hvis du vil redigere linjerne efter du valgt dem. Ellers går &kdiff3; til næste konflikt efter den første inddatafil er valgt. Det er ofte nyttigt direkte at redigere sammenflettet uddata. Sammenfatningssøjlen viser "m" for hver linje som er ændret manuelt. Når forskellene for eksempel justeres på en måde så et enkelt valg af inddata ikke er tilfredsstillende, kan du markere teksten som behøves og bruge normal kopiér og indsæt for at placere den i sammenflettet uddata. Sommetider, når en linje fjernes enten på grund af automatisk fletning eller ved redigering og ingen andre linjer er tilbage i gruppen, vises teksten <No src line> på linjen. Det er kun en pladsmarkør for gruppen hvis du ændrer mening og vælger en kilde igen. Teksten ses ikke i gemte filer eller i nogen markeringer som du vil kopiere og indsætte. Teksten "<Merge Conflict>" vises i klippebordet hvis du kopierer og indsætter noget tekst som indeholder en sådan linje. Men vær satdig forsigtig med at gøre det. Vælg inddata A, B eller C for alle konflikterDen normale sammenfletning vil starte med at løse simple konflikter automatisk. Men "Flet"-menu sørger for handlinger for andre almindelige behov. Hvis du skal vælge samme kilde for de fleste konflikter, så kan du vælge"A", "B" eller "C" overalt, eller kun for de tiloversblevne uløste konflikter, eller for uløste konflikter med blanke tegn. Hvis du ønsker at afgøre hver lille forskel selv, kan du "Sætte lille forskel til konflikt". Eller hvis du ønsker at vende tilbage de automatiske valg udført af &kdiff3; så vælg "Løs simple konflikter automatisk". &kdiff3; starter så sammenfletningen forfra. For handlinger der ændrer dine tidligere ændringer vil &kdiff3; bede om bekræftelse før den går videre. Bemærk: Når en af kilderne for uløste konflikter med blanke tegn vælges og tilvalgene "Ignorér tal" eller "Ignorér C/C++ kommentarer" bruges så bliver ændringer i tal eller kommentarer også behandlet som blanke tegn. Sammenflet automatisk nøgleord for versionshåndtering og historik (log)Mange versionskontrolsystemer understøtter specielle nøgleord i filen. (f.eks. "$Date:$", "$Header$", "$Author$", "$$" osv.) Ved check-in ændrer versionskontrolsystemet (VCS) disse linjer. For eksempel bliver "$Date:$" til "$ Date:2005/03/22 18:45:01 $". Idet denne linje vil være forskellig i hver version af filen, ville det kræve manuel interaktion under sammenfletningen. &kdiff3; tilbyder automatisk sammenfletning af disse indgange. For enkle linjer som matcher tilvalget "Regulært udtryk for automatisk sammenfletning" i alle inddatafiler vælger &kdiff3; linjen fra B, eller om tilgængelig, den fra C. (Desuden er det nødvendigt at linjerne det drejer sig om linjes op i sammenligningen og at foregående linje ikke indeholder en konflikt.) Den automatiske sammenfletning kan enten udføres med det samme når sammenfletningen startes (aktivér tilvalget "Kør automatisk sammenfletning med regulært udtryk når sammenfletning starter") eller senere via "Kør automatisk sammenfletning med regulært udtryk" i menuen Sammenflet. Automatisk sammenfletning for versionshåndteringshistorik (også kaldet "log") understøttes også. Automatisk sammenfletning af historik kan enten udføres med det samme når sammenfletningen startes ved at aktivere tilvalget "Sammenfletning ifølge versionshåndteringshistorik når sammenfletning starter" eller senere via "Løs automatisk historikkonflikter" i menuen Sammenflet. Oftest begynder versionshåndteringshistorikken med en linje som indeholder nøgleordet "$Log$". Den skal matches af tilvalget "Regulært udtryk for historikkens begyndelse". &kdiff3; detekterer hvilke efterfølgende linjer som indgår i historikken ved at analysere de indledende tegn som fandtes før nøgleordet "$Log$". Hvis samme "indledende kommentar" også findes på følgende linjer inkluderes de også i historikken. Ved hver arkivering skriver VCS en entydig linje som angiver version, dato- og tidsinformation fulgt af linjer med brugerens kommentarer. Disse linjer udgør en historikindgang. Historikafsnittet vokser ved hver arkivering og de seneste indgange vises længst oppe (efter historikkens startlinje). Når to udvikler arkiverer grene af en fil under parallel udvikling, kommer historikken for sammenfletning til at indeholde flere indgange som vises som konflikter under sammefletning af grenene. Eftersom sammenfletning af dem kan blive meget trættende, tilbyder &kdiff3; understøttelse for den med to mulige strategier: Blot indsætte historikinformationen fra begge bidragsyderne længst oppe, eller sortere historikinformationen ifølge en brugerdefineret nøgle. Metoden kun at indsætte alle indgange er nemmest at indstille. &kdiff3; behøver kun en metode til at detektere hvilke linjer som hører til en historikindgang. De fleste VCS indsætter en tom linje efter hver historikindgang. Hvis der ikke findes andre tomme linjer, er det en tilstrækkelig betingelse for &kdiff3;. Angiv blot et tomt "Regulært udtryk for historikkens begyndelse". Hvis kriteriet med en tom linje ikke er tilstrækkeligt kan du angive et regulært udtryk for at detektere historikindgangen begyndelse. Bemærk at &kdiff3; fjerner duplikerede historikindgange. Hvis en historikindgang blev fundet flere gange i en inddatafils historik, forbliver kun en indgang i uddataen. Hvis du vil sortere historikken skal du angive hvordan sorteringsnøglen skal bygges. Brug parenteser som i "Regulært udtryk for historikindgangens begyndelse" for at gruppere dele af det regulære udtryk som senere skal bruges i sorteringsnøglen. Angiv derefter "Sorteringsnøglernes rækkefølge fra historikindgangens begyndelse" med en liste af tal som refererer til gruppens position i det regulære udtryk adskilt af kommategn ",". Eftersom det ikke er så enkelt at få det rigtigt med det samme, kan du teste og forbedre det regulære udtryk og nøglegenereringen i en særlig dialog ved at klikke på knappen "Test dine regulære udtryk". Antag at historikken ser ud så her: /************************************************************************** ** HISTORIK: $Log: \toms_sammenfletning_hovedvisning\Mit_program\kode\komplexalgoritm.cpp $ ** ** \head\integreringsgren_12 2 Apr 2001 10:45:41 tom ** Sammenflettede grenen simongren_15. ** ** \main\henry_felretningsgren_7\1 30 Mar 2001 19:22:05 henry ** Forbedrede hastigheden for delrutinen forvandleTil(). ** Ordnede sammenbrud. **************************************************************************/ Historikkens indledende linje matcher det regulære udtryk ".*\$Log.*\$.*". Derefter følger historikindgangene. Linjen med nøgleordet "$Log$" begynder med to "*" og derefter følger et mellemrum. &kdiff3; bruger den første streng uden blanke tegn som "indledende kommentar" og antager at historikken slutter med den første linje uden denne indledende kommentar. I eksemplet slutter den sidste linje med en streng som også begynder med to "*", men i stedet for et mellemrum følger flere "*". Derfor afslutter denne linje historikken. Hvis sortering af historikken ikke kræves kan det regulære udtryk for historikindgangens begyndelsen se sådan her ud. (Linjen er delt i to eftersom den ikke ville få plads ellers.) \s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* For detaljer om regulære udtryk se Trolltechs dokumentation af regulære udtryk. Bemærk at "\s" (med et lille "s") matcher alle blanke tegn og "\S" (med et stort "S") matcher alle tegn som ikke er blanke. I vort eksempel indeholder historikindgangens begyndelse først versionsinformation med det regulære udtryk "\\main\\\S+", datoen som består af dagen "[0-9]+", månaden "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" og året "[0-9][0-9][0-9][0-9]", tiden "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" og til sidst udviklerens brugernavn ".*". Bemærk at den indledende kommentar (i eksemplet "**") allerede er fjernet af &kdiff3; inden matcheforsøget, derfor begynder det regulære udtryk med at matche et eller flere blanke tegn "\s*". Hvis du kræver sorteret historik skal sorteringsnøglen beregnes. For at gøre dette skal relevante dele i det regulære udtryk grupperes med parenteser. (De ekstra parenteser kan også forblive hvis historiksortering deaktiveres.) \s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) Parenteserne indeholder nu 1. versionsinformation, 2. dag, 3. måned, 4. år, 5. tid, 6. navn. Men hvis vi vil sortere efter dato og tid skal vi oprette en nøgle med elementerne synlige i en anden rækkefølge: Først året, fulgt af måned, dag, tid, versionsinformation og navn. Derfor skal sorteringsnøglens rækkefølge som angives være "4,3,2,5,1,6". Eftersom månednavne ikke er gode at sortere efter ("Apr" ville være først) detekterer &kdiff3; hvilken rækkefølge månednavnene angives og bruger dette nummer i stedet for ("Apr"->"04"). Og hvis et rent nummer findes forvandles det til en fireciffers værdi med indledende nuller for sortering. Endelig bliver den resulterende sorteringsnøgle for den første historikindgangens indledende linje: 2001 04 0002 10:45:41 integreringsgren_12 tom For mere information, se også Opsætning af sammenlign og sammenflet. Navigering og redigering Meget navigering gøres med rullelisterne og musen, men du kan også navigere med tastaturet. Hvis du klikker på et vindue kan du bruge markørtasterne venstrepil, højrepil, opadpil, nedadpil, Page Up, Page Down, Home, End, Ctrl+Home og Ctrl+End ligesom du kan i andre programmer. Sammenfatningssøjlen ved siden af inddatafilernes lodrette rulleliste kan også bruges til at navigere ved at klikke i den. Du kan også bruge musehjulet til at rulle opad og nedad. I editoren for fletning kan du også bruge andre taster til redigering. Du kan skifte mellem indsætnings- og erstatningstilstand med Insert-tasten. (Normaltilstanden er at indsætte.) Et klik med venstre museknap i en sammenfatningssøjle synkroniserer alle vinduer til at vise begyndelsen af samme gruppe af linjer (som forklaret i afsnittet Indstil nuværende gruppe og synkronisér sammenfletnings- og sammenligningsvisningens position). Værktøjslinjen indeholder også ni navigeringsknapper som du kan bruge til at gå til nuværendel/førsea/sidste forskel, til næste/foregående forskel (Ctrl+Nedadpil eller Ctrl+Opadpil), til næste/foregående konflikt (Ctrl+Page Down eller Ctrl+Page Up) eller til næste/foregående uløste konflikt. Bemærk at for &kdiff3; forbliver en "konflikt" som ikke automatisk blev løst ved start af sammenfletningen altid en "konflikt" også selvom den er løst. Deraf nødvendigheden af at skelne "uløste konflikter". Automatisk fortsættelse Der er også en knap som hedder "Gå automatisk til næste uløste konflikt efter valg af kilde" (automatisk fortsættelse). Hvis du aktiverer dette, så går &kdiff3; automatisk til næste uløste konflikt når en kilde vælges. Dette kan hjælpe til når du kun vil vælge en kilde. Når du behøver begge kilder, eller du vil redigere efter valget, bør du formodentlig slå dette fra. Inden &kdiff3; fortsætter til næste uløste konflikt, vises effekten af valget en kort tid. Denne forsinkelse kan justeres i indstillingerne under Sammenlign og sammenflet. Du kan angive Forsinkelse ved automatisk fortsættelse i millisekunder mellem 0 og 2000. Markér, kopiér og indsæt Inddatavinduerne viser ikke nogen markør, så markeringer skal udføres med musen, ved at klikke med venstre museknap på begyndelsen, holde museknappen nede og gå til slutningen, hvor museknappen slippes igen. Du kan også markere et ord ved at dobbeltklikke på det. I editoren for sammenfletningsuddata kan du også markere med tastaturet, ved at holde shift-tasten nede og navigere med piletasterne. Hvis markeringen overstiger det synlige område, kan du flytte musen over vindueskanterne, hvilket gør at &kdiff3; ruller i den retning. For meget store markeringer kan du også bruge navigationstasterne mens museknappen holdes nede. Brug f.eks. Page Up og Page Down for hurtigt at gå til en bestemt position. Slip museknappen på slutpositionen. For at markere alt i det nuværende vindue, bruges menuen "Redigér" -> Markér alt" (Ctrl+A). For at kopiere til klippebordet skal du trykke på knappen "Kopiér" (Ctrl+C eller Ctrl+Insert). Men der er et tilvalg som hedder "Kopiér automatisk markering". Hvis det er aktiveret, kopieres hvad du end vælger med det samme, og du behøver aldrig eksplicit kopiere. Men vær forsigtig når du bruger dette, eftersom klippebordets indhold kan ødelægges ved en fejl. "Klip" (Ctrl+X eller Shift+Delete) kopierer til klippebordet og fjerner den markerede tekst. "Indsæt" (Ctrl+V eller Shift+Insert) indsætter teksten på klippebordet ved markørens position eller i stedet for den nuværende markeringen. Hvis du indsætter i et af sammenligningsvinduerne vises klippebordets indhold i vinduet og sammenligningen genstartes med det samme. Dette er nyttigt hvis du hurtigt vil hente et stykke tekst et sted og sammenligne det med noget andet uden først at oprette filer. Gemmer At gemme tillades kun når alle konflikter er løste. Hvis filen allerede findes og tilvalget "Sikkerhedskopiér filer" er markeret, ændres originalversionens navn med tilføjelse af filendelsen .orig, og hvis en sådan fil allerede findes fjernes den. Når du afslutter eller starter en ny sammenligningsanalyse og data ikke er gemt endnu, spørger &kdiff3; om du vil gemme, annullere eller fortsætte uden at gemme. (&kdiff3; fanger ingen signaler, så hvis du "dræber" &kdiff3; går data tabt.) Linjeslut gemmes ifølge den normale metoden i det underliggende operativsystem. For Unix slutter hver linje med et nylinjetegn "\n", mens for Windows-baserede systemer slutter hvert linje med et returtegn og et nylinjetegn "\r\n". &kdiff3; beholder ikke linjeslut for inddatafilerne, hvilket også betyder at du ikke skal bruge &kdiff3; med binære filer. Søg efter strenge Du kan søge efter en streng i et hvilket som helst tekstvindue i &kdiff3;. Kommandoen "Søg..." (Ctrl+F) i menuen Redigér, viser en dialog som lader dig angive strengen at søge efter. Du kan også vælge de vinduer som skal søges. Søgning starter altid fra begyndelsen. Brug kommandoen "Søg igen" (F3) for at fortsætte til næste forekomst. Hvis du vælger at søge i flere vinduer, gennemsøges det første vindue fra begyndelsen til slutningen inden søgningen fortsætter fra begyndelsen i næste vindue, osv. Udskrift &kdiff3; understøtter udskrift af forskelle mellem tekstfiler. Kommandoen "Skriv ud..." (Ctrl+P) i menuen Fil viser en dialog som lader dig vælge printer og justere andre tilvalg. Der er flere muligheder for at justere området. Afhængig af forskellige udskriftsdialoger på forskellige operativsystemer, varierer metoden for at opnå valg af et vist område. Alle:Udskriv alt. Nuværende:Udskriv en side som begynder på den første synlige linje i vinduet. (På systemer uden dette tilvalg kan dette opnås ved at angive sidenummeret 10000 for udskrift.) Markering:Inden du vælger at udskrive, markeres tekst med musen (som for kopiere og indsætte) i et af sammenligningsvinduerne for at definere start- og slutlinje. Hvis ingen tekst er markeret i et af sammenligningsvinduerne, er dette tilvalg ikke tilgængeligt. (På systemer uden dette tilvalg kan dette opnås ved at angive sidenummeret 9999 for udskrift.) Område:Angiv første og sidste side. Andre vigtige indstillinger for udskrift tages fra de normale indstillinger: Skrifttype, tegnstørrelse Vis linjenummer Linjebrud Farver osv. Landskabsformatering anbefales også for udskrift. Tilvalg Tilvalg og listen med nylige filer gemmes når du afslutter programmet, og indlæses igen når du starter det. (Menuen Opsætning->Indstil KDiff3 ...) Skrifttype Vælg en skrifttype med fast bredde. (På visse systemer viser dialogen også skrifttyper med variabel bredde, men du bør ikke bruge dem.) Kursiv stil for forskelle:Hvis du markerer dette, vises tekstforskelle med kursiv versionen af den valgte skrifttype. Hvis skrifttypen ikke understøtter kursiv stil, gør dette ingenting. Farver Forgrundsfarve:Oftest sort. Baggrundsfarve:Oftest hvid. Baggrundsfarve for sammenligning:Oftest lysegrå. Farve A:Oftest mørkeblå. Farve B:Oftest mørkegrøn. Farve C:Oftest mørk magenta. Konfliktfarve:Oftest rød. Baggrundsfarve for nuværende område:Oftest lysegul. Baggrundsfarve for nuværende sammenligningsområde:Oftest mørkegul. Farve for manuelt valgte sammenligningsområder:Oftest orange. Farve for nyeste fil i mappesammenligning:Oftest grøn. Farve for ældste fil i en mappesammenligning:Oftest rød. Farve for middelgamle filer i en mappesammenligning:Oftest mørkegul. Farve for manglende filer i et mappesammenligning:Oftest sort. At ændre farverne for mappesammenligninger får ikke nogen virkning før end næste mappesammenligning startes. For systemer med kun 16 eller 256 farver er visse rene farver ikke tilgængelige. For sådanne systemer vælger knappen "Standard" en ren farve. Opsætning af editor Tabulator indsætter mellemrum:Hvis dette ikke er markeret, og du trykker på tabulatortasten, indsættes en tabulator, ellers indsættes et passende antal mellemrum. Tabulatorbredde:Kan justeres efter dine specielle behov. Normalværdien er 8. Automatisk indrykning:Når du trykker på Enter eller returtasten, bruges foregående linjes indrykning for den nye linje. Kopiere markering automatisk:Hver markering kopieres med det samme til klippebordet når dette aktiveres, og du behøver ikke kopiere den eksplicit. Stil for linjeafslutning:Når du gemmer kan du vælge den stil for linjeafslutning du foretrækker. Standardindstillingen er det almindelige valg for det operativsystem der bruges. Opsætning af sammenligning og fletning Når filer sammenlignes forsøger &kdiff3; først at matche linjer som er ens i alle inddatafiler. Det er kun under dette skridt at blanke tegn kan ignoreres. Det næste skridt sammenligner hver linje. Under dette skridt ignoreres blanke tegn ikke. Under sammenfletning ignoreres blanke tegn heller ikke. Behold returtegn:Visse editorer (på visse systemer) gemmer returtegn '\r' og nylinjetegn '\n' i slutningen på linjen, mens andre kun gemmer nylinjetegnet '\n'. Oftest ignorerer &kdiff3; returtegnet, men så ser filer som ikke har samme størrelse ens ud ved sammenligning side for side. Når dette tilvalg er markeret, gøres returtegn synlige, men behandles som blanke tegn. Dette tilvalg skal være slået fra under en sammenfletning. Standardværdien er fra. Ignorér cifre:Standardværdien er fra. Ciffertegn ('0'-'9','.','-') ignoreres under første del af analysen når linjematchningen udføres. Forskellene for resultatet vises alligevel, men de behandles som blanke tegn. Ignorér C/C++ kommentarer:Normalværdien er fra. Ændringer i kommentarer vil blive behandlet ligesom ændringer i blanke tegn. Ignorér versaltype:Standardværdien er fra. Ændringer i versaltilstand for tegn (såsom 'A' eller 'a') håndteres som ændringer i blanke tegn. Præprocessorkommando:Se næste afsnit. Præprocessorkommando for linjematchning:Se næste afsnit. Prøv hårdt:Prøv hårdt at finde selv små fejl. (Normalt slået til.) Det er formodentlig effektivt for komplicerede og store filer, og langsomt for meget store filer. Forsinkelse ved automatisk fortsættelse (ms):I automatisk fortsættelsestilstand angiver denne indstilling hvor længe resultatet for gruppen skal vises inden der hoppes til næste uløste konflikt. Blanke tegn 2/3-fil fletningsstandard:Løs automatisk alle konflikter for blanke tegn ved at vælge angiven fil. (Standardværdien er manuelt valg.) Nyttigt hvis blanke tegn virkelig ikke er vigtige i mange filer. Hvis du kun behøver det ind iblandt, er det bedre at bruge "Vælg A/B/C for uløste konflikter med blanke tegn" i menuen "Sammenflet". Bemærk at hvis du enten aktiverer Ignorér cifre eller "Ignorere C/C++ kommentarer" gælder det automatiske valg også ved konflikter for cifre eller kommentarer. Regulært udtryk for automatisk sammenfletning:Regulært udtryk for linjer hvor &kdiff3; automatisk skal vælge en kilde. Se også Automatisk sammenfletning ... Kør automatisk sammenfletning med regulært udtryk når sammenfletning starter:Hvis aktiveret udfører &kdiff3; den automatiske sammenfletning med "Regulært udtryk for automatisk sammenfletning" når en sammenfletning startes. Regulært udtryk for historikkens begyndelse:Regulært udtryk for begyndelsen af historikindgangen for sammenfletning. Som oftest indeholder linjen nøgleordet "$Log$". Standardværdi: ".*\$Log.*\$.*" Regulært udtryk for historikindgangens begyndelse:En historikindgang for sammenfletning består af flere linjer. Angiv det regulære udtryk for at detektere den første linje (uden indledende kommentar). Brug parenteser for at gruppere nøglerne du vil bruge til sortering. Hvis det efterlades tomt, antager &kdiff3; at tomme linjer skiller historikindgangene ad. Se også Automatisk sammenfletning ... Sortering af historiksammenfletning:Aktivér sortering af versionshåndteringshistorik. Sorteringsnøglernes rækkefølge fra historikindgangens begyndelse:Hver parentes som bruges i det regulære udtrykket for historikkens startindgang grupperer en nøgle som kan bruges til sortering. Angiv listen med nøgler (som nummereres i rækkefølge de optræder med begyndelsen på 1) med ',' som skilletegn (f.eks. "4,5,6,1,2,3,7"). Hvis det efterlades tomt udføres ingen sortering. Se også Automatisk sammenfletning ... Sammenfletning ifølge versionshåndteringshistorik når sammenfletningen starter:Hvis aktiveret udfører &kdiff3; den automatiske sammefletning af historik med tidligere nævnte tilvalg når en sammenfletning startes. Test dine regulære udtrykDenne knap viser en dialog som lader dig forbedre og teste det regulære udtryk ovenfor. Kopiér blot de respektive data fra dine filer til eksempellinjerne. "Matcheresultaterne" viser med det samme om det lykkes at matche eller ej. "Sorteringsnøgleresultat" viser nøglen som bruges til sortering ved sammenfletning af historik. Irrelevant sammenfletningskommando:Angiv en egen kommando som skal kaldes når &kdiff3; detekterer at filen fra B ikke bidrager med relevant data som ikke allerede findes i filen fra C. Denne kommando kaldes med de tre filnavne som parametre. Data som matches af "Regulært udtryk for automatisk sammenfletning" eller i historikken anses ikke for at være relevant. Mappefletning Disse valgmulighederne har at gøre med gennemsøgning af mappen og håndtering af sammenfletningen: Se Mappesammenligning og sammenfletning for detaljer. Der er endnu en valgmulighed her som også er relevant for at gemme enkelte filer: Sikkerhedskopiér filer:Når en fil gemmes og en ældre version allerede eksisterer, ændres originalversionens navn med tilføjelse af filendelsen ".orig". Hvis en gammel sikkerhedskopi med ".orig" allerede eksisterer slettes den uden sikkerhedskopiering. Indstillinger for region og sprog Sprog:Justér brugergrænsefladens sprog. At ændre dette påvirker ikke programmet som kører. Du skal afslutte og genstarte &kdiff3; for at ændre sprog. (Dette er ikke tilgængeligt i &kde;-versionen af &kdiff3;, eftersom sproget kan justeres i de generelle &kde;-indstillinger.) Brug samme kodning til alt:Følgende kodningstilvalg kan justeres separat for hvert objekt, eller hvis tilvalget er sandt, indstilles alle værdier til den første værdi. Lokal kodning:Ovenfor kodningsvælgerne vises en note som fortæller dig hvad den lokale kodning er (Den kan ikke justeres, men er kun til information hvis du ikke ved hvad den lokale kodning er, men har brug for at kunne vælge den.) Filkodning for A/B/C:Justér filkodningen for inddatafiler. Dette har en effekt på hvordan specialtegn tolkes. Eftersom du kan justere hvert kodning separat, kan du til og med sammenligne og sammenflette filer som blev gemt med forskellige kodninger. Filkodning for sammenflettet uddata og ved at gemme:Når du har redigeret en fil, kan du justere hvilken kodning som bruges når den gemmes til disk. Filkodning for præprocessorfiler:Når du definerer præprocessorer, kan de måske ikke håndtere din kodning (eksempelvis hvis dine filer bruger 16-bit Unicode og præprocessoren kun kan håndtere 8-bit ASCII). Med dette kan du definere kodningen for præprocessorens uddata. Sprog som læses fra højre til venstreVisse sprog skrives fra højre til venstre. Når dette er aktiveret, tegner &kdiff3; tekst fra højre til venstre i sammenligningsvinduerne og i sammenfletningsvinduet. Bemærk at hvis du starter &kdiff3; med kommandolinjeflaget "--reverse" så vises al layout også fra højre til venstre. (Dette er en funktion som &Qt; sørger for.) Denne dokumentation er skrevet under antagelse af at "Sprog som læses fra højre til venstre" eller omvendt layout ikke er aktiverede. Visse referencer til "venstre" eller "højre" skal erstattes af det modsatte hvis du bruger disse valgmuligheder. Diverse (Disse tilvalg og handlinger er tilgængelige i menuerne eller værktøjslinjen.) Vis linjenummer:Du kan vælge om linjenummer skal vises for inddatafilerne. Vis mellemrum og tabulatortegn i sammenligning:Sommetider er synlige mellemrum og tabulatortegn forstyrrende. Du kan slå dette fra. Vis blanke tegn:Luk af for dette for ikke at vise ændringer af kun blanke tegn i teksten eller oversigtssøjlerne. (Bemærk at dette også gælder ændringer af cifre eller kommentarer hvis valgmulighederne "Ignorér cifre" eller "Ignorér C/C++ kommentarer" er aktive.) Overblikstilvalg:Disse tilvalg er kun tilgængelige når du sammenligner tre filer. I standardtilstand vises alle forskelle i en farvekodet oversigtssøjle, men sommetider er du især interesseret i forskellene mellem to af de tre filer. Ved at vælge oversigten "A mod B", "A mod C" eller "B mod C" vises en anden oversigtssøjle med den forespurgte information ved siden af den almindelige oversigt. Tekstombrydning af diff-vinduer:Ombryd linjer når deres længde ville have været større end vinduets bredde. Vis vindue A/B/C:Sommetider vil du gerne bruge skærmpladsen bedre for lange linjer. Skjul vinduer som ikke er vigtige. (I menuen Vinduer.) Skift opdelingsorientering:Skift mellem sammenligningsvinduer som vises ved siden af hinanden (A til venstre for B til venstre for C) eller ovenfor hinanden (A over B over C). Dette bør også hjælpe med lange linjer. (I menuen Vinduer.) Start sammenfletning hurtigt:Sommetider kigger du på forskelle, og bestemmer dig for at sammenflette. "Sammenflet denne fil" i menuen Mappe virker også hvis du kun sammenligner to filer. Et enkelklik starter sammenfletningen og bruger filnavnet på den sidste inddatafil som standarduddatafilnavn. (Når dette bruges til at genstarte en sammenfletning, beholdes uddatafilnavnet.) Indstil genvejstaster For øjeblikket understøtter kun &kde;-versionen indstillelige genvejstaster (Menuen Opsætning->Indstil genveje...) Præprocessorkommandoer &kdiff3; understøtter to præprocessortilvalg. Præprocessorkommando:Når en fil læses, sendes den via denne eksterne kommando. Uddata fra denne kommando vises i stedet for den oprindelige fil. Du kan skrive din egen præprocessor som opfylder dine specielle behov. Brug dette til at fjerne forstyrrende dele af filen, eller for automatisk at korrigere indrykning, osv. Præprocessorkommando for linjematchning:Når en fil læses, sendes den via denne eksterne kommando. Hvis en præprocessorkommando (se ovenfor) også angives er udskriften fra præprocessoren input til kommandoen for linjematchning. Udskriften bruges kun under linjematchningsfasen af analysen. Du kan skrive din egen præprocessor som opfylder dine specielle behov. Hvert inddatalinje skal have en tilsvarende uddatalinje. Idéen er at tillade brugeren større fleksibilitet mens diff-resultatet indstilles. Men dette kræver et eksternt program, og mange brugere ønsker ikke selv at skrive et sådant. Heldigvis er det meget ofte sådan at sed or perl vil kunne klare det. For eksempel et enkelt tilfælde at teste: Betragt filen a.txt (6 linjer): aa ba ca da ea fa Og filen b.txt (3 linjer): cg dg eg Uden en præprocessor ville følgende linjer placeres ud for hinanden: aa - cg ba - dg ca - eg da ea fa Det er formodentlig ikke det der ønskes eftersom det første bogstav indeholder den interessante information. For at hjælpe matchealgoritmen med at ignorere det andet bogstav kan man bruge en linjematchende præprocessorkommando som erstatter 'g' med 'a': sed 's/g/a/' Med den kommando bliver resultatet af at matche: aa ba ca - cg da - dg ea - eg fa Internt ser matchealgoritmen filerne efter den linjematchende præprocessor er kørt, men på skærmen er filen uforandret. (Den normale præprocessor ville også ændre data på skærmen.) Basal <command >sed</command > Dette afsnit introducerer blot nogle meget grundlæggende funktioner i sed. For mere information se info:/sed eller http://www.gnu.org/software/sed/manual/html_mono/sed.html. En forkompileret version for &Windows; eksisterer på http://unxutils.sourceforge.net. Bemærk at følgende eksempel antager at sed eksisterer i en mappe i miljøvariablen PATH. Hvis dette ikke er tilfældet, skal du angive fuldstændig absolut søgesti til kommandoen. Bemærk også at følgende eksempel bruger enkle citationstegn ('), hvilket ikke virker i Windows. I Windows skal du i stedet bruge dobbelte citationstegn ("). I denne sammenhæng bruges kun erstatningskommandoen i sed: sed 's/REGUDTRYK/ERSTATNING/FLAG' Inden du bruger en ny kommando inde i &kdiff3;, bør du først teste den i en terminal. Her er kommandoen echo nyttig. For eksempel: echo abrakadabra | sed 's/a/o/' -> obrakadabra Dette eksempel viser en meget enkel sed-kommando som erstatter den første forekomst af "a" med "o". Hvis du vil erstatte alle forekomster behøver du flaget "g": echo abrakadabra | sed 's/a/o/g' -> obrokodobro Symbolet "|" er en pipe-kommando som overfører uddata fra foregående kommando til inddata i efterfølgende kommando. Hvis du vil teste med en længere fil kan du bruge cat på Unix-lignende systemer eller type på Windows-lignende systemer. sed udfører erstatningen for hver linje. cat filnavn | sed flag Eksempel på brug af <command >sed</command > i &kdiff3; Ignorering af andre typer kommentarer For øjeblikket forstår &kdiff3; kun C/C++ kommentarer. Ved at bruge en linjematchende præprocessorkommando kan du også ignorere andre typer af kommentarer ved at konvertere dem til C/C++ kommentarer. For eksempel for at ignorere kommentarer som begynder med "#", skulle du ville konvertera dem til "//". Bemærk at du også skal aktivere tilvalget "Ignorér C/C++ kommentarer" for at få nogen virkning. En passende linjematchende præprocessorkommando ville være: sed 's/#/\/\//' Eftersom tegnet "/" har en særlig betydning i sed, er det nødvendigt at tilføje tegnet "\" inden hver "/" i erstatningsstrengen. Sommetider behøves "\" for at tilføje eller fjerne en særlig betydning for visse tegn. De enkle citationstegn (') inden og efter erstatningskommandoen er nu vigtige, eftersom skallen ellers ville forsøge at tolke visse specialtegn som '#', '$' eller '\' inden de sendes til sed. Bemærk at i Windows behøver du dobbelte citationstegn (") her. Windows erstatter andre tegn som '%', så du kan få brug for at eksperimentere noget. Ikke versalfølsom Diff Brug følgende linjematchende præprocessorkommando til at forvandle al inddata til store bogstaver: sed 's/\(.*\)/\U\1/' Her er ".*" et regulært udtryk som matcher alle strenge, og i denne sammenhæng matcher alle tegn på linjen. Tegnet "\1" i erstatningsstrengen svarer til den matchede tekst mellem det første par "\(" og "\)". "\U" konverterer den indsatte tekst til store bogstaver. Ignorering af nøgleord for versionskontrol CVS og andre versionshåndteringssystemer bruger flere nøgleord til at indsætte automatisk genererede strenge (info:/cvs/Keyword substitution). Alle følger mønstret "$NØGLEORD genereret tekst$". Nu behøver vi en linjematchende præprocessorkommando som kun fjerner den genererede tekst: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' Strengen "\|" skiller de mulige nøgleord ad. Du vil måske ændre listen ifølge dine behov. Tegnet "\" ud for "$" behøves eftersom "$" ellers matcher linjeslut. Mens du eksperimenterer med sed kommer du måske til at forstå og endog at kunne lide disse regulære udtryk. De er nyttige fordi der er mange andre programmer der også understøtter lignende ting. Ignorér cifre At ignorere tal er i virkeligheden et indbygget tilvalg, men som et andet eksempel, vises hvordan det ville se ud som en linjematchende præprocessorkommando. sed 's/[0123456789.-]//g' Alle tegn indenfor '[' og ']' matcher og vil blive erstattet af ingenting. Ignorering af visse søjler Sommetider er teksten meget strengt formateret, og indeholder søjler som du altid vil ignorere, mens der er andre søjler du vil bevare for analyse. I følgende eksempel ignoreres de fem første søjler (tegn), de følgende ti søjler bevares, derefter ignoreres igen fem søjler og resten af linjen bevares. sed 's/.....\(..........\).....\(.*\)/\1\2/' Hvert punktum '.' svarer til et hvilket som helst enkelt tegn. Strengene "\1" og "\2" i erstatningsstrengen refererer til den matchende tekst indenfor det første og andre par af "\(" og "\)" som angiver teksten at bevare. Kombination af flere substitutioner Sommetider vil du tilpasse flere erstatninger samtidigt. Så kan du bruge semikolon ';' for at skille dem fra hinanden. For eksempel: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO Brug af <command >perl</command > i stedet for <command >sed</command > I stællet for sed måske du vil bruge noget andet som perl. perl -p -e 's/REGUTTRYCK/ERSÆTTNING/FLAGGOR' Men visse detaljer er anderledes i perl. Bemærk at hvor sed behøver "\(" og "\)" kræver perl det enklare "(" og ")" uden indledende '\'. Till eksempel: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Rækkefølge for præprocessor-udførsel Data sendes gennem alle interne og eksterne præprocessorer i følgende rækkefølge: Normal præprocessor, Præprocessor for linjematchning, Ignorér versaler (konvertér til store bogstaver), Detektion af C/C++ kommentarer, Ignorér cifre, Ignorér blanke tegn Data efter den normale præprocessor vil blive bevaret til visning og indfletning. De andre operationer ændrer kun de data som den linjematchende diff-algoritme ser. I de sjældne tilfælde hvor du bruger en normal præprocessor, bemærk at den linjematchende præprocessor ser uddata fra den normale præprocessor som inddata. Advarsel Forbehandlingskommandoer er ofte meget nyttige, men som med alle tilvalg som ændrer teksten eller skjuler visse forskelle automatisk, kan du ved en fejl springe over visse forskelle og i værste fald ødelægge vigtige data. Af denne grund, hvis en normal præprocessorkommando bruges under en sammenfletning, fortæller &kdiff3; dig om det og spørger om det skal deaktiveres eller ej. Men du får ingen advarsel hvis en linjematchende præprocessorkommando er aktiv. Sammenfletningen sker ikke førend alle konflikter er løste. Hvis du deaktiverede "Vis blanke tegn" bliver også forskellene som blev fjernet med den linjematchende præprocessorkommando usynlige. Hvis knappen Gem forbliver inaktiv under en sammenfletning (på grund af tilbageværende konflikter), så sørg for at aktivere "Vis blanke tegn". Hvis du ikke vil sammenflette disse mindre vigtige forskelle manuelt kan du vælge "Vælg [A|B|C] for uløste konflikter med blanke tegn" i menuen "Sammenflet". Mappesammenligning og sammenfletning med &kdiff3; Introduktion til mappesammenligning og sammenfletning Ofte skal programmører ændre mange filer i en mappe for at opnå deres formål. For at opnå dette lader &kdiff3; dig også sammenligne og sammenflette hele mapper rekursivt! Selvom sammenligning og sammenfletning af mapper synes at være ganske selvklart, er der flere detaljer som du bør kende til. Det vigtigste er naturligvis det faktum at mange filer nu kan påvirkes af hver handling. Hvis du ikke har sikkerhedskopier af originale data, kan det være meget svært eller til og med umuligt at komme tilbage til originaltilstanden. Så inden du påbegynder en sammenfletning, skal du sørge for at data er sikret, og at det er muligt at nulstille. Om du laver et arkiv, eller bruger et versionskontrolsystem er din egen beslutning, men til og med erfarne programmører og integratører behøver sommetider gammel kildekode. Bemærk også at også selvom jeg (forfatteren til &kdiff3;) forsøger at gøre mit bedste, kan jeg ikke garantere at der ikke er fejl. Ifølge GNU GPL er der INGEN GARANTI af nogen slags for dette program. Så hvor ydmyg, og husk altid:
At fejle er menneskeligt, men for at virkelig lave rod i det behøves en maskine.
Så dette er hvad programmet kan gøre for dig: &kdiff3; ... ... læser og sammenligner to eller tre mapper rekursivt, ... håndterer symbolske link særskilt, ... lader dig bladre gennem filer med et dobbeltklik, ... foreslår en sammenfletningsmulighed for hvert objekt, som du kan ændre inden mappesammenfletningen startes, ... lader dig simulere sammenfletningen og giver en liste af handlingerne som ville ske, uden at virkelig gøre dem, ... lader dig udføre sammenfletningen, og lader dig bestemme hvornår manuel interaktion behøves, ... lader dig udføre valgt handling for alle punkter (tasten F7) eller markeret punkt (tasten F6), ... lader dig fortsætte sammenfletningen efter manuel interaktion med tasten F7, ... laver valgfrie sikkerhedskopier, med filendelsen ".orig". ...
Start mappesammenligning eller sammenfletning Dette ligner meget sammenfletning og sammenligning af en enkelt fil. Du skal kun angive mapper på kommandolinjen eller i dialogen for filåbning. Sammenlign eller sammenflet to mapper: kdiff3 kat1 kat2 kdiff3 kat1 kat2 -o målkat Hvis ingen målmappe angives, bruger &kdiff3; kat2. Sammenlign eller sammenflet tre mapper: kdiff3 kat1 kat2 kat3 kdiff3 kat1 kat2 kat3 -o målkat Når tre mapper sammenflettes, bruges kat1 som basen for sammenfletningen. Hvis ingen målmappe angives, bruger &kdiff3; kat3 som målmappe for sammenfletningen. Bemærk at kun sammenligningen startes automatisk, ikke sammenfletningen. For det skal du først vælge et menupunkt eller tasten F7. (Mere information kommer senere.) Katalogsammenfletning af synlig information Mens mapperne læses vises et meddelelsesfelt som informerer dig om forløbet. Hvis du afbryder mappesøgningen, vises kun filer som hidtil er sammenlignet. Når mappegennemsøgningen er færdig, viser &kdiff3; et listefelt med tilbageværende resultater, ... ... og detaljer om det markerede punkt til højre: Navnesøjlen Hver fil og mappe som blev fundet under søgningen vises her i et træ. Du kan vælge et punkt ved at klikke en gang på det med musen. Mapperne er normalt sammentrukket. Du kan ekspandere og trække dem sammen ved at klikke på "+"/"-", ved at dobbeltklikke på punktet eller ved at bruge tasterne "venstrepil" og "højrepil". Menuen "Mappe" indeholder også to tilvalg "Træk alle undermapper sammen" og "Ekspandér alle undermapper" som du kan bruge til at trække sammen eller ekspandere alle mapper på én gang. Hvis du dobbeltklikker på et filpunkt, udføres filsammenligning og sammenligningvinduet for filer vises. Ikonen i navnesøjlen svarer til filtypen i den første mappe ("A"). Den kan være en af disse: Normal fil Normal mappe (mappeikon) Link til en fil (filikon med en link-pil) Link til en mappe (mappeikon med en link-pil) Hvis filtypen er anderledes i de øvrige mapper, ses det i søjlerne A/B/C og i vinduet som viser detaljerne om det markerede punkt. Bemærk at i disse tilfælde kan ingen sammenfletningshandling vælges automatisk. Når sammenfletningen startes, informeres brugeren om denne slags problemer. Søjlerne A/B/C og farvesammensætninger Som det ses i billedet ovenfor, bruges farverne rød, grøn, gul og sort i søjlerne A/B/C. Sort: Dette punkt eksisterer ikke i denne mappe. Grøn: Nyeste punkt. Gul: Ældre end grøn, nyere end rød. Rød: Ældst punkt. Men for punkter som er identiske i sammenligningen, er farven også identisk selvom alderen ikke er det. Mapper anses for at være ens hvis alle objekter de indeholder er ens. Så har de også samme farve. Alderen på en mappe spiller ingen rolle for dens farve. Idéen til denne farvesammensætning fandt jeg i dirdiff. Farverne svarer til farverne for et blad, som er grønt i begyndelsen, derefter bliver gult og til sidst rødt når det er gammelt. Handlingssøjlen Efter at have sammenlignet mapperne evaluerer &kdiff3; også et forslag til sammenfletningshandling. Den vises i søjlen "Handling". Du kan ændre den ved at klikke på handlingen du vil ændre. En lille menu dukker op og lader dig vælge en handling for dette punkt. (Du kan også vælge den oftest bruge handling via tastaturet. Ctrl+1/2/3/4/Delete vælger A/B/C/Sammenflet/Slet hvis de er tilgængelige.) Denne handling udføres under sammenfletningen. Hvilke handlinger som er tilgængelige afhænger af punktet og sammenfletningstilstanden som bruges. Sammenfletningstilstanden er en af: Sammenfletning af tre mapper ("A" behandles som ældste basis for begge). Sammenfletning af to mapper. To-mappes synkroniseringstilstand (aktiveres med tilvalget "Synkronisér mapper"). Ved tremappers-sammenfletning er den handling der foreslås: Hvis for et objekt... ... alle tre mapper er ens: Kopiér fra C ... A og C er ens med B er det ikke: Kopiér fra B (eller hvis B ikke eksisterer, slet målet hvis det eksisterer) ... A og B er ens men C er det ikke: Kopiér fra C (eller hvis C ikke eksisterer, slet målet hvis det eksisterer) ... B og C er ens med A er det ikke: Kopiér fra C (eller hvis C ikke eksisterer, slet målet hvis det eksisterer) ... kun A eksisterer: Slet målet (hvis det eksisterer) ... kun B eksisterer: Kopiér fra B ... kun C eksisterer: Kopiér fra C ... A, B og C er ikke ens: Sammenflet A, B og C har ikke samme filtype (f.eks. A er en mappe, B er en fil): "Fejl: Konflikt i filtyper". Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes. Ved tomappers sammenfletning er den foreslåede handling: Hvis for et objekt... ... begge mapper er ens: Kopiér fra B ...A eksisterer men ikke B: Kopiér fra A ... B eksisterer men ikke A: Kopiér fra B ... A og B eksisterer men er ikke ens: Sammenflet A og B har ikke samme filtype (f.eks. A er en mappe, B er en fil): "Fejl: Konflikt i filtyper". Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes. Synkroniseringstilstand er kun aktiv hvis to mapper og ingen eksplicit målmappe angives, og hvis tilvalget "Synkronisér mapper" er aktivt. &kdiff3; vælger så en standardhandling så begge mapper er ens bagefter. Hvis for et punkt ... ... begge mapper er ens: Ingenting gøres. ... A eksisterer, men ikke B: Kopiér A til B ... B eksisterer, men ikke A: Kopiér B til A ... A og B eksisterer, men er ikke ens: Sammenflet og opbevar resultatet i begge mapper. (For brugeren er det synlige filnavn for at gemme B, men derefter kopierer &kdiff3; også B til A.) A og B har ikke samme filtype (f.eks. A er en mappe, B er en fil): "Fejl: Konflikt i filtyper". Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes. Når to mapper sammenflettes og tilvalget "Kopiér nyere i stedet for at sammenflette" er markeret, kigger &kdiff3; på datoen og foreslår at vælge den nyere fil. Hvis filerne ikke er ens men har samme dato, indeholder handlingen "Fejl: Dato er ens men filerne er det ikke." Så længe sådanne punkter eksisterer, kan mappesammenfletningen ikke startes. Statussøjlen Under sammenfletningen behandles en fil af gangen. Statussøjlen viser "Færdig" for punkter hvor sammenfletningshandlingen er lykkedes, og en anden tekst hvis noget uventet indtraf. Når en sammenfletning er færdig, bør du udføre en sidste kontrol for at se at status for alle punkter er acceptabel. Statistiske søjler Når filsammenligningtilstanden "Fuldstændig analyse" er aktiveret i valgmulighederne, viser &kdiff3; ekstra søjler som indeholder antal uløste, løste, ikke blanke og blanke konflikter. (Søjlen løste vises kun når mapper sammenlignes eller sammenflettes.) Vælg listede filer Flere tilvalg påvirker hvilke filer som listes her. Nogle er tilgængelige i indstillingsdialogen. Menuen Mappe indeholder punkterne: "Vis identiske filer": Filer som er detekteret som ens i alle inddatamapper. "Vis forskellige filer": Filer som findes i to eller flere mapper men ikke er ens. "Vis kun filer i A": Filer som kun findes i A, men ikke i B eller C. "Vis kun filer i B": Filer som kun findes i B, men ikke i A eller C. "Vis kun filer i C": Filer som kun findes i C, men ikke i A eller B. Aktivér kun valgmulighederne "Vis" for de punkter du vil liste. Hvis du for eksempel kun vil liste alle punkter som enten findes i A eller i B men ikke i begge, skal du aktivere "Vis kun filer i A" og "Vis kun filer i B" og deaktivere alle andre ("Vis identiske filer", "Vis forskellige filer", "Vis kun filer i C"). Listen opdateres med det samme for at svare til ændringen. Disse tilvalg gælder også for mapper med en undtagelse: At deaktivere "Vis forskellige filer" skjuler ikke hele mapper. Dette fungerer kun for filer inde i dem. Bemærk at af disse er det kun tilvalget "Vis identiske filer" som er bestående. De øvrige aktiveres når &kdiff3; startes. Udfør en mappesammenfletning Du kan enten sammenflette det valgte punkt (fil eller mappe), eller alle punkter. Når du har lavet alle valg af handlinger (også i alle undermapper), kan du udføre sammenfletningen. Vær klar over at hvis du ikke eksplicit angav en målmappe, bliver målet "C" i tre-mappetilstand, "B" i to-mappetilstand, og i synkroniseringstilstand er det "A" og/eller "B". Hvis du også har angivet en målmappe, kontrollér at alle objekter som skal eksisterer i udskriften eksisterer i træet. Der er nogle valgmuligheder som får visse objekter til at blive udeladt fra mappesammenligningen og sammenfletningen. Kontrollér disse valgmuligheder for at undgå ubehagelige overraskelser: "Rekursive mapper": Hvis det er fra, er der ikke punkter i undermapper. "Mønster" eller "Undtagelsesmønster": Inkludér eller undtag punkter som matcher. "Undtag gemte filer" "Vis"-tilvalg (Vis identiske/forskellige filer, kun filer i A/B/C) Hvis du ændrer indstillingerne for at vise flere filer, skal du gøre en omsøgning via menuen "Mappe" -> "Skan igen". (Grunden til dette er at &kdiff3; udelader sammenligning for filer ifølge kriterierne for at få hurtigere sammenligningshastighed.) Hvis du ændrede fil- og mappemønstre for at undtage filer, opdateres fillisten med det samme når indstillingsdialogen lukkes. Bemærk at når du skriver til en helt ny mappe vil du oftest også kopiere de identiske filer. Aktivér "Vis identiske filer" i dette tilfælde. Hvis din målmappe er en af inddatamapperne, er dette ikke nødvendigt eftersom filerne allerede findes der. Hvis du er tilfreds indtil videre, er resten enkelt. For at sammenflette alle punkter: Vælg "Start eller fortsæt mappesammenfletning" i menuen "Mappe" eller tryk på F7 (som er standardgenvejstasten). For kun at sammenflette nuværende punkt: Vælg "Udfør handling for nuværende punkt" eller tryk på F6. Hvis visse objekter med ugyldige filtyper stadigvæk eksisterer, på grund af filtyper med konflikter, vises et meddelelsefelt og objektet udpeges, så du kan vælge en gyldig handling for objektet. Hvis du sammenfletter alle punkter vises en dialog som giver dig valgmulighederne "Gør det", "Simulér det" og "Annullér". Vælg "Simulér det" hvis du vil se hvad der ville blive gjort uden virkelig at gøre det. En udførlig liste med alle handlinger vises. Vælg ellers "Gør det" for virkelig at udføre sammenfletningen. Derefter udfører &kdiff3; den angivne handling for alle punkter. Hvis manuel interaktion kræves (sammenfletning af enkelt fil), vises et sammenfletningsvindue (se det store skærmaftryk). Når du er færdig med manuel indfletning af en fil, vælges igen "Start eller fortsæt mappesammenfletning" eller tryk på F7. Hvis du ikke har gemt endnu, beder en dialog dig om at gøre det. Derefter fortsætter &kdiff3; til næste punkt. Når &kdiff3; støder på en fejl, meddeles det og udførlig statusinformation vises. Længst nede i listen er der nogen fejlmeddelelser som bør hjælpe dig til at forstå problemets grund. Når du fortsætter sammenfletningen (tasten F7), giver &kdiff3; dig valget at forsøge igen eller springe over punktet som forårsagede problemet. Dette betyder at du kan vælge en anden handling, eller løse problemet på anden måde, inden du fortsætter. Når sammenfletningen er færdig, informerer &kdiff3; dig med et meddelelsesfelt. Hvis visse punkter sammenflettedes individuelt før mappefletning bruges, husker &kdiff3; det (mens sammenfletningssessionen er i gang), og sammenfletter dem ikke igen når sammenfletningen for alle punkter udføres. Selv når sammenfletningen springes over eller ingenting gemmes regnes disse punkter som færdige. Kun når sammenfletningshandlingen ændres, vil "Færdig"-status for punktet blive fjernet så det kan sammenflettes igen. Tilvalg for at sammenligne og sammenflette mapper Indstilling af &kdiff3; (menuen "Opsætning"->"Indstil KDiff3") har en side som hedder "Mappesammenfletning" med følgende tilvalg: Rekursive mapper:Vælg om mapper skal gennemsøges rekursivt. Mønster for filer:Kun filer som matcher et mønster her tilføjes i træet. Mere end et mønster kan angives ved at bruge semikolon ";" som skilletegn. Gyldige jokertegn: "*" og "?". (f.eks. "*.cpp;*.h"). Standardværdien er "*". Dette mønster bruges ikke for mapper. Anti-mønster for filer:Filer som matcher et mønster undtages fra træet. Mere end et mønster kan angives ved at bruge semikolon ";" som skilletegn. Gyldige jokertegn: '*' og '?'. Standardværdien er "*.orig;*.o;"*.obj". Mappeundtagelsesmønster for filer:Mapper som matcher et mønster undtages fra træet. Mere end et mønster kan angives ved at bruge semikolon ";" som skilletegn. Gyldige jokertegn: '*' og '?'. Standardværdien er "CVS;deps;.svn". Brug .cvsignore:Ignorér filer og mapper som også ville blive ignoreret af CVS. Mange automatisk genererede filer ignoreres af CVS. Den store fordel er at dette kan være mappespecifikt via en lokal ".cvsignore" fil. (Se info:/cvs/cvsignore.) Find efter skjulte filer og mapper:For visse filsystemer har filer egenskaben "Skjult". For andre systemer skjules et filnavn som begynder med et punktum ("."). Dette lader dig bestemme om disse filer skal indgå i træet eller ej. Standardværdien er til. Følg fillink:For link til filer: Hvis deaktiveret, sammenlignes de symbolske link. Hvis aktiveret, sammenlignes filerne bagved linkene. Normalværdien er fra. Følg mappelink:For link til mapper: Hvis deaktiveret, sammenlignes symbolske link. Hvis aktiveret behandles linket som et mappe og gennemsøges rekursivt. (Bemærk at programmet ikke kontrollerer om linket er "rekursivt". En mappe som indeholder et link til samme mappe vil forårsage en uendelig løkke, og efter en vis tid når stakken bliver fuld eller hukommelsen løber ud, bryder programmet sammen.) Standardværdien er fra. Versaltilstandsfølsom filnavnesammenligning:Standardværdi er falsk på Windows, og sand for andre operativsystemer. Filsammenligningstilstand: Binær sammenligning:Dette er standardsammenligningstilstanden. Fuld analyse:Udfør en fuld analyse for hver fil og vis de statistiske informationssøjler. (Antal løste, uløste, ikke blanke og blanke konflikter.) Den fulde analyse er langsommere end en simpel binær analyse, og meget langsommere når den bruges på filer der ikke indeholder tekst. (Angiv de passende fil-antimønstre.) Stol på ændringsdato:Hvis du sammenligner store mapper via et langsomt netværk, kan det gå hurtigere kun at sammenligne ændringsdato og fillængde. Men hastighedsforbedringen kommer med prisen af en lille usikkerhed. Brug dette med forsigtighed. Normalværdien er fra. Stol på størrelsen:Ligesom at stile på ændringsdatoen. Ingen egentlig sammenligning foregår. To filer betragtes som ens hvis deres filstørrelser er ens. Dette er nyttigt når filkopieringsoperationen ikke bevarer ændringsdatoen. Brug dette med forsigtighed. Normalværdien er fra. Synkronisér mapper:Aktiverer "synkroniseringstilstand" når to mapper sammenlignes og ingen eksplicit målmappe angives. I denne tilstand vælges de foreslåede handlinger så begge kildemapperne er ens bagefter. Sammenfletningsresultatet skrives også til begge mapper. Normalværdien er fra. Kopiér nyere i stedet for at sammenflette:I stedet for at sammenflette kopieres den foreslåede handling den nyere kilden hvis der er sket om ændringer. (Anses for at være usikkert, eftersom det betyder at du ved at den anden fil ikke også er redigeret. Tjek for at være sikker i hvert enkelt tilfælde.) Normalværdien er fra. Sikkerhedskopiér filer:Hvis en fil eller hel mappe erstattes med en anden eller slettes, så ændres originalversionens navn med tilføjelse af filendelsen ".orig". Hvis en gammel sikkerhedskopi med filendelsen ".orig" allerede eksisterer slettes den uden sikkerhedskopiering. Dette gælder også normal sammenfletning af enkelte filer, ikke kun sammenfletningstilstand for mapper. Standardværdien er til. Andre funktioner i mappesammenfletningsvinduet Opdelt eller fuldskærmstilstand Sædvanligvis forbliver listevinduet for mappesammenfletning synligt mens en enkelt fil sammenlignes eller sammenflettes. Du kan flytte linjen som opdeler fillisten fra vinduerne til tekstsammenligning med musen. Hvis du ikke vil gøre dette, kan du deaktivere "Opdelt skærmvisning" i menuen "Mappe". Derefter kan du bruge "Skift visning" i menuen "Mappe" til at skifte mellem fillisten og vinduerne til tekstsammenligning, som så optager hele vinduet. Sammenlign og sammenflette en enkelt fil Du foretrækker formodentlig et almindeligt dobbeltklik på musen for at sammenligne en fil. Ikke desto mindre er der også en indgang i menuen "Mappe". Du kan også direkte sammenflette en enkelt fil, uden at starte mappesammenfletning via "Sammenflet markerede filer" i menuen "Mappe". Når resultatet gemmes, sættes status til færdig, og filen sammenflettes ikke igen hvis en mappesammenfletning startes. Men observér at statusinformationen går tabt når du kører en mappegennemsøgning igen: "Mappe"-menuen "Skan igen". Sammenlign og sammenflet filer med forskellige navne Sommetider behøver du at sammenligne eller sammenflette filer med forskellige navne (f.eks. nuværende fil og sikkerhedskopi i samme mappe). Markér den nøjagtige fil ved at klikke på ikonen i søjlen A, B eller C. Filen som først markeres på den måde markeres med "A", den anden og tredje med "B" og "C" uafhængig af hvilken søjle de findes i. Kun op til tre filer kan markeres på denne måde. Fortsæt ved at vælge "Sammenlign eksplicit markerede filer" eller "Sammenflet eksplicit markerede filer" fra menuen "Mappe". Af bekvemmelighedsgrunder findes også menuvalgmulighederne som en sammenhængsafhængig menu som vises når du klikker på den senest markerede fil. Sammenligningen eller sammenfletningen af en fil sker i samme vindue. Hvis denne metode bruges for mapper åbnes et nyt vindue.
Diverse emner Netværksgennemsigtighed via KIO I/O-slaver &kde; understøtter netværkstransparens via I/O-slaver. &kdiff3; bruger dem til at indlæse datafiler og gennemsøge mapper. Det betyder at du kan angive filer og mapper på lokal- og fjern-ressourcer via &URL;'er. Eksempel: kdiff3 test.cpp ftp://ftp.langtbortistan.org/test.cpp kdiff3 tar:/home/hakker/arkiv.tar.gz/kat ./kat Den første linje sammenligner en lokal fil med en fil på en &FTP;-server. Den anden linje sammenligner en mappe i et komprimerat arkiv med en lokal mappe. Andre I/O-slaver som er interessante er: Filer fra WWW (http:), Filer fra FTP (ftp:), Krypteret filoverførsel (fish:, sftp:), Ressourcer fra Windows (smb:), Lokale filer (file:), Andre ting som er mulige, men formodentlig mindre nyttige, er: Manualsider (man:), Infosider (info:), Hvordan man skriver &URL;'er En &URL; har en anderledes syntaks sammenlignet med søgestier til lokale filer og mapper. Visse ting skal der tages hensyn til: En søgesti kan være relativ, og kan indeholde "." eller "..". Dette er ikke muligt for &URL;'er, som altid er absolutte. Specialtegn skal skrives med særlige "escape". ("#"->"%23", mellemrum bliver til "%20", osv.) For eksempel ville en fil med navnet "/#foo#" have &URL; "file:/%23foo%23". Når &URL;'er ikke virker som ventet, så forsøg at åbne dem i &konqueror; først. Muligheder med I/O-slaver Netværkstransparens har en bagdel: Ikke alle ressourcer har samme muligheder. Sommetider skyldes det serverens filsystem, sommetider protokollen. Her er en kort liste med begrænsninger: Sommetider er der ikke støtte for link. Eller der er ingen måde at skelne mellem om et link peger på en fil eller mappe, der antages altid en fil (ftp:, sftp:). Kan ikke altid afgøre filstørrelsen. Begrænset støtte for rettigheder. Ingen mulighed at ændre rettigheder eller ændringstid, så rettigheder eller tiden for en kopi adskiller sig fra originalen. (Se tilvalget "Stol på størrelse".) (At ændre af tilladelser eller ændringstidspunkt er kun muligt for lokale filer.) Brug &kdiff3; som en Kpart &kdiff3; er en Kpart. For øjeblikket implementeres grænsefladen KParts::ReadOnlyPart. Hovedanvendelsen er til forskelsvisning i KDevelop. KDevelop starter altid den interne forskelsvisning først. For at bruge &kdiff3;, klik med højre museknap i forskelsvisningens vindue og vælg "Vis i KDiff3-part" i den sammenhængsafhængige menuen. &kdiff3; kræver normalt to fuldstændige filer som inddata. Når det bruges som en part, antager &kdiff3; at inddatafilen er en programrettelsesfil i forenet format. &kdiff3; henter derefter originalfilernes navn i programrettelsesfilen. I det mindste en af de to filer skal være tilgængelig. &kdiff3; starter så kommandoen patch for at genoprette den anden fil. Du kan vælge en programrettelsesfil i &konqueror; og vælge "Forhåndsvis i"-"&kdiff3;-part"i den sammenhængsafhængige menu. Vær klar over at dette ikke virker hvis ingen af originalfilerne er tilgængelige, og er ikke tilforladeligt hvis originalfilen eller filerne er ændret siden programrettelsesfilen blev oprettet. Når det kører som en Kpart sørger &kdiff3; kun for sammenligning mellem to filer, en meget lille værktøjslinje og menu. Sammenfletning eller mappesammenligning understøttes ikke. Spørgsmål og svar &reporting.bugs; &updating.documentation; Hvorfor kaldes det &kdiff3;? Værktøjer som hedder "KDiff" og "KDiff2" (som nu kaldes &kompare;) fandtes allerede. Desuden skal &kdiff3; antyde at programmet kan sammenflette ligesom værktøjet "diff3" fra samlingen med diff-værktøjer. Hvorfor udgives det under GPL? Jeg har brugt GPL-programmer i meget lang tid nu, og lært mig meget ved at kigge på en hel del af kildekoden. Altså er dette min "tak" til alle programmører som også gjorde eller kommer til at gøre det samme. Visse knapper og funktioner mangler. Hvad er galt? Du kompilerede fra kildekode, men angav formodentlig ikke rigtigt &kde;-præfiks med 'configure'. Som standard vil configure installere i /usr/local, men så kan &kde; ikke finde ressourcefilerne for brugergrænsefladen (dvs. kdiff3ui.rc). README-filen indeholder mere information om rigtig præfiks. Ofte vises linjer som ligner men ikke er identiske med hinanden, men ikke altid. Hvorfor? Linjer hvor kun antal blanke tegn er forskellige behandles først som "ens", mens kun et andet slags blankt tegn gør at linjerne er "forskellige". Hvis lignende linjer er ved siden af hinanden, er dette i virkeligheden et tilfælde men det er heldigvis ofte noget der sker. Se også manualen Diff Help. Hvorfor skal alle konflikter være løste inden sammenfletningsresultatet kan gemmes? For hver ens eller forskelligt afsnit husker editoren i vinduet med sammenfletningsresultatet hvor det begynder og slutter. Det er nødvendigt eftersom konflikter kan løses op manuelt ved helt enkelt at vælge kildeknappen (A, B eller C). Informationen går tabt når filen gemmes som tekst, og det er for besværligt at oprette et specielt filformat som understøtter at gemme og genoprette al nødvendig information. Hvordan kan jeg synkronisere sammenligningsvisningen og sammenfletningsvisningen så alle visninger viser samme tekstposition? Klik på sammenfatningssøjlen til venstre for teksten. (Se også her.) Hvorfor har editoren i resultatvinduet for sammenfletning ikke en "fortryde"-funktion? Hidtil har det været for besværligt. Du kan altid genoprette en version fra en kilde (A, B eller C) ved at klikke på den tilsvarende knap. For større redigering, anbefales brug af en anden editor alligevel. Når jeg fjernede en del tekst, vistes pludselig "<Ingen kildelinje>" og dette kan ikke slettes. Hvad betyder det og hvordan kan man fjerne det? For hvert afsnit der er ligedan eller anderledes husker editoren i vinduet med sammenfletningsresultatet hvor det begynder og slutter. "<Ingen kildelinje>" betyder at der ikke er noget tilbage i et afsnit, ikke engang et nylinjetegn. Dette kan indtræffe enten ved automatisk sammenfletning eller efter redigering. Det er intet problem, eftersom denne information ikke eksisterer i den gemte fil. Hvis du vil have originalkilden igen, markeres kilden blot (klikke på sammenfatningssøjlen til venstre) og klik derefter på kildeknappen med indholdet som ønskes (A, B eller C). Hvorfor understøtter &kdiff3; ikke syntaksfremhævning? &kdiff3; bruger allerede mange farver til fremhævning af sammenligninger. Yderligere frem,hævning ville være forvirrende. Burg en anden editor til dette. Kan jeg bruge &kdiff3; til at sammenligne filer fra OpenOffice.Org, Word, Excel, PDF, og så videre? Selvom &kdiff3; kan analysere alle slags filer, vil resultatet formodentlig ikke være særligt tilfredsstillende for dig. &kdiff3; blev lavet til at sammenligne rene tekstfiler. OpenOffice, Word, Excel, og så videre, opbevarer meget mere information i filerne (om skrifttype, billeder, sider, farver, osv.), som &kdiff3; ikke kender til. Altså viser &kdiff3; dig indholdet i filen tolket som ren tekst, men dette kan være ulæseligt eller i det mindste se meget mærkeligt ud. Eftersom de fleste programmer nu om dage opbevarer deres indhold i XML-format, kan du måske læse det som ren tekst. Hvis ændringen kun var lille, kan &kdiff3; måske stadigvæk hjælpe dig. Den bedste løsning hvis du kun vil sammenligne teksten (uden indlejrede objekter såsom billeder) er at bruge "Markér alt" og "Kopiér" i programmet for at kopiere den interessante tekst til klippebordet og derefter indsætte teksten i et af sammenligningsvinduerne i &kdiff3;. (Se også Markér, kopiér og indsæt.) Hvorfor er mappetilvalget "List kun forskelle" blevet fjernet? Der er nu flere forskellige "Vis"-tilvalg i mappemenuen. At deaktivere "Vis identiske filer" afstedkommer hvad aktivering af "List kun forskelle" plejede at gøre. Hvordan kan man lave en stor markering i sammenligningsvinduet når det tager så lang tid at rulle teksten? Start markeringen som sædvanligt (klik og hold venstre museknap nede). Brug derefter navigationstasterne (f.eks. Page Up, Page Down) mens venstre museknap holdes nede. (Se også Markér, kopiér og indsæt.) Der er en stor mængde information her, men dit spørgsmål er alligevel ikke besvaret? Send gerne dit spørgsmål til mig. Jeg sætter pris på alle kommentarer. Medvirkende og licens &kdiff3;: Værktøj til sammenligning og sammenfletning af filer og mapper Program ophavsret 2002-2006 Joachim Eibl joachim.eibl at gmx.de Flere fede idéer og fejlrapporter kom fra kolleger og mange personer ude på www. Tak! Dokumentation ophavsret © 2002-2006 Joachim Eibl joachim.eibl at gmx.de &erik.kjaer.pedersen.credit; &underFDL; &underGPL; Installation Hvordan får man fat på &kdiff3; Du kan hente seneste version af &kdiff3; fra hjemmesiden http://kdiff3.sourceforge.net. &kdiff3; er også tilgængelig for andre platforme. Se hjemmesiden for detaljer. Krav For at bruge alle funktioner i &kdiff3; med godt resultat har du brug for &kde; 3.1 eller nyere. For information om hvordan &kdiff3; kan køres på andre platforme uden &kde;, se hjemmesiden. Du finder en liste med ændringer på http://kdiff3.sourceforge.net/ChangeLog eller i filen "ChangeLog" i kildekodepakken. Kompilering og installation For at kompilere og installere &kdiff3; på et system med KDE, skriv følgende i basismappen for distributionen af &kdiff3;: % ./configure --prefix=kde-mappe % make % make install kde-mappe angiver mappen som indeholder KDE på dit system. Hvis du ikke er sikker, læs filen README for detaljer. Hvis du ikke bruger KDE, så brug ikke configure men følg instruktionerne for systemer som kun bruger Qt i filen README. Eftersom &kdiff3; bruger autoconf og automake skulle du ikke have problemer med at kompilere det. Skulle du støde på problemer, så rapportér dem gerne til &kde;'s e-mail-lister. &documentation.index;
kdiff3-0.9.97/doc/da/CMakeLists.txt0000644000175100001440000000013511626145653016221 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/da SUBDIR kdiff3) kdiff3-0.9.97/doc/CMakeLists.txt0000644000175100001440000000027511626145651015640 0ustar joachimusersadd_subdirectory(en) add_subdirectory(da) add_subdirectory(de) add_subdirectory(es) add_subdirectory(et) add_subdirectory(fr) add_subdirectory(it) add_subdirectory(nl) add_subdirectory(pt) kdiff3-0.9.97/doc/et/0000755000175100001440000000000011626145654013507 5ustar joachimuserskdiff3-0.9.97/doc/et/index.docbook0000644000175100001440000034056511626145652016173 0ustar joachimusers KDiff3"> ]> &kdiff3; käsiraamat Joachim Eibl
joachim.eibl at gmx.de
Marek Laane
bald@starman.ee
Tõlge eesti keelde
2002-2007 Joachim Eibl &FDLNotice; 2007-31-03 0.9.92 &kdiff3; on failide ja kataloogide võrdlemise ja ühendamise vahend, mis võrdleb ja ühendab kaks või kolm sisendfaili või -kataloogi, näitab erinevusi rida realt ja sümbol sümbolilt (!), pakub automaatse ühendamise võimalust, võimaldab kasutada hõlpsasti ühendamiskonflikte lahendada suutvat redaktorit pakub tänu KIO moodulitele võrguläbipaistvust võimaldab esile tõsta või peita tühikute või kommentaaride erinevusi toetab Unicode'i, UTF-8 ja muid kodeeringuid. näitab erinevusi, toetab versioonikontrolli võtmesõnade ja ajaloo ühendamist. Käesolev käsiraamat kirjeldab &kdiff3; versiooni 0.9.92. KDE kdeextragear kdiff3 diff ühendamine CVS kolmikvõrdlus võrdlemine failid kataloogid versioonide kontroll kolmikühendamine reaerinevused sünkroniseerimine kpart kio võrguläbipaistvus redaktor tühimärgid kommentaarid
Sissejuhatus Veel üks võrdlemisrakendus? Teatavasti on olemas üsna mitu graafilist võrdlusrakendust. Miks siis veel &kdiff3;? Siin ma selgitan veidi selle loomise tagamaid. &kdiff3; nägi ilmavalgust sellepärast, et mul oli raskusi ühendamisega. Ühendamine on hädavajalik, kui mingi projekti failide kallal töötab korraga mitu inimest. Ühendamine peab olema mingil määral automatiseeritud, kui arvestada seda, et ühendamisvahend tegeleb nii uute, muudetud failidega (niinimetatud harudega) kui ka algse failiga (niinimetatud baas). Ühendamisvahend valib automaatselt muudatuse, mis mingis harus on tehtud. Kui mitu arendajat on muutnud üht ja sama rida, tuvastab ühendamisvahend konflikti, mis tuleb lahendada käsitsi. Ühendamine oli sellisel juhul keeruline, sest üks arendaja muutis hulk asju ja lisaks sellele parandas veel paljudes kohtades näiteks taanet. Samal ajal muutis teine arendaja samuti üsna palju samas failis ja nii tekkiski korraga mitu ühendamiskonflikti. Vahendid, mida ma toona kasutasin, näitasid ainult muudetud ridu, aga mitte seda, mida neis ridades on muudetud. Ning miski ei viidanud ka sellele, et muudetud on ainult taanet. See muutis ühendamise väikest viisi luupainajaks. Minu jaoks oli see alguspunkt. Esimene versioon oskas näidata erinevusi rea sees ning erinevusi tühimärkides. Hiljem lisandus veel hulk võimalusi, mis ainult suurendasid rakenduse kasulikkust. Nii on näiteks võimalik teksti kiireks võrdlemiseks kopeerida see lõikepuhvrisse ja asetada siis mis tahes võrdlusaknasse. Päris suurt pingutust nõudvaks võimaluseks osutus kataloogide võrdlemine ja ühendamine, mille tulemusena sündis peaaegu juba brauseri mõõtu lisandus. Ma loodan, et &kdiff3; rahuldab ka sinu vajadused. Edu sulle! Joachim Eibl (2003) Pildid ja võimalused See pilt näitab erinevust kahe tekstifaili vahel (&kdiff3; üks varasemaid versioone): Kolmikühendamine on täielikult toetatud. See on abiks juhul, kui kaks inimest on koodi teineteisest sõltumatult muutnud. Algne fail (baas) võimaldab &kdiff3; automaatselt valida korrektsed muudatused. Võrdlusakende all asuv ühendamisredaktor lubab konflikte lahendada ja näitab, milline on sellisel juhul tulemus. Isegi seda tulemust saab kohe edasi redigeerida. See pilt näitab kolme sisendfaili ühendamist: &kdiff3; aitab ka võrrelda ja ühendada terveid katalooge. See pilt näitabki &kdiff3; kataloogide ühendamisel: Veel võimalusi Võrdlemine rida realt ja märk märgilt Graafiliselt, värvidega näitab &kdiff3; täpselt, milles peituvad erinevused. Kui tegeled palju koodi (ümber)kirjutamisega, on see kindlasti abiks. Tühimärkide erinevuste näitamine Tühikute ja tabeldusmärkide erinevused näidatakse otseselt ära. Kui read erinevad ainult tühimärkide arvu poolest, võib seda üheainsa pilguga näha vasakul asuval kokkuvõttetulbal (mis tähendab, et ei pruugi enam pead murda, kui muudetud on kõigest taanet). Kolmikvõrdlus Kolme faili analüüs ja nende erinevuste näitamine. Vasakpoolne, keskmine ja parempoolne aken kannavad vastavalt nimesid A, B ja C ning neid eristab ka värv (sinine, roheline, magenta). Kui ühes failis on rida sama, teises aga erinev, näitab värv, milline fail on erinev. Punane värv tähendab, et mõlemad ülejäänud failid on erinevustega. Kahe või kolme sisendfaili hõlpus ühendamine &kdiff3; võib ühendada kaks või kolm sisendfaili, sealjuures võimalikult palju juba automaatselt. Tulemust näidatakse redigeeritavas aknas, kus enamiku konflikte saab lahendada üheainsa hiireklõpsuga: vali nupuribalt A, B või C määramaks, millist allikat kasutada. Valida võib ka enam kui ühe allika. Kuna väljundiaken on samal ajal redaktor, siis saab isegi selliseid konflikte, mille puhul tuleb midagi täiendavalt teha, lahendada ilma mingit muud abivahendit kasutamata. Ja veel... Kiire liikumine nuppude abil. Hiireklõps kokkuvõttetulbal sünkroniseerib kõik aknad ühele positsioonile. Valimine ja kopeerimine mis tahes aknast ning asetamine ühendamisaknasse. Ülevaatetulp, mis näitab, kus esineb muudatusi ja konflikte. Värve saab kohandada just kasutaja maitsele. Kohandatav tabeldusmärgi suurus. Võimalus lisada tabeldusmärkide asemel tühikud. Failide hõlpus avamine dialoogiga või võimalus määrata faile käsureal. Stringide otsimine kõigis tekstiakendes (Otsi ehk CTRL+F ja Otsi järgmine ehk F3). Iga rea reanumbri näitamine. Lõikepuhvri sisu asetamine või teksti lohistamine võrdlemise sisendaknasse. Võrguläbipaistvus KIO-moodulite vahendusel. Võimalus kasutada KDevelop3 erinevuste näitajana. Pikkade ridade murdmine. Unicode'i, UTF-8 ja muude kodeeringute toetus. Paremalt vasakule kirjutatavate keelte toetus. ... Failide võrdlemine ja ühendamine Käsurea võimalused Kahe faili võrdlemine: kdiff3 fail1 fail2 Kahe faili ühendamine: kdiff3 fail1 fail2 -m kdiff3 fail1 fail2 -o väljundfail Kolme faili võrdlemine: kdiff3 fail1 fail2 fail3 Kolme faili ühendamine: kdiff3 fail1 fail2 fail3 -m kdiff3 fail1 fail2 fail3 -o väljundfail Pane tähele, et fail1 kujutab endast baasi fail2 ja fail3 jaoks. Erijuhtum: ühenimelised failid Kui kõigil failidel on sama nimi, aga nad asuvad erinevates kataloogides, võib kirjutamisvaeva vähendada, andes ainult esimese faili nime. Näiteks: kdiff3 kataloog1/failinimi kataloog2 kataloog3 Kataloogide võrdlemine või ühendamine käsureal: See käib samamoodi, ainult et tegu on kataloogidega. kdiff3 kataloog1 kataloog2 kdiff3 kataloog1 kataloog2 -o sihtkataloog kdiff3 kataloog1 kataloog2 kataloog3 kdiff3 kataloog1 kataloog2 kataloog3 -o sihtkataloog Kataloogide võrdlemisest ja ühendamisest saab täpsemalt lugeda siit. Muud käsurea võtmed Kõiki käsurea võtmeid näitab käsk kdiff3 --help Näidisväljund: Võtmed: -m, --merge Sisendi liitmine. -b, --base fail Baasfail. Ühilduvuseks teatud tööriistadega. -o, --output fail Väljundfail. Eelduseks -m. Nt.: -o newfile.txt --out fail Taas väljundfail. (Ühilduvuseks teatud tööriistadega.) --auto GUI puudub, kui kõik konfliktid on automaatselt lahenevad. (Vajalik on -o file) --qall Konflikte ei lahendata automaatselt. (Ühilduvuseks...) --L1 alias1 Sisendfaili 1 (baas) näidatava nime asendus. --L2 alias2 Sisendfaili 2 näidatava nime asendus. --L3 alias3 Sisendfaili 3 näidatava nime asendus. -L, --fname alias Alternatiivne näidatava nime asendus. Tuleb anda kord iga sisendi kohta. --cs string Tühistab seadistuse. Tuleb anda eraldi iga seadistuse kohta. Näide: --cs "AutoAdvance=1" --confighelp Näitab seadistusi ja nende kehtivaid väärtusi. --config fail Mõne muu seadistustefaili kasutamine. Võti võimaldab muuta seadistuse väärtust, mida muidu saab muuta ainult seadistustedialoogi vahendusel. Kuid arvesta, et kui &kdiff3; töö lõpetab, salvestatakse muudetud väärtus. Võtmega näeb saadaolevate seadistuste nimesid ja nende kehtivaid väärtusi. Võtmega saab määrata mõne muu seadistustefaili kasutamise. Kui kasutad sageli &kdiff3; mitme täiesti erineva seadistusega, lubab see võti variantide vahel hõlpsasti lülituda. Eiratavad käsurea võtmed Paljud soovivad kasutada &kdiff3; mõne versioonikontrollisüsteemiga. Aga kui versioonikontrollisüsteem kutsub &kdiff3; välja käsureaparameetriga, mida &kdiff3; ei tunne, lõpetab &kdiff3; töö veaga. Lõimimisseadistused lubavad määrata kindlaks käsureaparameetrid, mida &kdiff3; peab eirama. Neid näidatakse abiteates umbes nii: miski Eiratakse (kasutaja määratud). Eiratavad käsureavõtmed:Võtmete nimekiri, eraldajaks semikoolon ';'. Kui käsureal esineb mõni määratud võtmetest, eirab &kdiff3; seda ja töötab edasi veast teatamata. (Vaikimisi "u;query;html;abort"). Kui sellest ei piisa, on soovitatav kirjutada shelliskript, mis seab võtmed vastavusse. Avamisdialoog Et mitme sisendfaili korral nad lihtsalt peavad olema valitavad, on rakendusel eriline avamisdialoog: Avamisdialoog võimaldab redigeerida failinimesid käsitsi, valida need failidialoogis ("Fail...") või kasutada rippmenüüs olevaid viimati kasutatud faile. Kui avad dialoogi uuesti, on seal kirjas parajasti aktiivsed failinimed. Kolmanda sisendvälja täitmine ei ole kohustuslik. Kui "C" tühjaks jätta, analüüsitakse ainult kahe faili erinevusi. Nupule "Kataloog..." klõpsates saab valida kataloogi. Kui A jaoks on määratud kataloog, saab alustada kataloogide võrdlemist-ühendamist. Kui A on fail, kuid B, C või väljund kataloogid, kasutab &kdiff3; A failinime määratud kataloogides. Kui märkida "Ühenda", saab kasutada ka välja "Väljund". Siiski ei ole nõutav väljundfaili nime kohe määrata, selle võib edasi lükata ka salvestamise ajale. Klõps nupule "Seadista..." avab valikute dialoogi, kus saab enne analüüsi midagi muuta, kui pead seda vajalikuks. Sisendi asetamine ja lohistamine Vahel võib tekkida vajadus võrrelda tekstilõke, mis ei kujuta endast omaette faile. &kdiff3; võimaldab väga lihtsalt asetada teksti lõikepuhvrist parajasti fookuses olevasse võrdlemise sisendaknasse. Võrdlusanalüüs algab kohe seejärel. Avamisdialoogis ei ole sellisel juhul vajalik määrata faile, vaid selle võib kohe sulgeda klõpsuga nupule "Loobu". Samuti võib kasutada lohistamist: lohista fail failihalduris või valitud tekst redaktorist ning kukuta see võrdlemise sisendaknasse. Milleks see hea on? Mõnikord võib fail sisaldada kaht sarnast funktsiooni, kuid kontrollimine, kui sarnased nad ikkagi on, võib olla päris tülikas, kui sa pead näiteks kõigepealt looma kaks faili ja siis nad mõlemad avama. Nüüd aga on võimalik vajalikud osad lihtsalt kopeerida, asetada ja võrdlemine võibki alata. Märkus: praegu ei ole võimalik midagi &kdiff3;-st välja lohistada, toetatud on ainult lohistamine võrdlemise sisendaknasse. Hoiatus: mõned redaktorid tõlgendavad lohistamist muusse rakendusse mitte kopeerimise, vaid lõikamisena. See tähendab, et sa võid kaotada oma esialgsed andmed. Failide võrdlemine ja info tõlgendamine sisendaknas InforibaIga tekstiakna ülaservas asub "inforiba". Sisendakende inforibal seisab täht "A", "B" või "C", failinimi, sirvimisnupp ning aknas esimesena näha oleva rea number. (Pane tähele, et akent "C" ei pruugi olemas olla.) Iga inforiba on erinevat värvi. Kui valid sirvides mõne muu faili või lõpetad failinime redigeerimise klahvile Enter vajutades, laaditakse uus fail ja võrreldakse seda juba laaditud faili(de)ga. VärvidKolmele sisendaknale on omistatud tähed "A", "B" ja "C". "A" värviks on sinine, "B" roheline ja "C" magenta. Need on vaikeväärtused, mida saab muuta seadistustemenüüst. Erinevuse avastamisel näitab värv, milline sisendfail erineb. Kui erinevad mõlemad sisendfailid, siis väljendab seda vaikimisi punane värv (seadistuste kohaselt "konflikti värv"). Värviskeem tuleb eriti kasuks kolme sisendfaili korral, mida võib näha järgmises osas (Ühendamine). KokkuvõttetulpIgast tekstist vasakul asub "kokkuvõttetulp". Kui real on erinevusi, näitab kokkuvõttetulp vastavat värvi. Ainult tühimärkide erinevuse korral on kokkuvõttetulbal näha ruuduline muster. See on abiks programmeerimiskeelte korral, kus tühimärkidel ei ole erilist tähendust, võimaldades ühe hetkega tuvastada, kas on ka mingeid olulisi muudatusi (näiteks C/C++ korral on tühimärkidel mingi roll ainult stringides, kommentaarides, preprotsessoris ja veel mõnel äärmiselt esoteerilisel juhtumil). Kokkuvõttetulpa ja teksti lahutav püstjoon on katkestatud, kui sisendfailis pole selles kohas ühtki rida. Reamurdmise lubamisel on püstjoon murtud ridade juures punkteeritud. ÜlevaateribaParemal on otse kerimisriba kõrval näha "ülevaateriba". See näitab kokkusurutult sisendfaili "A" kokkuvõttetulpa. Nii on kõik erinevused ja konfliktid korraga näha. Kui kasutada ainult kaht sisendakent, on kõik erinevused punased, sest iga erinevus on sellisel juhul ju ka konflikt. Must ristkülik tähistab parajasti aknas näha olevat tekstiosa. Väga pikkade sisendfailide korral, kus sisendi ridade arv on suurem kui ülevaatetulba kõrgus pikslites, mahutatakse ühele ülevaatereale mitu sisendirida. Konflikti näitamist eelistatakse sellisel juhul tavalisele erinevusele ning viimast muutmata olekule, nii ei jää kindlasti nägemata ükski erinevus või konflikt. Ülevaateribale klõpsates näidatakse vastavat kohta tekstis. Ridade joondamine käsitsiVahel seab algoritm kõrvuti valed read. Võib ka juhtuda, et soovid võrrelda mingit tekstilõiku teises failis täiesti teises kohas asuva lõiguga. Sel juhul saad anda &kdiff3;-le käsitsi korralduse teatud read joondada. Märgi esimeses vaates tekst, mida soovid kasutada (tee seda hiirega, nagu kopeerimise puhul), ning seejärel vali käsk "Lisa käsitsi samasus" menüüst "Võrdlemine" (kiirklahv "Ctrl+Y"). Valitud teksti kõrvale ilmub kokkuvõttetulbas oranž riba. Korda sama tegevust teises ja vajaduse korral kolmandaski vaates. &kdiff3; leiab iga toimingu järel automaatselt erinevused ja joondab valitud read. Loomulikult on sel juhul võimalik, et teatud varasemad sobivused kuskil vahepeal enam ei klapi. Praegu ei ole ühendamisel toetatud käsitsi erinevuste kasutamine. Erinevuse osade käsitsi ühendamine ja lahutamineMõnel juhul võib tekstis olla &kdiff3; jaoks liiga vähe või liiga palju erinevaid osasid, et neid ühendada. Sel juhul võib olemasolevad osad liita või lahutada. Uute lõikude lisamiseks vali kõigepealt mõnes sisendaknas read, mis kuuluvad kokku (tee seda samamoodi nagu lõikepuhvrisse kopeerimisel). Seejärel vali käsk "Jaga erinevused valiku juures" menüüst "Ühendamine". Jagatud osad lisatakse valitud teksti esimese rea ette ja viimase rea järele. Kui soovid lisada ainult ühe lõigu, vali tekst mõne muu lõigujagamise alguses. Lõikude liitmiseks ükspuha kumbas sisendaknas vali read lõikudes, mida soovid liita (ühekorraga võib liita mitu lõiku). Seejärel vali käsk "Ühenda valitud erinevused" menüüst "Ühendamine". Ühendamine ja ühendamisväljundi redigeerimisaken Ka ühendamisväljundi redigeerimisaknal (allpool võrdlemise sisendaknaid) on ülaservas inforiba, kus seisab "Väljund:", failinimi ja "[Muudetud]", kui oled midagi muutnud. Tavaliselt leidub seal automaatse ühendamise vahendite pakutav tekst, kuid tihtipeale ka konfliktid. !!! Salvestamine on võimalik alles siis, kui kõik konfliktid on lahendatud !!! (allesjäänud konfliktide lahendamiseks kasuta nuppe "Liigu eelmisele/järgmisele lahendamata konfliktile") Kui on ainult kaks sisendfaili, on iga erinevus ühtlasi konflikt, mis tuleb käsitsi lahendada. Kolme sisendfaili korral käsitletakse esimest baasina, teist ja kolmandat aga potentsiaalseid muudatusi sisaldavate failidena. Kui muudetud on rida ainult sisendis B või C, aga mitte mõlemas, valitakse automaatselt muudetud allikas. Kui aga nii B kui C on (erinevalt) muutnud üht ja sama rida, märgitakse see konfliktina, mis tuleb käsitsi lahendada. Kui B ja C on ühesugused, aga erinevad A-st, valitakse C. KokkuvõttetulpKa ühendamisväljundi redigeerimisaknal on vasakus servas kokkuvõttetulp. See näitab sisendi tähte, millest rida on valitud, või mitte midagi, kui rida on kõigis kolmes allikas võrdne. Konflikti korral on seal küsimärk "?" ning real endal seisab "<Ühendamise konflikt>, kõik ilusasti puust ja punaseks tehtud. Kuna konfliktide lahendamine rida-realt võib võtta päris palju aega, on read rühmitatud gruppidesse, millel on ühesugused erinevuse ja konflikti omadused. Samas on ainult tühimärkide konfliktid eraldatud muudest konfliktidest, et hõlbustada selliste failide ühendamist, kus taanet on muudetud paljudel ridadel. Aktiivse grupi määramine ning ühendamise ja võrdlemise vaadete sünkroniseerimineKui klõpsata hiire vasaku nupuga kokkuvõttetulbal mis tahes aknas, siis valitakse selle rea grupp kõigis akendes ning näidatakse antud grupi algust (see võib kaasa tuua automaatse asukohavahetuse akendes, kui grupi algus ei ole parajasti näha). Valitud grupp muutub sellega "aktiivseks grupiks", see tõstetakse esile "praeguse vahemiku tausta värviga" ning tekstist vasakule ilmub must tulbake. Sisendi A, B või C valimine aktiivse konflikti ja redigeerimise jaoksNupureal menüüriba all on näha kolm sisendi valimise nuppu tähtedega "A", "B" ja "C". Klõpsa ühele neist vastava allika ridade lisamiseks (või eemaldamiseks, kui need on juba lisatud). Mitme sisendi ridade valimiseks klõpsa vajalikele nuppudele vajalikus järjekorras. Kui näiteks soovid, et "B" read oleks väljundis "A" ridadest eespool, klõpsa kõigepealt "B" ja siis "A". Kui kasutad automaatse edasiliikumise võimalust ("Automaatne liikumine järgmisele lahendamata konfliktile pärast allika valimist"), tuleb see välja lülitada, enne kui valid mitme sisendi read või soovid pärast valikut ridu redigeerida. Vastasel juhul hüppab &kdiff3; pärast esimese sisendi valimist järgmise konflikti juurde. Sageli on kasulik ühendamise väljundit otseselt redigeerida. Kokkuvõttetulp näitab iga käsitsi muudetud rea juures tähte "m". Kui erinevused paiknevad viisil, et lihtne sisendi valimine ei anna rahuldavat tulemust, võid märkida vajaliku teksti, selle kopeerida ja asetada otse ühendamise väljundisse. Vahel võib juhtuda, et rida eemaldatakse automaatse liitmisega või redigeerides. Kui gruppi ei ole jäänud enam ühtki rida, ilmub sellele reale tekst <Lähterida puudub>. See on kõigest grupi kohatäitja juhuks, kui muudad meelt ja valid taas mõne allika. Seda teksti ei ole näha ei salvestatud failis ega kopeeritavates/asetatavates valikutes. Tekst "<Ühendamise konflikt>" seevastu liigub küll lõikepuhvrisse, kui valida ja kopeerida/asetada sellist rida sisaldav tekst. Seepärast tasuks sellise võimalusega ettevaatlik olla. Sisendi A, B või C valimine kõigile konfliktideleTavaline ühendamine lahendab lihtsad konfliktid automaatselt. Menüü "Ühendamine" pakub lisaks mõningaid toiminguid muude levinumate vajaduste rahuldamiseks. Kui sul tuleb enamasti konfliktide puhul valida üks ja sama baas, võid valida kõikjal "A", "B" või "C" või ainult veel lahendamata konfliktidele või ainult lahendamata tühimärkide konfliktidele. Kui soovid lahendada iga erinevuse ise käsitsi, võid lülitada sisse võimaluse "Määra erinevused konfliktideks". Kui soovid aga taas panna &kdiff3; automaatselt konflikte lahendama, vali "Lahenda automaatselt lihtsad konfliktid". Seejärel alustab &kdiff3; uuesti ühendamist. Kui selle käigus muudetakse midagi, mida oled varem muutnud, küsib &kdiff3; enne jätkamist, mida soovid teha. Märkus: kui valid lahendamata tühimärkide konfliktide baasi ning võimalus "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse" on sisse lülitatud, koheldakse muutusi numbrites või kommentaarides samuti tühimärkidena. Versioonikontrolli võtmesõnade ja ajaloo (logi) automaatne ühendaminePaljud versioonikontrollisüsteemid toetavad failis spetsiaalsete võtmesõnade kasutamist (nt. "$Date$", "$Header$", "$Author$", "$Log$" jne.). Väljavõtte tegemise ajal muudab versioonikontrollisüsteem neid ridu. Näiteks "$Date$" asemele tuleb "$Date: 2005/03/22 18:45:01 $". Et selline rida on faili iga versiooni puhul erinev, on ühendamise ajal vajalik käsitsi sekkumine. &kdiff3; võimaldab neid automaatselt ühendada. Lihtsate ridade puhul, mis sobivad valikuga "Automaatse ühendamise regulaaravaldis" kõigis sisendfailides, valib &kdiff3; rea B-st või, kui see on olemas, C-st. (Lisaks on vajalik, et mainitud read oleks võrdluses kõrvuti ja eelmine rida ei sisaldaks konflikti.) Automaatse ühendamise saab sooritada kohe ühendamise alates (selleks peab olema sisse lülitatud "Regulaaravaldisega automaatne ühendamine ühendamise alustamisel") või hiljem menüükäsuga "Käivita regulaaravaldisega automaatne ühendamine". Automaatne ühendamine on toetatud ka versioonikontrolli ajaloo ehk logi puhul. Ajaloo automaatse ühendamise võib käivitada ühendamise alustamisel, kui sisse on lülitatud "Versioonikontrolli ajaloo ühendamine ühendamise alustamisel", või hiljem menüükäsuga "Lahenda automaatselt ajalookonfliktid". Tavaliselt algab versioonikontrolli ajalugu reaga, kus seisab võtmesõna "$Log$". See peab sobima kokku valikuga "Ajaloo alguse regulaaravaldis". &kdiff3; tuvastab seejärel, millised järgnevad read kuuluvad ajalukku, anaküüsides juhtmärke enne võtmesõna "$Log$". Kui samasugused "kommentaari sissejuhatuse" märgid esinevad ka järgnevate ridade alguses, kuuluvad need ajalukku. Iga väljavõtte ajal kirjutab versioonikontrollisüsteem unikaalse rea, mis määrab ära versiooni, kuupäeva ja kellaaja, sellele järgnevad kasutaja kommentaariga read. Need moodustavadki ühe ajalookirje. Ajaloosektsioon kasvab iga versioonikontrolli toiminguga, kusjuures viimane kirje on alati kõige ees (otse ajaloo algusrea järel). Paralleelse arendustegevuse ajal võivad kaks või enam arendajat failiga tegelda, millisel juhul ühendamise ajalugu sisaldab mitut kirjet, mis harude ühendamisel satuvad konflikti. Et nende ühendamine võib olla üsna vaevaline, toetab &kdiff3; kaht strateegiat: mõlema/kõigi arendajate ajaloo lisamine etteotsa või ajaloo sorteerimine kasutaja määratud võtme järgi. Esimene variant on kõige lihtsam. &kdiff3; peab lihtsalt tuvastama, millised read moodustavad ühe ajalookirje. Enamik versioonikontrollisüsteeme lisab iga ajalookirje järele tühja rea. Kui muid tühje ridu pole, piisab sellest &kdiff3;-le. Sel juhul olgu "Ajaloo alguse regulaaravaldis" lihtsalt tühi. Kui tühjast reast ainuüksi ei piisa, võid koostada regulaaravaldise, mis tuvastab ajalookirje alguse. Pane tähele, et &kdiff3; eemaldab topeltajalookirjed. Kui sisendfailis esineb ajalookirje mitmel korral, siis väljundisse jääb alles ainult üks kirje. Kui soovid ajalugu sortida, tuleb määrata sorteerimisvõti. Kasuta väljal "Ajaloo alguse regulaaravaldis" sulge regulaaravaldise nende osade rühmitamiseks, mida hiljem kasutada sorteerimisvõtmena. Seejärel määra "ajaloo sortimisvõtmete järjekord", milles komaga (",") eraldatud arvud viitavad grupi positsioonile regulaaravaldises. See ei pruugi otsekohe õnnestuda, mistõttu tasub regulaaravaldist ja võtme genereerimist testida spetsiaalses dialoogis, mis avaneb klõpsuga nupule "Regulaaravaldiste test". Näide: oletame, et ajalugu näeb välja nii: /************************************************************************** ** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ ** ** \main\integration_branch_12 2 Apr 2001 10:45:41 tom ** Merged branch simon_branch_15. ** ** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry ** Improved the speed for subroutine convertToMesh(). ** Fixed crash. **************************************************************************/ Ajaloo algusrida vastab regulaaravaldisele ".*\$Log.*\$.*". Sellele järgnevad ajalookirjed. Real võtmesõnaga "$Log$" seisab alguses kaks "*", millele järgneb tühik. &kdiff3; hindab esimese mittetühimärgist stringi "kommentaari alguseks" ning eeldab, et ajalugu lõpeb esimesel real, millel kommentaari algust enam ei seisa. Näites lõpeb viimane rida stringiga, mille alguses on samuti kaks "*", kuid tühimärgi asemel järgneb veel rida märke "*". Seetõttu hinnatakse seda ajaloo lõpuks. Kui ajaloo sortimist pole vaja, siis võib ajalookirje alguse regulaaravaldis näha välja umbes järgmine (rida on jagatud kaheks, sest see ei mahu muidu ära). \s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* Täpsemalt kõneleb regulaaravaldistest Trolltechi regulaaravaldiste dokumentatsioon. Pane tähele, et "\s" (väike "s") on suvaline tühik, "\S" (suur "S") iga mittetühik. Meie näites sisaldab ajalookirje algul versiooniteavet vastavalt regulaaravaldisele "\\main\\\S+", kuupäeva päevaga "[0-9]+", kuuga "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" ja aastaga "[0-9][0-9][0-9][0-9]", kellaaega "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" ning lõpuks ka arendaja kasutajanime ".*". Pane tähele, et kommentaari alguse märgid (näites "**") eemaldab &kdiff3; juba enne otsingu alustamist, mistõttu regulaaravaldise alguses seisab nulli või enama tühimärgi vaste "\s*". Et kommentaarimärgid võivad failiti erineda (nt. C/C++ kasutab teistsuguseid kommentaarimärke kui Perli skript), kannab &kdiff3; ise alguses seisvate kommentaarimärkide eest hoolt ja sul pole vaja neid regulaaravaldises määrata. Kui soovid ajalugu sortida, tuleb arvutada sortimisvõti. Selleks tuleb regulaaravaldise vajalikud osad sulgude abil rühmitada (need sulud võivad avaldisse jääda ka siis, kui ajaloo sortimine välja lülitatakse). \s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) Sulgudes on nüüd 1) versiooniteave, 2) kuupäev, 3) kuu, 4) aasta, 5) kellaaeg, 6) nimi. Aga kui me soovime sortida kuupäeva ja kellaaja järgi, tuleb luua võti, milles elemendid on teises järjekoras: esimesena aasta, siis kuu, päev, kellaaaeg, versiooniteave ja nimi. Sestap tuleb sortimisvõtme järjekorraks määrata "4,3,2,5,1,6". Et kuunimed ei ole sortimiseks kuigi head ("Apr" oleks esimene), tuvastab &kdiff3; kuude järjekorra ja kasutab nende nime asemel hoopis järjekorranumbrit ("Apr"->"04"). Kui leitakse number, teisendatakse see neljakohaliseks, lisades sortimise huvides ette nullid. Lõpuks näeb esimese ajalookirje algusrea sortimisvõti välja järgmine: 2001 04 0002 10:45:41 integration_branch_12 tom Täpsemalt räägib sellest ka osa Ühendamise seadistused. Liikumine ja redigeerimine Enamasti saab liikuda kerimisribade ja hiirega, kuid soovi korral on võimalik liikuda ka klahvidega. Kui klõpsata mis tahes aknasse, saab sarnaselt muude rakendustega kasutada noolenuppe, Page Up ja Page Down, Home, End, Ctrl+Home, Ctrl+End. Liikumiseks saab kasutada ka sisendafailide kerimisribast paremal pool asuvat ülevaateriba, mis võimaldab vajalikule kohale liikuda klõpsuga riba vajalikule kohale. Üles-alla kerimiseks saab kasutada ka hiireratast. Ühendamisväljundi redigeerimisaknas saab samuti kasutada kõiki tavalisi teksti redigeerimisel kasutatavaid klahve. Klahviga Insert saab lülitada lisamis- ja ülekirjutamisrežiimi (vaikimisi kehtib lisamisrežiim). Klõps hiire vasaku nupuga mis tahes kokkuvõttetulbal sünkroniseerib kõik aknad, nii et neid näitavad üht ridadegruppi (seda selgitas lähemalt osa Grupi määramine ning ühendamis- ja võrdlemisvaate asukoha sünkroniseerimine). Nupureal on üheksa liikumisnuppu, millega saab hüpata aktiivsele/esimesele/viimasele erinevusele, eelmisele/järgmisele erinevusele (Ctrl+Nool üles/Ctrl+Nool alla), eelmisele/järgmisele konfliktile (Ctrl+Page Down/Ctrl+Page Up) või eelmisele/järgmisele lahendamata konfliktile. Pane tähele, et &kdiff3; jaoks jääb "konflikt", mida ei lahendata automaatselt ühendamise alguses, "konfliktiks" ka pärast selle käsitsi lahendamist. Seepärast on ka eristatud "lahendamata konfliktid". Automaatne edasiliikumine Lisaks neile on nupp "Pärast allikavalikut liigutakse automaatselt järgmisele lahendamata konfliktile". Seda sisse lülitades hüppab &kdiff3; allika valimisel automaatsel selles leiduval lahendamata konfliktile. See on abiks, kui soovid tavaliselt valida ainult ühe allika. Kui sul läheb vaja mõlemat allikat või soovid pärast valimist tegelda redigeerimisega, on tõenäoliselt mõttekas see välja lülitada. Enne järgmisele lahendamata konfliktile liikumist näitab &kdiff3; hetkeks langetatud valiku toimet. Kui kaua see näitamine kestab, saab määrata seadistustes: "automaatse edasiliikumise viivitus" on võimalik määrata millisekundites 0 ja 2000 vahel. Vihje: kas oled tüdinud kogu aeg klõpsamast? Kasuta siis pisikest automaatse edasiliikumise viivitust ning kiirklahve Ctrl+1/2/3 A/B/C valimiseks. Valimine, kopeerimine ja asetamine Sisendaknas kursorit ei näidata, seepärast tuleb valimine teha hiirega, klõpsates vasaku nupuga valiku alguses, hoides nuppu all ja liikudes valiku lõppu, pärast mida võib nupu vabastada. Sõna saab valida ka sellel topeltklõpsu tehes. Ühendamisväljundi redigeerimisaknas saab valida ka klaviatuuri abil, hoides all klahvi Shift ja liikudes noolenuppudega. Kui valik ulatub üle nähtava ala, võib viia hiire üle akna piirde, millisel juhul &kdiff3; kerib hiirekursori suunas. Väga suure valiku korral võib kasutada ka hiirenuppu all hoides navigeerimisklahve. Näiteks konkreetsesse kohta jõudmiseks võib tarvitada klahve Page Up ja Page down. Õigesse kohta jõudes vabasta hiirenupp. Aktiivses aknas kõige valimiseks kasuta menüükäsku "Redigeerimine"->"Vali kõik" (Ctrl+A). Lõikepuhvrisse kopeerimiseks tuleb vajutada nuppu "Kopeeri" (Ctrl+C või Ctrl+Insert). Lisaks sellele on olemas ka võimalus "Valiku automaatne kopeerimine". Selle sisselülitamisel kopeeritakse kõik, mida oled valinud, automaatselt ning sul puudub vajadus anda mis tahes moel kopeerimiskäsku. Kuid ole selle võimalusega ettevaatlik, sest nii võib kogemata üle kirjutada vajaliku lõikepuhvri sisu. "Lõika" (Ctrl+X või Shift+Delete) kopeerib valiku lõikepuhvrisse ja kustutab selle failist. "Aseta" (Ctrl+V või Shift+Insert) lisab lõikepuhvris oleva teksti kursori asukohta või asendab lõikepuhvri sisuga parajasti valitud teksti. Kui asetad lõikepuhvri sisu ükspuha millisesse sisendaknasse, näidatakse seda seal otsekohe ja alustatakse aega viitmata uuesti võrdlemist. See on kasulik siis, kui soovid kiiresti kuskilt teksti võtta ja võrrelda seda millegi muuga, ilma et peaksid eelnevalt faili looma hakkama. Salvestamine Salvestamine on võimalik ainult siis, kui kõik konfliktid on lahendatud. Kui fail on juba olemas ning sisse on lülitatud valik "Failidest tehakse varukoopia", antakse olemasolevale failile laiend ".orig". Kui selline peaks juba olemas olema, see kustutatakse. Kui väljud või oled alustanud uud võrdlusanalüüsi ning andmeid ei ole veel salvestatud, pärib &kdiff3; sinu käest, kas soovid salvestada, loobuda või jätkata ilma salvestamata (&kdiff3; ei salvesta andmeid seesmiselt, nii et kui &kdiff3; väljastpoolt "tappa", lähevad andmed kaotsi). Realõpud salvestatakse vastavalt operatsioonisüsteemi tavale. UNIXi korral lõpetab rea reavahetusmärk "\n", Win32 süsteemides kelgu tagastamise sümbol pluss reavahetusmärk "\r\n". &kdiff3; ei säilita sisendfailide realõppe, mis ühtlasi tähendab, et &kdiff3; kasutamisel binaarfailidega peaks olema erakordselt ettevaatlik. Stringide otsimine Stringe saab otsida &kdiff3; kõigis tekstiakendes. Redigeerimismenüü käsk "Otsi..." (Ctrl+F) avab dialoogi, kus saab määrata, mida otsida. Samuti saab valida, millises aknas otsida. Otsimine algab alati teksti algusest. Käsk "Otsi järgmine" (F3) viib otsitava stringi järgmise esinemise juurde (kui seda muidugi on). Kui valid otsimise mitmes aknas, otsitakse esmalt ülalt alla läbi esimene aken, seejärel taas ülalt alla teine aken jne. Trükkimine &kdiff3; toetab tekstifailide erinevuste trükkimist. Menüüs fail leiduv käsk "Trüki..." (Ctrl+P) avab dialoogi, kus saab valida printeri ja muuta teatud valikuid. Mitmel moel saab kindlaks määrata, millist vahemikku trükkida. Et erinevates operatsioonisüsteemides on trükkimisdialoog erinev, siis on ka trükkimisvahemiku määramises teatud erinevusi. Kõik:Trükitakse kõik. Aktiivne:Trükitakse lehekülg alates aknas esimesena näha olevast reast (süsteemides, kus seda valikut pole, saab sama tulemusi, kui määrata trükkimiseks lehkülg 10000). Valik:Enne trükkimiskäsku tuleb sel juhul valida mõnes sisendaknas hiirega tekst (nagu kopeerimisel), mis paneb paika trükitava valiku algus- ja lõpurea. Kui üheski sisendaknas pole midagi valitud, ei saa seda võimalust kasutada (süsteemides, kus see valik üldse puudub, saab sama tulemuse, kui määrata trükkimiseks lehekülg 9999). Vahemik:Trükitakse määratud esimesest kuni määratud viimase leheküljeni. Ülejäänud trükkimisvalikud on tavapärasemad: Font, fondi suurus Reanumbrite näitamine Reamurdmine Värvid jne. Trükkida on soovitatav rõhtpaigutusega. Valikud Valikud ja viimati avatud failide nimekiri salvestatakse alati, kui rakendusest väljud, ning laaditakse uuesti rakenduse taaskäivitamisel (menüükäsk Seadistused -> &kdiff3; seadistamine...) Font Valib fikseeritud laiusega fondi (mõnes süsteemis pakub dialoog ka muutuva laiusega fonti, kuid seda ei tasuks kasutada). Kaldkiri erinevustele:Selle valimisel näidatakse teksti erinevusi valitud fondi kaldkirjas. Kui valitud font kaldkirja ei toeta, ei tee see midagi. Värvid Esiplaani värv:Tavaliselt must. Tausta värv:Tavaliselt valge. Erinevuse tausta värv:Tavaliselt helehall. Värv A:Tavaliselt tumesinine. Värv B:Tavaliselt tumeroheline. Värv C:Tavaliselt tume magenta. Konflikti värv:Tavaliselt punane. Praeguse vahemiku tausta värv:Tavaliselt helekollane. Praeguse vahemiku erinevuse tausta värv:Tavaliselt tumekollane. Käsitsi määratud samasuse vahemiku värv:Tavaliselt oranž. Uusima faili värv kataloogide võrdlemisel:Tavaliselt roheline. Vanima faili värv kataloogide võrdlemisel:Tavaliselt punane. Keskmise vanusega faili värv kataloogide võrdlemisel:Tavaliselt tumekollane. Puuduvate failide värv kataloogide võrdlemisel:Tavaliselt must. Kataloogide võrdlemise värvide muutmine rakendub alles järgmise kataloogide võrdlemise ajal. Ainult 16 või 256 värviga süsteemides ei pruugi mõned värvid puhtal kujul saadaval olla. Sellistes süsteemides valib puhta värvi nupp "Vaikeväärtused". Redaktori seadistused TAB lisab tühikud:Kui see ei ole sees, lisatakse tabeldusklahvile vajutades tabeldusmärk, kui see on sees, vastav kogus tühikuid. TABi suurus:Kohandatav oma maitsele. Vaikimisi 8. Automaatne taandus:Vajutades klahvile Enter, kasutatakse uuel real eelmise rea taandust. Valiku automaatne kopeerimine:Iga tekstivalik kopeeritakse otsekohe lõikepuhvrisse, ilma et oleks vaja anda spetsiaalset kopeerimiskäsku. Realõpu stiil:Salvestamisel saab valida, millist realõpu stiili eelistada. Vaikimisi on see valitud operatsioonisüsteemi põhjal. Erinevuse seadistused Faile võrreldes püüab &kdiff3; kõigepealt seada kokku read, mis on kõigis sisendfailides ühtmoodi. Ainult sel etapil võib ta eirata tühimärke. Teisel etapil võrreldakse iga rida ning nüüd võetakse arvesse ka tühimärgid. Tühimärke ei ignoreerita ka ühendamisel. Säilitatakse reavahetus:Mõned redaktorid mõnes süsteemis salvestavad iga rea lõpu kelgu tagastuse märgiga '\r' ning reavahetusmärgiga '\n', teised aga ainult reavahetusmärgiga '\n'. Üldiselt &kdiff3; ignoreerib kelgu tagastuse sümbolit, kuid sellisel juhul võivad tegelikult erineva suurusega failid paista võrdlemisel ühesugustena. Selle valiku sisselülitamisel on kelgutagatusmärgid näha, kuid neid koheldakse tühimärkidena. Ühendamise ajal tuleb see võimalus välja lülitada. Vaikimisi on väljas. Numbreid ignoreeritakse:Vaikimisi väljas. Numbrilisi sümboleid ('0'-'9', '.', '-') ignoreeritakse analüüsi esimeses, üldvõrdlevas osas. Lõpptulemuses näidatakse siiski erinevusi, aga neid käsitletakse kui tühimärke. C/C++ kommentaare ignoreeritakse:Vaikimisi väljas. Muudatusi kommentaarides tõlgendatakse tühimärkide muudatustena. Tõstu ignoreeritakse:Vaikimisi väljas. Märkide tõstu erinevusi (nt 'A' ja 'a') tõlgendatakse nagu tühimärkide muudatusi. Eeltöötluse käsk:Vaata järgmist osa. Ridade sobivuse eeltöötluse käsk:Vaata järgmist osa. Karm uurimine:Püüab tuvastada ka kõige pisemad erinevused. Vaikimisi sees. Ilmselt on sellest rohkem kasu keerulisemate ja suurte failide korral. Aga mõistagi on see väga suurte failide puhul ka väga aeglane. Ühendamise seadistused Automaatse edasiliikumise viivitus (ms):Kui automaatne edasiliikumine on sisse lülitatud, määrab see võimalus, kui kaua näidatakse valiku tulemust, enne kui hüpatakse järgmisele lahendamata konfliktile. Tühimärkide käsitlemine 2/3 faili ühendamisel:Lahendab automaatselt kõik tühimärkide konfliktid määratud faili valides (vaikimisi käsitsivalik). Kasulik, kui tühimärgid pole olulise tähtsusega. Kui seda läheb ainult mõnikord vaja, kasuta parem ühendamismenüü käske "Vali A/B/C kõigi lahendamata tühimärgikonfliktide korral". Pane tähele, et kui sees on "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse", rakendub see automaatne valik ka kõigile numbrite või kommentaaride konfliktidele. Automaatühendamise regulaaravaldis:Regulaaravaldis ridadele, mille puhul &kdiff3; peab automaatselt valima allika. Vt. ka Automaatne ühendamine... Regulaaravaldisega automaatühendamine ühendamise alustamisel:Valimise korral käivitab &kdiff3; ühendamise alustamisel automaatse ühendamise, kasutades selleks "automaatühendamise regulaaravaldist". Ajaloo alguse regulaaravaldis:REgulaaravaldis ajalookirje alguse tuvastamiseks. Tavaliselt sisaldab see rida võtmesõna "$Log$". Vaikimisi: ".*\$Log.*\$.*" Ajalookirje alguse regulaaravaldis:Ühendamise ajaloo kirje koosneb mitmest reast. Siin saab koostada regulaaravaldise, mis tuvastab esimese rea (ilma alustavate kommentaarimärkideta). Sulgudega saab rühmitada võtmed, mida soovid kasutada sortimisel. Tühjaksjätmise korral eeldab &kdiff3;, et ajalookirjeid eraldavad tühjad read. Vaata ka Automaatne ühendamine... Ajaloo ühendamise sortimine:Versioonikontrolli ajaloo sortimise lubamine. Ajalookirje alguse sortimisvõtmete järjekord:Ajalookirje alguse tuvastamiseks kasutatavas regulaaravaldises võib tarvitada sulge, millega rühmitatakse sortimiseks pruugitavad võtmed. Võtmete järjekorra määramiseks (need kujutavad endast arve alates 1) kirjuta nad komaga eraldatult (nt. "4,5,6,1,2,3,7"). Kui see andmata jätta, ei sordita. Vaata ka Automaatne ühendamine... Versioonikontrolli ajaloo ühendamine ühendamise alustamisel:Sisselülitamisel käivitab &kdiff3; ühendamise alustamisel eelnevalt määratud tingimustel automaatse ajaloo ühendamise. Ajalookirjete maks. arv:&kdiff3; kärbib ajaloo, säilitades ainult määratud hulga kirjeid. Kärpimise vältimiseks määra väärtuseks -1. Vaikimisi: -1. Regulaaravaldiste testSee nupp avab dialoogi, kus saab sisestatud regulaaravaldist testida ja parandada. Kopeeri lihtsalt vajalikud andmed oma failidest siia. "Sobivuse tulemused" näitavad kohe, kas avaldis sobib või mitte. "Sorteerimisvõtme tulemus" näitab ajaloo ühendamise sortimisel kasutatavat võtit. Ebaolulise ühendamise käsk:Siin saab määrata käsu, mis antakse siis, kui &kdiff3; avastab kolme faili ühendamisel, et fail B ei sisalda mingeid olulisi andmeid, mida poleks juba failis C. Käsk kutsutakse välja kolmest failinimest parameetriga. Andmeid, mis sobivad "automaatse ühendamise regulaaravaldisega" või ajalooga, ei peeta oluliseks. Kataloogide ühendamine Need valikud käivad kataloogide uurimise ja nende ühendamise kohta, millest täpsemalt räägib osa Kataloogide võrdlemise ja ühendamise seletused. Siiski on üks valik, mis käib ka üksikfailide salvestamise kohta: Failidest tehakse varukoopia:Kui faili salvestamisel on sellest olemas vanem versioon, antakse viimasele laiend ".orig". Kui peaks olemas olema ka samanimeline varasem fail laiendiga ".orig", siis see kustutatakse. Riigi ja keele valikud Keel:Kasutajaliidese keele määramine. Selle muutmine ei mõjuta töötavat rakendust. Keele muutmiseks tuleb &kdiff3; sulgeda ja uuesti käivitada. (See valik ei ole kasutatav &kdiff3; KDE versioonis, sest seal saab keele määrata KDE üldises seadistuses.) Kõikjal kasutatakse kodeeringut:Järgnevaid kodeeringuvalikuid saab määrata eraldi, välja arvatud juhul, kui äsjatoodud valik on sisse lülitatud, sest siis võtavad kõik valikud esimese valiku väärtuse. Kohalik kodeering:Kodeeringu valimise väljade kohal seisab märge, mis annab teada kohaliku kodeeringu (see ei ole muudetav, vaid lihtsalt teadmiseks, kui sa ei peaks oma kodeeringut teadma). A/B/C kodeering:Sisendfailide kodeeringu kohandamine. See mõjutab inglise tähestikku mittekuuluvate sümbolite esitamist. Kohandada saab iga kodeeringut eraldi, nii et sul on isegi võimalus võrrelda ja ühendada faile, mis on salvestatud erinevas kodeeringus. Kodeering ühendamisväljundil ja salvestamisel:Kui muudad faili, saad siis määrata, millises kodeeringus salvestatakse see kettale. Eelprotsessori failide kodeering:Kui oled määranud eelprotsessorid, võib juhtuda, et nad ei suuda sinu kodeeringut töödelda (kui näiteks sinu failid on 16-bitises Unicode''is, eelprotsessor suudab aga töödelda vaid 8-bitist ASCII-d). Siin saad määrata eelprotsessori väljundi kodeeringu. Paremalt vasakule keeled:Mõningaid keeli kirjutatakse paremalt vasakule. Selle valiku sisselülitamisel näitab &kdiff3; võrdluse sisendakendes ja ühendamise väljundaknas teksti paremalt vasakule. Pane tähele, et kui käivitad &kdiff3; käsurealt võtmega "--reverse", kasutab kogu rakendus paremalt vasakule paigutust (seda võimaldab Qt). Käesolev käsiraamat on kirjutatud eeldusel, et "Paremalt vasakule keeled" ega võti "reverse" ei ole kasutusel. Sestap tuleb nende kasutamisel mõningaid "vasakul" või "paremal" antud kirjeldusi lugeda lihtsalt selle teadmise valguses vastupidi. Muud (neid valikuid ja toiminguid saab kasutada menüü või nupuriba vahendusel) Näita reanumbreid:Võimalus valida, kas sisendfailidel näidatakse ridade numbreid. Näita erinevusi tühiku- ja tabeldusmärkides:Vahel võivad nähtavad tühikud ja tabeldusmärgid tõsiselt häirida, millisel juhul on võimalik nende näitamine välja lülitada. Näita tühimärke:Selle väljalülitamisel ei tõsteta esile tühimärkide erinevusi tekstis ega ülevaatetulbal. Pane tähele, et et kui sees on "Numbreid ignoreeritakse" või "C/C++ kommentaare ignoreeritakse", rakendub see ka kõigile numbrite või kommentaaride konfliktidele. Ülevaate valikud:Neid valikuid saab kasutada ainult kolme faili võrdlemisel. Tavarežiimis näidatakse erinevusi ühel värvilisel ülevaatetulbal. Kuid vahel võivad huvi pakkuda kolmest faili ainult kahe erinevused. Valides vastavalt ülevaate "A vs. B", "A vs. C" või "B vs. C", näidatakse tavalise ülevaatetulba kõrval teist vajaliku infoga. Reamurdmine võrdlusakendes:Read murtakse, kui nende pikkus ületab akna laiust. Näita akent A/B/C:Vahel võib tekkida tahtmine ekraanil ruumi juurde tekitada, et näha paremini näiteks pikki ridu. Sellisel juhul saab peita aknad, mis ei ole hetkel olulised (menüü Aken). Lülita poolitamissuund:Lülitab võrdlusakende asetsemist üksteise kõrval (A vasakul pool B ja B vasakul pool C) ning üksteise kohal (A B kohal ja B C kohal). Ka see võib olla abiks pikkade ridade korral (menüü Aken). Kiirühendamine:Mõnikord võib leida erinevuste vaatamisel, et käes on aeg tegelda ühendamisega. "Ühenda praegune fail" menüüs Kataloog toimib ka siis, kui sa võrdled ainult kaht faili. Ühekordne klõps käivitab ühendamise ning kasutab vaikimisi väljundifaili nimena viimase sisendfaili nime (kui seda on kasutatud ühendamise taaskäivitamiseks, väljundfaili nimi säilitatakse). Kiirklahvide seadistamine Praegu toetab ainult KDE versioon kasutaja võimalust määrata kiirklahve (menüükäsk Seadistused -> Kiirklahvide seadistamine...) Eeltöötluse käsud: &kdiff3; toetab kaht eeltöötluse võimalust. Eeltöötluse käsk:Mis tahes faili lugemisel filtreeritakse see läbi siin määratud käsu. Algse faili asemel näeb siis antud käsu väljundit. Sul on võimalik panna kirja oma eeltöötluse käsk, mis rahuldaks just sinu vajadused. Kasuta seda võimalust näiteks faili ülearuste osade kõrvaldamiseks või taande automaatseks korrigeerimiseks vms. Ridade sobivuse eeltöötluse käsk:Mis tahes faili lugemisel filtreeritakse see läbi siin määratud käsu. Kui määratud on ka eeltöötluse käsk (vaata eespool), on eeltöötluse käsu väljund ridade sobivuse eeltöötluse käsu sisendiks. Viimase väljundit kasutatakse ainult analüüsi esimeses, reasobivuse faasis. Sul on võimalik panna kirja oma eeltöötluse käsk, mis rahuldaks just sinu vajadused. Igal sisendi real peab olema talle vastav väljundi rida. Selle mõte on pakkuda kasutajale suuremat paindlikkust võrdlemistulemuse seadistamisel. Kuid see nõuab välist programmi ja mõistagi ei taha enamik sellist ise kirjutama hakata. Õnneks suudab enamasti selliste asjadega toime tulla sed või perl. Näide: lihtne testnäide: Võtame faili a.txt (6 rida): aa ba ca da ea fa Ja faili b.txt (3 rida): cg dg eg Ilma eeltöötluseta seatakse vastavusse järgmised read: aa - cg ba - dg ca - eg da ea fa Tõenäoliselt ei ole see sugugi see, mida sa soovisid, sest oluliseks infokandjaks on just esimesed tähed. Et sobivusalgoritn jätaks arvesse võtmata teise tähe, kasutame reasobivuse eeltöötluse käsku, mis asendab 'g' 'a'-ga: sed 's/g/a/' Selle käsu korral on võrdlemise tulemus järgmine: aa ba ca - cg da - dg ea - eg fa Seesmisel näeb sobivusalgoritm faile juba pärast reasobivuse eeltöötluse rakendamist, kuid ekraanil jääb fail muutmata. (Tavaline eeltöötlus muudaks andmeid ka ekraanil.) <command >sed</command >'i põhitõed Selles osas tutvustame ainult programmi sed üksikuid põhimõttelisi omadusi. Rohkem infot leiab käsuga info:/sed või aadressilt http://www.gnu.org/software/sed/manual/html_mono/sed.html. Windowsi eelkompileeritud versioon asub aadressil http://unxutils.sourceforge.net. Pane tähele, et järgmistes näidetes eeldame, et käsk sed asub mõnes keskkonnamuutujaga PATH määratud kataloogis. Kui see nii ei ole, tuleb sul määrata käsu täielik asukoht. Pane tähele ka seda, et järgnevates näidetes on kasutatud ühekordset jutumärki ('), mis Windowsis ei toimi - seal tuleb kasutada topeltjutumärke ("). Antud kontekstis kasutatakse ainult sed'i 'asenduskäsku: sed 's/REGULAARAVALDIS/ASENDUS/LIPUD' Enne uue käsu kasutamist &kdiff3;-ga võiks seda esmalt testida konsoolil. Siin tuleb kasuks käsk echo. Näide: echo abrakadabra | sed 's/a/o/' -> obrakadabra Toodud näites on tegemist äärmiselt lihtsa sed-käsuga, kus asendatakse esimene "a" "o"-ga. Kui soovid asendada kõik esinemiskorrad, tuleb kasutada lippu "g": echo abrakadabra | sed 's/a/o/g' -> obrokodobro Sümbol "|" on torukäsk, mis edastab eelmise käsu väljundi järgmise käsu sisendile. Kui soovid testida pikema failiga, võid kasutada käsku cat, kui tegemist on UNIX-i süsteemiga, või type, kui tegu on Windowsiga. sed sooritab asenduse igal real. cat failinimi | sed võtmed Näited <command >sed</command >'i kasutamise kohta &kdiff3;-ga Muud tüüpi kommentaaride ignoreerimine Praegu mõistab &kdiff3; ainult C/C++ kommentaare. Reasobivuse eeltöötluse käsuga saab aga ignoreerida ka muud tüüpi kommentaare, teisendades need C/C++ kommentaarideks. Näide: kui soovid ignoreerida kommentaare, mille alguses on "#", tuleks need teisendada nii, et alguses oleks "//". Pane tähele, et seejuureks peaks olema võimalus "C/C++ kommentaare ignoreeritakse" sisse lülitatud, muidu pole asjal mõtet. Vastav reasobivuse eeltöötluse käsk näeb välja selline: sed 's/#/\/\//' Kuna sed omistab sümbolile "/" eritähenduse, on oluline asetada asendusstringis iga "/" ette sümbol "\". Mõnikord on "\" vajalik teatud ertähendusega sümbolite lisamiseks või eemaldamiseks. Nüüd on olulised üksikjutumärgid (') enne ja pärast asenduskäsku, sest vastasel juhul püüab shell mõningaid erisümboleid, näiteks '#', '$' või '\' tõlgendada juba enne nende edastamist käsule sed. Pane tähele, et Windowsis tuleb anda topeltjutumärgid ("). Windows asendab ka muid sümboleid, näiteks '%', nii et siin võib olla vajalik veidi eksperimenteerida. Tõstutundetu võrdlus Järgmise reasobivuse eeltöötluse käsuga saab kogu sisendi muuta suurtäheliseks: sed 's/\(.*\)/\U\1/' Siin on ".*" regulaaravaldis, mis sobib iga stringiga, antud kontekstis siis iga real asuva sümboliga. "\1" asendusstringis tähistab sobivat teksti esimeses "\(" and "\)" paaris. "\U" teisendab sisestatud teksti suurtäheliseks. Versioonikontrolli võtmesõnade ignoreerimine CVS ja muud versioonikontrollisüsteemid kasutavad mitmeid võtmesõnu automaatselt genereeritavate stringide lisamiseks (info:/cvs/Keyword substitution). Kõik need järgivad mustrit "$VÕTMESÕNA genereeritud tekst$". Nüüd läheb meil vaja reasobivuse eeltöötluse käsku, mis eemaldaks ainult genereeritud teksti: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' Võimalikke võtmesõnu eraldab "\|". Seda loendit võid mõistagi vastavalt oma vajadustele muuta. Enne "$" on kindlasti vajalik "\", sest muidu on "$" sobivuseks rea lõpp. Kui katsetad sed'iga, hakkad arvatavasti veidi aduma regulaaravaldiste mõtet ja võib-olla isegi neid armastama. Iseenesest on regulaaravaldised väga kasulikud, sest päris paljud programmid toetavad sarnast võimalust. Numbrite ignoreerimine Numbrite ignoreerimine on tegelikult juba sisseehitatud võimalus. Kuid näitame siinkohal, kuidas see näeks välja reasobivuse eeltöötluse käsuna: sed 's/[0123456789.-]//g' Sobivad kõik sümbolid '[' ja ']' vahel ning neid ei asendatagi, vaid lihtsalt kõrvaldatakse. Teatud veergude ignoreerimine Tekst võib olla rangelt vormindatud ning sisaldada näiteks veergu, mida soovid alati ignoreerida, samas aga muid veerge analüüsiks kasutada. Järgnevas näites ignoreeritakse viit esimest veergu (sümbolit), järgmised kümme säilitatakse, siis ignoreeritakse taas viit veergu ning ülejäänud rida säilitatakse. sed 's/.....\(..........\).....\(.*\)/\1\2/' Iga punkt '.' vastab ühele sümbolile. "\1" ja "\2" asendusstringis tähistavad sobivat teksti esimeses ja teises "\(" ja "\)" paaris, märkides säilitatavat teksti. Mitme asenduse kombineerimine Vahel võib tekkida tahtmine teha mitu asendust korraga. Selleks tuleb nende eraldamiseks kasutada semikoolonit ';'. Näide: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO <command >perl</command >i kasutamine <command >sed</command >'i asemel sed'i asemel võib kasutada ka midagi muud, näiteks perl. perl -p -e 's/REGULAARAVALDIS/ASENDUS/LIPUD' Kuid perl on mõnevõrra erinev. Pane tähele, et kui sed-ile oli vaja "\(" ja "\)", siis perl-ile on vaja lihtsalt "(" ja ")" ilma eelneva '\'. Näide: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Eeltöötluse sooritamise järjekord Andmed suunatakse läbi sisemiste ja väliste eeltöötluse käskude järgmises järjekorras Tavaline eeltöötlus, Reasobivuse eeltöötlus, Tõstu ignoreerimine (teisendamine suurtäheliseks), C/C++ kommentaaride tuvastamine, Numbrite ignoreerimine, Tühimärkide ignoreerimine Tavalise eeltöötluse tulemusandmed säilitatakse näitamiseks ja ühendamiseks. Muud operatsioonid muudavad ainult andmeid, mida näeb reasobivuse võrdlusalgoritm. Neil harvadel juhtudel, kui kasutad tavalist eeltöötluse käsku, arvesta, et reasobivuse eeltöötluse käsk peab tavalise eeltöötluse käsu väljundit oma sisendiks. Hoiatus Eeltöötluse käsud on sageli vägagi kasulikud, aga nagu ikka võimalustega, mis muudavad sinu teksti või peidavad automaatselt teatud erinevused, võib sel moel kogemata mõningad erinevused kahe silma vahele jätta või eriti halval juhul isegi olulised andmed hävitada. Seetõttu teatab &kdiff3; ühendamisel sellest, et kasutatakse tavalist eeltöötluse käsku, ning pärib, kas seda lubada või mitte. Kuid sind ei hoiatata, kas reasobivuse eeltöötluse on aktiivne või mitte. Ühendamine on valmis alles siis, kui kõik konfliktid on lahendatud. Kui lülitad välja võimaluse "Tühimärkide näitamine", siis on nähtamatud ka erinevused, mis eemaldati reasobivuse eeltöötluse käsuga. Kui ühendamisel ei saa kasutada nuppu 'Salvesta' (sest failis on veel konflikte), lülita "tühimärkide näitamine" sisse. Kui sa ei soovi neid enamasti vähese tähtsusega erinevusi käsitsi ühendada, vali ühendamismenüüst käsk "Vali [A|B|C] kõigi lahendamata tühimärgikonfliktide korral". Kataloogide võrdlemine ja ühendamine &kdiff3;-s Kataloogide võrdlemise ja ühendamise sissejuhatus Programmeerijad peavad sageli oma eesmärgi saavutamiseks muutma kataloogis paljusid faile. Selle ülesande kergendamiseks võimaldab &kdiff3; võrrelda ja ühendada ka terveid katalooge koos nende alamkataloogidega! Kuigi kataloogide võrdlemine ja ühendamine tundub olevat üsna lihtne ja selge, tuleks siin siiski arvestada mitme asjaga. Kõige olulisem on kahtlemata see, et sellisel juhul puudutab iga operatsioon paljusid faile korraga. Kui sa ei ole esialgsetest andmetest varukoopiat teinud, võib algoleku taastamine olla väga raske või isegi võimatu. Seepärast kontrolli enne ühendamise alustamist alati, et andmed on turvaliselt varundatud ja et sul on alati võimalus tagasi minna. Kas kasutada arhiveerimist või mõnda versioonikontrollisüsteemi, on sinu enda otsustada, kuid pea silmas, et ka ülikogenud programmeerijad vajavad aeg-ajalt vanu alliktekste. Ning ühtlasi arvesta sedagi, et kuigi mina (see tähendab, &kdiff3; autor) olen püüdnud anda endast parima, ei saa ma täie kindlusega öelda, et rakendus on ideaalne ja täiesti veatu. Nagu ütleb GNU Üldine Avalik Litsents, ei ole sellel rakendusel MITTE MINGIT garantiid. Seepärast pea alati meeles, et
Eksimine on inimlik, aga tõelise segaduse korraldamiseks läheb vaja arvutit.
Vaatame siis, mida meie rakendus suudab teha. &kdiff3;... ... loeb ja võrdleb kaht või kolme kataloogi koos alamkataloogidega ... peab spetsiaalselt silmas nimeviitu ... võimaldab faile vaadelda hiire topeltklõpsuga ... iga elemendi korral pakub välja ühendamisoperatsiooni, mida sul on voli muuta enne tegeliku kataloogide ühendamise alustamist ... võimaldab ühendamist simuleerida, näidates ära toimingud, mis ette võetakse, ilma neid tegelikult veel tegemata ... võimaldab mõistagi ka tegelikku ühendamist ning pakub sulle sekkumise võimalust kõikjal, kus selleks vajadus tekib ... võimaldab käivitada valitud toimingu kõigi elementidega (klahv F7) või ainult valitud elemendiga (klahv F6) ... lubab jätkata pärast sekkumist ühendamist klahvile F7 vajutades ... lisavõimalusena loob varukoopiad laiendiga ".orig" ...
Kataloogide võrdlemise või ühendamise alustamine See on väga sarnane failide ühendamisele ja võrdlemisele. Sul tuleb lihtsalt valida kataloogid käsureal või avamisdialoogis. Kahe kataloogi võrdlemine/ühendamine: kdiff3 kataloog1 kataloog2 kdiff3 kataloog1 kataloog2 -o sihtkataloog Kui sihtkataloogi ei määrata, kasutab &kdiff3; sellena kataloogi kataloog2. Kolme kataloogi võrdlemine/ühendamine: kdiff3 kataloog1 kataloog2 kataloog3 kdiff3 kataloog1 kataloog2 kataloog3 -o sihtkataloog Kolme kataloogi ühendamisel võetakse kataloog1 ühendamise baasiks. Kui sihtkataloogi ei ole määratud, on selleks &kdiff3; silmis kataloog3. Pane tähele, et automaatselt algab ainult võrdlemine, mitte aga ühendamine. Viimase jaoks tuleb kasutada vastavat menüükäsku või klahvi F7 (sellest räägime pikemalt veidi hiljem). Kataloogide ühendamise nähtav info Kataloogide lugemisel ilmub teatekast, mis näitab edenemise käiku. Kui katkestad kataloogi läbiuurimise, näidatakse ainult neid faile, mida selle hetkeni jõuti võrrelda. Kui kataloogide skaneerimine on lõpule jõudnud, näitab &kdiff3; nimekirjakasti, kus vasakul on tulemused... ... ja paremal üksikasjad parajasti valitud elemendi kohta: Nimeveerg Kõiki skaneerimisel leitud faile ja katalooge näidatakse puus. Vajaliku elemendi saab valida sellel hiirega klõpsates. Vaikimisi on kataloogid suletud. Neid saab avada või sulgeda klõpsuga nende ees seisvale "+"/"-" või topeltklõpsuga kirjel või klahvidega Nool vasakule/paremale. Menüüs "Kataloog" on käsud "Ava kõik alamkataloogid" ja "Sule kõik alamkataloogid", mis lubavad korraga avada/sulgeda kõik alamkataloogid. Failil topeltklõpsu tehes alustatakse võrdlemist ning ilmub failide võrdlemise aken. Pilt nimeveerus kajastab faili tüüpi esimeses kataloogis ("A"). See võib olla üks järgmistest: Tavaline fail Tavaline kataloog (kaustakujuline pilt) Viit failile (failipilt viidanoolega) Viit kataloogile (kaustakujuline pilt viidanoolega) Kui failitüüp on erinevates kataloogides erinev, on see näha veergudes A/B/C ning aknas, mis näitab valitud elemendi üksikasju. Pane tähele, et sellisel juhul ei ole võimalik automaatselt käivitada ühendamist. Kui seda siiski tehakse, antakse kasutajale teada, miks see ei ole võimalik. Veerud A/B/C ja värviskeem Nagu ülal näha, kasutatakse veergudes A/B/C punast, rohelist, kollast ja musta värvi. Must: selles kataloogis sellist elementi ei ole. Roheline: uusim element. Kollane: vanem kui roheline, uuem kui punane. Punane: vanime element. Võrdlemisel ühesuguseks osutunud elementide värv on siiski samuti ühesugune ka siis, kui nad on erineva vanusega. Katalooge peetakse võrdseks, kui kõik nendes olevad elemendid on samasugused. Siis võib neil olla ka ühesugune värv. Ka kataloogide korral ei mõjuta värvi vanus. Selle värviskeemi mõtte andis mulle dirdiff. Need värvid meenutavad mõneti puulehte, mis värskena on roheline, muutub hiljem kollaseks ja lõpuks punaseks. Operatsiooniveerg Pärast kataloogide võrdlemist hindab &kdiff3; ühendamise võimalusi. Seda näitab veerg "Operatsioon". Operatsiooni on võimalik muuta, kui klõpsata sellel operatsioonil, mida soovid muuta. Ilmub väike hüpikmenüü, mis lubab valida antud elemendile vajaliku operatsiooni. (Kõige vajalikumad operatsioonid saab valida ka klaviatuurilt, näiteks Ctrl+1/2/3/4/Del valib vastavalt võimalusele A/B/C/Ühenda/Kustuta.) Valitud operatsioon tehakse teoks ühendamise käigus. Valikud sõltuvad elemendist ning ühendamisrežiimist. Viimaseks võib olla üks järgmistest: Kolme kataloogi ühendamine ("A" on sellisel juhul teistele baasiks). Kahe kataloogi ühendamine. Kahe kataloogi sünkroniseerimine (selle saab aktiveerida valikuga "Kataloogide sünkroniseerimine"). Kolme kataloogi ühendamisel on operatsioonide valikuks juhul, kui... ... kõik kolm kataloogi on võrdsed: kopeeri C-st ... A ja C on võrdsed, aga B mitte: kopeeri B-st (või kui B-d ei ole, siis kustuta sihtmärk, kui see on olemas) ... A ja B on võrdsed, aga C mitte: kopeeri C-st (või kui C-d ei ole, siis kustuta sihtmärk, kui see on olemas) ... B ja C on võrdsed, aga A mitte: kopeeri C-st (või kui C-d ei ole, siis kustuta sihtmärk, kui see on olemas) ... ainult A on olemas: kustuta sihtmärk (kui on olemas) ... ainult B on olemas: kopeeri B-st ... ainult C on olemas: kopeeri C-st ... A, B ja C ei ole võrdsed: ühenda ... A, B ja C ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide konflikt". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada. Kahe kataloogi ühendamisel on operatsioonide valikuks juhul, kui... ... mõlemad kataloogid on võrdsed: kopeeri B-st ... A on olemas, aga mitte B: kopeeri A-st ... B on olemas, aga mitte A: kopeeri B-st ... nii A kui B on olemas, aga mitte võrdsed: ühenda ... A ja B ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide konflikt". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada. Sünkroniseerimisrežiimi saab kasutada ainult siis, kui tegemist on kahe kataloogiga, märgitud ei ole konkreetset sihtmärki ning sisse on lülitatud valik "Kataloogide sünkroniseerimine". &kdiff3; valib sel juhul vaikeoperatsiooni, et muuta mõlemad kataloogid võrdseks. Juhul kui... ... mõlemad kataloogid on võrdsed: midagi ei tehta. ... A on olemas, aga mitte B: kopeeri A -> B ... B on olemas, aga mitte A: kopeeri B -> A ... A ja B on mõlemad olemas, aga mitte võrdsed: ühenda ja salvesta tulemus mõlemas kataloogis (kasutaja näeb B salvestamist, kuid &kdiff3; kopeerib ka B-st A-sse). ... A ja B ei ole sama tüüpi (nt. A on kataloog, B fail): "Viga: failitüüpide konflikt". Kui elemendid on sellised, ei saa kataloogide ühendamist alustada. Kui kahe kataloogi ühendamisel on sisse lülitatud valik "Ühendamise asemel kopeeritakse uuem", uurib &kdiff3; kuupäevi ning pakub välja uuema faili valimise. Kui failid ei ole võrdsed, ent on sama kuupäevaga, näitab operatsiooniveerg teadet "Viga: kuupäevad on samad, aga mitte failid." Kui kataloogis on selliseid elemente, ei ole võimalik ühendamist alustada. Staatuseveerg Ühendamisel võetakse ette üks fail teise järel. Staatuseveerg näitab kirjet "Tehtud" elementide puhul, mille ühendamist saatis edu, ning midagi muud, kui ühendamise käigus tuli ette midagi ootamatut. Kui ühendamine on lõpule jõudnud, võiksid üle kontrollida ka staatuseveeru, et näha, kas kõik seal ikka rahuldab sind. Statistikaveerg Kui seadistustes on sisse lülitatud failide võrdlemise režiim "Täielik analüüs", näitab &kdiff3; lisatulpasid, kus on kirjas lahendamata, lahendatud, tühimärkide ja mitte-tühimärkide konfliktide arv. (Lahendatud konflitkide arvuga tulpa näidatakse ainult kolme kataloogi võrdlemisel või ühendamisel.) Nimekirja failide valimine Seda, millised failid nimekirjas asuvad, saab mitmeti mõjutada. Mõningad valikud leiab seadistustedialoogist. Menüü 'Kataloog' sisaldab järgmisi kirjeid: "Näita identseid faile": failid, mis on võrdsed kõigis sisendkataloogides. "Näita erinevaid faile": failid, mis on kahes või enamas kataloogis, aga pole võrdsed. "Näita ainult A faile": failid, mis on ainult A-s, aga mitte B-s ega C-s. "Näita ainult B faile": failid, mis on ainult B-s, aga mitte A-s ega C-s. "Näita ainult C faile": failid, mis on ainult C-s, aga mitte A-s ega B-s. Aktiveeri ainult need näitamiskäsud, milliseid elemente soovid näha. Kui tahad näiteks, et nimekirjas oleks kõik elemendid, mis on kas A-s või B-s, aga mitte mõlemas korraga, vali "Näita ainult A faile" ja "Näita ainult B faile" ning lülita välja kõik ülejäänud ("Näita identseid faile", "Näita erinevaid faile", "Näita ainult C faile"). Nimekiri kajastab otsekohe muudatusi. Need käsud rakenduvad ka kataloogidele, kuid ühe erandiga: "Näita erinevaid faile " ei peida ühtegi faile sisaldavat kataloogi. See käib ainult nende sees paiknevate failide kohta. Pane tähele, et ainult käsk "Näita identseid faile" jätab oma oleku meelde, teised on &kdiff3; käivitumisel sisse lülitatud. Kataloogide ühendamine Ühendada on võimalik parajasti valitud element (fail või kataloog) või kõik elemendid. Kui oled langetanud kõik operatsioonivalikud (ka alamkataloogides), võid alustada tegelikku ühendamist. Pane tähele, et kui sa ei määranud sihtkataloogi, peetakse kolme kataloogi ühendamisel selleks "C", kahe kataloogi ühendamisel "B" ning sünkroniseerimisel "A" ja/või "B". Kui oled sihtkataloogi määranud, kontrolli, et kõik elemendid, mis peaksid olema väljundis, oleksid olemas ka puus. Kasutada saab mõningaid valikuid, mis jätavad teatud elemendid kataloogide võrdlemisel ja ühendamisel arvesse võtmata. Vaata need valikud üle, et vältida ebameeldivaid üllatusi: "Rekursiivsed kataloogid": kui see on väljas, ei kaasata elemente alamkataloogides. "Failimuster"/"Anti-failimuster": kaasatakse/jäetakse välja mustriga sobivad elemendid "Peidetud failid jäetakse välja" Näitamisvalikud (Näita identseid/erinevaid faile, ainult A/B/C faile) Kui muudad seadistusi, et nimekirjas oleks rohkem faile, pead need uuesti läbi uurima menüükäsuga "Kataloog"->"Uuri uuesti" (põhjus seisab selles, et võrdlemiskiiruse tõstmise nimel jätab &kdiff3; vahele nende kriteeriumidega nähtamatuks muudetud failide võrdlemise). Kui muudad faili- ja kataloogimustrit failide väljajätmiseks, uuendatakse failinimekirja otsekohe pärast valikute dialoogi sulgemist. Pane tähele, et kui kirjutad täiesti uude kataloogi, on tavaliselt mõttekas kopeerida ka identsed failid. Selleks tuleb sisse lülitada valik "Näita identseid faile". Kui sihtkataloogiks on mõni sisendkataloogidest, siis ei ole seda vaja, sest fail on ju juba seal olemas. Kui kõik on korras, siis ülejäänud on juba lihtne. Kõigi elementide ühendamine: vali menüüst "Kataloog" käsk "Alusta/jätka kataloogi ühendamist" või kasuta kiirklahvi F7. Ainult aktiivse elemendi ühendamine: vali "Käivita operatsioon käesoleva elemendiga" või vajuta F6. Kui failitüüpide konflikti tõttu esineb veel mõningaid sobimatute operatsioonidega elemente, ilmub teatekast, mis osutab sellistele elementidele, nii et sa saad valida neile vajalikud operatsioonid. Kui ühendad kõik elemendid, ilmub dialoog, kus valikuvõimalusteks on "Tee ära", "Simuleeri" ja "Loobu". Vali "Simuleeri", kui soovid näha, mida ette võetakse, ilma et seda tegelikult ette võetaks. Näidatakse põhjalikku ülevaadet, milliseid aktsioone sinu tegevus endaga kaasa tooks. Ühendamise tegelikuks alustamiseks vali "Tee ära". Seejärel asub &kdiff3; kõigi elementidega läbi viima neile määratud operatsioone. Kui vaja läheb käsitsi sekkumist (konkreetse faili ühendamisel), ilmub ühendamisaken (vaata suurt pilti). Kui oled faili kallal kõik vajaliku ära teinud, vali uuesti menüükäsk "Alusta/jätka kataloogi ühendamist" või vajuta klahvi F7. Kui sa ei ole veel salvestanud, ilmub dialoog, mis teeb sulle vastava ettepaneku. Seejärel võtab &kdiff3; ette järgmise elemendi. Kui &kdiff3; satub silmitsi veaga, annab ta sellest sulle teada ning näitab ka põhjalikku infot vea kohta, mis võib aidata kaasa arusaamisele, mis viga põhjustas. Kui valid ühendamise jätkamise (klahv F7), võimaldab &kdiff3; sul antud elemendi ühendamist uuesti proovida või see vahele jätta. See tähendab, et sa saad enne jätkamist valida mõne muu operatsiooni või jätta hetkel asi nii nagu on, et leida lahendus hiljem. Kui ühendamine on lõpule jõudnud, annab &kdiff3; sellest teatekastiga sulle märku. Kui mõned elemendi on ühendatud individuaalselt, jätab &kdiff3; selle (antud ühendamisseansi ajal) meelde ega hakka neid enam ühendama, kui valid hiljem kõigi elementide ühendamise. Isegi juhul, kui ühendamine jäeti tegelikult vahele või midagi ei salvestatud, peetakse neid elemente ühendatuks, nii et nendega saab hakata uuesti tegelema alles siis, kui oled vahetanud ühendamisoperatsiooni. Kataloogide võrdlemise ja ühendamise valikud &kdiff3; seadistustes (menüükäsk "Seadistused"->"&kdiff3; seadistamine") on sektsioon "Kataloogide ühendamine" järgmiste valikutega: Rekursiivsed kataloogid:Võimalus valida, kas kataloogid otsitakse läbi rekursiivselt, see tähendab, koos alamkataloogidega. Failimustrid:Puus näidatakse ainult faile, mis vastavad siin määratud mustrile. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?' (nt. "*.cpp;*.h"). Vaikimisi on muster "*". Kataloogid mustrit ei vaja. Anti-failimustrid:Selle mustriga sobivad failid ja kataloogid jäetakse puust välja. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?'. Vaikimisi on muster "*.orig;*.o;*.obj". Kataloogide anti-failimustrid:Selle mustriga sobivad failid ja kataloogid jäetakse puust välja. Rohkem kui ühe mustri saab valida, kui kasutada eraldajana semikoolonit ";". Kasutada tohib metamärke '*' ja '?'. Vaikimisi on muster "CVS;deps;.svn". .cvsignore kasutamine:Ignoreeritakse faile ja katalooge, mida ignoreerib ka CVS. CVS eirab paljusid automaatselt genereeritud faile. Selle suureks eeliseks on see, et see võib olla kataloogipõhine kohaliku ".cvsignore" faili vahendusel (vaata info:/cvs/cvsignore). Peidetud failide ja kataloogide otsimine:Mõnes failisüsteemis on failidel atribuut "peidetud", teistes süsteemides peidab failid nende nime ees seisev punkt ("."). See valik lubab sul määrata, kas sellised failid kaasatakse puusse või mitte. Vaikimisi sees. Failiviitade järgimine:Kui on väljas, võrreldakse nimeviitu, kui sees, siis faile, millele viidatakse. Vaikimisi väljas. Kataloogiviitade järgimine:Kui on väljas, võrreldakse nimeviitu, kui sees, peetakse viitu kataloogideks ning neid skaneeritakse rekursiivselt. (Pane tähele, et programm ei kontrolli, kas viit on "rekursiivne", nii et kui viita kataloogile sisaldav kataloog tekitab lõputu silmuse, siis mõne aja pärast, kui pinu on ületäidetud või mälu otsa saab, elab programm üle krahhi.) Vaikimisi väljas. Tõstutundlik failinimede võrdlemine:Vaikimisi väär Windowsi ja tõene teiste operatsioonosüsteemide korral. Failide võrdlemise režiim: Binaarne võrdlemine:See on vaikimisi failide võrdlemise režiim. Täielik analüüs:Sooritab iga faili täieliku analüüsi ja näitab statistikatulpi (lahendatud, lahendamata, tühimärkide ja mitte-tühimärkide konfliktide arv). Täielik analüüs on aeglasem kui tavaline binaarne analüüs ning palju aeglasem, kui tegemist on failidega, mis ei sisalda teksti. (Määra sobivad anti-failimustrid.) Muutmiskuupäeva usaldamine:Suurte kataloogide võrdlemisel üle aeglase võrgu on usutavasti kiirem võimalus võrrelda ainult muutmiskuupäevi ja failide suurust. Kuid kui see ka suurendab kiirust, võib see ometi kaasa tuua eksimusi. Seepärast tasuks selle kasutamisse ettevaatlikult suhtuda. Vaikimisi väljas. Suuruse usaldamine:Sarnane muutmiskuupäeva usaldamisele. Tegelikku võrdlemist ei teostata. Kaht faili peetakse võrdseks, kui nende failisuurus on võrdne. See on abiks, kui failide kopeerimisel ei säilunud muutmise aeg. Kasuta seda siiski ettevaatlikult. Vaikimisi väljas. Kataloogide sünkroniseerimine:Aktiveerib "sünkroniseerimisrežiimi", mille puhul võrreldakse kaht kataloogi ilma konkreetset sihtkataloogi määramata. Selles režiimis valitakse operatsioonid nii, et lõpptulemusena oleks kaks kataloogi võrdsed. Ka ühendamise tulemused kirjutatakse mõlemasse kataloogi. Vaikimisi väljas. Ühendamise asemel kopeeritakse uuem:Ühendamise asemel pakutakse operatsiooniks uuema allika kopeerimine. Seda võimalust peetakse ebaturvaliseks, sest see eeldab, et teist faili ei ole redigeeritud. Seda aga tasuks igal juhul konkreetselt kontrollida. Vaikimisi väljas. Failidest tehakse varukoopia:Kui fail või terve kataloog asendatakse teisega või kustutatakse, säilitatakse algne versioon, andes sellele laiendi ".orig". Kui on juba olemas varasem varukoopia laiendiga ".orig", siis see kustutatakse. See toimib nii kataloogide kui failide liitmisel. Vaikimisi sees. Muud funktsioonid kataloogide ühendamise aknas Ekraani poolitamine ja täisekraanirežiim Tavaliselt jääb faili võrdlemisel või ühendamisel kataloogi ühendamise nimekiri nähtavale. Hiirega võid aga liigutada failide nimekirja võrdlusaknast eraldavat riba. Kui sa seda ei soovi, võid menüüst "Kataloog" võmaluse "Poolitamisvaade" välja lülitada. Seejärel võid kasutada menüüs "Kataloog" olevat võimalust "Lülita vaadet", et vahetada kogu ekraani täitvat failinimekirja või võrdlusakna vaadet. Ühe faili võrdlemine või ühendamine Võib juhtuda, et eelistad võrdlemiseks kasutada lihtsalt klõpsu failil. Samasugune käsk on siiski olemas ka menüüs "Kataloog". Samuti saab vahetult ühendada konkreetse faili ilma kataloogide ühendamist käivitamata, kui valida menüüst "Kataloog" käsk "Ühenda üks fail". Tulemuse salvestamisel märgitakse selles staatuseks "Tehtud" ning kui seejärel käivitada kataloogide ühendamine, seda faili enam ei kaasata. Kuid pane tähele, et see staatus läheb kaduma, kui käivitad uuesti kataloogi skaneerimise (menüü "Kataloog", käsk "Uuri uuesti läbi") Erineva nimeta failide võrdlemine või ühendamine Mõnikord on vaja võrrelda või ühendada erineva nimega faile (nt. aktiivne fail ja sellesama faili varukoopia samas kataloogis). Vali vajalik fail veerus A, B või C ikoonile klõpsates. Esimene nii valitud fail märgitakse A-na, teine ja kolmas B ja C-na sõltumata sellest, millises veerus nad paiknevad. Nii saab valida ainult kuni kolm faili. Jätkamiseks vali menüüst "Kataloog" käsk "Võrdle valitud faile" või "Ühenda valitud failid". Samu käske saab valida ka kontekstimenüüst, kui klõpsata valitud failile hiire parema nupuga. Faili võrdlemine või ühendamine toimub samas aknas. Kataloogide korral avatakse uus aken.
Mitmesugused teemad Võrguläbipaistvus KIO-moodulite vahendusel KIO moodulid KDE toetab võrguläbipaistvust oma KIO-moodulite abil. &kdiff3; kasutab neid sisendfailide lugemiseks ja kataloogide läbiuurimiseks. See tähendab, et võid faile ja katalooge määrata URL-e kasutades nii kohalikul kui võrgumasinal. Näide: kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp kdiff3 tar:/home/hacker/archive.tar.gz/dir ./dir Esimene rida võrdleb kohalikku faili failiga FTP-serveris. Teine rida võrdleb kataloogi arhiivifailis kohaliku kataloogiga. Muud huvipakkuvad KIO-moodulid: WWW-failid (http:) FTP-failid (ftp:) Krüptitud failiedastused (fish:, sftp:) Windowsi ressursid (smb:) Kohalikud failid (file:) Muud asjad, mis on võimalikud, aga arvatavasti vähekasutatavad: Man-leheküljed (man:) Info-leheküljed (info:) Kuidas kirjutada URL-e Võrreldes kohalike failide ja kataloogide asukohaga on URL-il teistsugune süntaks. Silmas tuleks pidada järgmisi asju: Asukoht võib olla suhteline ja sisaldada märke "." või "..". See ei ole võimalik URL-ide puhul, mis on alati absoluutsed. Erisümbolid tuleb alati "päästa" ehk varjestada ("#" -> "%23", tühik -> "%20" jne.). Näiteks failil nimega "/#foo#" on URL "file:/%23foo%23". Kui URL ei toimi oodatult, proovi see avada Konqueroris. KIO-moodulite võimalused Võrguläbipaistvusel on üks puudus: mitte kõik ressursid ei paku ühesuguseid võimalusi. Vahel sõltub see serveri failisüsteemist, vahel protokollist. Toome siin ära lühikese piirangute loetelu: Vahel ei ole viidad toetatud. Vahel aga ei ole võimalik eristada, kas viit osutab failile või kataloogile: Sellisel juhul eeldatakse alati faili (ftp:, sftp:). Alati pole võimalik määrata failisuurust. Piiratud õiguste toetus. Puudub võimalus muuta õigusi või muutmisaega, mistõttu koopia õigused või aeg erinevad originaalist - vaata ka võimalust "Suuruse usaldamine". (See on võimalik ainult kohalike failidega.) &kdiff3; kui KPart &kdiff3; on KPart. Hetkel on teostatud liides KParts::ReadOnlyPart. Selle peamine kasutusala on erinevuste vaatamine KDevelopis. KDevelop käivitab alati esmalt oma seesmise erinevuste näitaja. &kdiff3; väljakutsumiseks klõpsa hiire parema nupuga erinevuste näitaja aknal ja vali kontekstimenüüst "Näita KDiff3-s". &kdiff3; vajab tavaliselt sisendiks kaht faili. Komponendina kasutades eeldab &kdiff3;, et sisendfail on paigafail unifitseeritud vormingus. Seejärel hangib &kdiff3; paigafailist algupärased failinimed. Vähemalt üks kahest failist peab olema kättesaadav. Seejärel kutsub &kdiff3; välja käsu patch teise faili taasloomiseks. Konqueroris võib valida paigafaili ning seejärel kontekstimenüüst "Eelvaatlus KDiff3-s". Arvesta, et see ei toimi, kui ühtegi algupärast faili ei ole saadaval, ning see ei ole eriti usaldusväärne, kui algfaili või ka mõlemat algfaili on muudetud pärast paigafaili loomist. Komponendina käivitades pakub &kdiff3; ainult kahe faili võrdlemist, väga pisikest tööriistariba ja menüüd. Ühendamine ega kataloogide võrdlemine ei ole praegu toetatud. Küsimused ja vastused &reporting.bugs; &updating.documentation; Miks on selle nimi "&kdiff3;"? Sellised vahendid, nagu "KDiff" ja "KDiff2" (nüüd nimega "Kompare") olid juba olemas. Samuti laseb "KDiff3" oletada, et see tuleb toime ühendamisega samamoodi nagu "diff3" vahend Diff-Tool paketis. Miks on selle litsents GPL? Ma olen GPL programme kasutanud juba väga pikka aega ning väga palju õppinud arvukaid lähtekoode uurides. Seepärast kuulub ka minu siiras tänu kõigile, kes on nii talitanud, talitavad või alles kavatsevad talitada. Mõned nupud ja funktsioonid on puudu. Mis lahti? Kompileerisid ilmselt rakenduse lähtekoodist, kuid jätsid konfigureerimisel korrektse KDE prefiksi määramata. Vaikimisi igatseb .configure paigalduse ette võtta kataloogis /usr/local, kuid sellisel juhul ei leia KDE kasutajaliides ressursifaili (s.t kdiff3ui.rc). Korrektsest prefiksist räägib pikemalt fail README. Enamasti on sarnased, aga mitte samased read teineteise kõrval, aga mitte alati. Miks? Ridu, mis erinevad ainult tühimärkide arvu poolest, peetakse algul "võrdseks", samas muudab ka üksainus teistsugune tühimärk failid "erinevaks". Kui sarnased read satuvad teineteise kõrvale, on see tegelikult kokkusattumus, aga õnneks esineb seda päris sageli. Vaata ka Käsitsi erinevused. Miks peavad enne salvestamist olema lahendatud kõik konfliktid? Iga võrdse või erineva sektsiooni korral jätab redaktor ühendamise tulemuse aknas meelde, kus see algab või lõpeb. Seda on vaja selleks, et konflikte oleks võimalik käsitsi lahendada lihtsalt allikanuppu (A, B või C) valides. See info läheb kaotsi, kui tekst salvestada ning sellise spetsiaalse failivormingu loomine, mis toetaks kogu vajaliku info salvestamist ja taastamist, oleks liiga keeruline ning raske. Kuidas sünkroniseerida erinevuse ja ühendamise vaated, et kõik vaated näitaksid teksti sama asukohta? Klõpsa kokkuvõtetulbal tekstist vasakul (vaata ka siit). Miks puudub redaktoril ühendamise tulemuste aknas "tagasivõtmise" funktsioon? Ka see nõuaks asjade praeguse seisu juures liiga palju tööd ja vaeva. Vajalik versioon on võimalik alati taastada konkreetse allika (A, B või C) põhjal lihtsalt vastavat nuppu klõpsates. Suurema redigeerimise korral on nagunii soovitatav kasutada mõnda muud redaktorit. Eemaldasin veidi teksti ja järsku ilmus "<Lähterida puudub>", mida ei saa kuidagi kõrvaldada. Mida see tähendab ja kuidas sellest lahti saada? Iga võrdse või erineva sektsiooni korral jätab redaktor ühendamise tulemuse aknas meelde, kus see algab või lõpeb. "<Lähterida puudub>" tähendab, et sektsiooni ei ole enam midagi jäänud, isegi mitte reavahetusmärki. See võib juhtuda automaatsel ühendamisel või redigeerimise ajal. Tegelikult ei ole see üldse mingi probleem, sest salvestatud failis seda viidet enam ei ole. Kui soovid algvarianti tagasi, vali lihtsalt sektsioon (klõpsuga vasakul asuval kokkuvõttetulbal) ning seejärel klõpsa vajaliku sisuga allkfaili nuppu (A/B või C). Miks &kdiff3; ei toeta süntaksi esiletõstu? &kdiff3; kasutab niigi palju värve erinevuste esiletõstmiseks. Veelgi rohkem värve ajaks asja ainult arusaamatult kirjuks. Kui sa siiski soovid süntaksi esiletõstu, tuleb sul leppida mõne muu redaktoriga. Kas &kdiff3; võib võrrelda OpenOffice.Org-i, Wordi, Exceli, PDF-faile &etc;? Kuigi &kdiff3; võib analüüsida mis tahes faile, ei ole selle tulemus arvatavasti päris rahuldav. &kdiff3; on mõeldud puhaste tekstifailide võrdlemiseks. OpenOffice, Word, Excel jne. salvestavad oma failidesse märksa rohkem teavet (fontide, piltide, lehekülgede, värvide jms. kohta), millest &kdiff3; ei tea midagi. Seepärast näitab &kdiff3; nende failide sisu puhtalt tekstina tõlgendades, aga see võib osutuda loetamatuks või vähemalt paista üsna veidrana. Et enamik rakendusi salvestab tänapäeval oma failid XML-vormingus, võib seda lugeda ka klaartekstina. Sel juhul võib &kdiff3;-st väikeste erinevuste korral ka abi olla. Kui soovid võrrelda ainult teksti (ilma põimitud objektide, näiteks piltideta), on kõige mõistlikum valida oma rakenduses "Vali kõik" ja "Kopeeri", et kopeerida huvipakkuv tekst lõikepuhvrisse, kust &kdiff3; saab selle asetada mõnda sisendaknasse (vaata ka Valimine, kopeerimine ja asetamine). Kuhu on kadunud kataloogide valik "Näita ainult erinevusi"? Kataloogimenüüs on nüüd mitu näitamiskäsku. Kui eemaldada märge käsu "Näita identseid faile", on tulemus samasugune nagu varem "Näita ainult erinevusi" korral. Kuidas valida erinevuse sisendaknas suur hulk teksti - kerimine on nii aeglane? Alusta valimist tavapäraselt (klõpsa ja hoia hiire vasakut nuppu all). Seejärel kasutada vasakut nuppu jätkuvalt all hoides liikumisklahve (nt. Page Up, Page Down). (Vaata ka Valimine, kopeerimine ja asetamine.) Siin on küll palju infot, aga mitte vastust minu küsimusele! Palun saada oma küsimus mulle. Ma olen väga rõõmus igasuguse tagasiside üle. Autorid ja litsents &kdiff3; - failide ja kataloogide võrdlemise ja ühendamise vahend Rakenduse autoriõigus 2002-2007: Joachim Eibl joachim.eibl at gmx.de Mitmed lahedad ideed ja vearaportid on pärit minu kolleegidelt ning paljudelt metsiku veebi asukatelt. Tänud teile kõigile! Dokumentatsiooni autoriõigus © 2002-2007: Joachim Eibl joachim.eibl at gmx.de Tõlge eesti keelde: Marek Laane bald@starman.ee &underFDL; &underGPL; Paigaldamine &kdiff3; hankimine &kdiff3; uusima versiooni saab alla laadida selle koduleheküljelt http://kdiff3.sourceforge.net. &kdiff3; on saadaval ka muudele platvormidele. Vaata lähemalt koduleheküljelt. Nõuded &kdiff3; kõigi omaduste edukaks kasutamiseks on vajalik &kde; >3.1. Infot selle kohta, kuidas panna &kdiff3; tööle muudel platvormidel ilma KDE-ta, vaata palun koduleheküljelt. Muudatuste nimekirka leiab internetist http://kdiff3.sourceforge.net/ChangeLog või lähtepaketist failis "ChangeLog". Kompileerimine ja paigaldamine &kdiff3; kompileerimiseks ja paigaldamiseks KDE-d kasutavas süsteemis anna &kdiff3; paketi baaskataloogis viibides käsureal korraldused: % ./configure --prefix=kde-kataloog % make % make install kde-kataloog määrab kataloogi süsteemis, kuhu on paigaldatud KDE. Kui sa ei ole selles kindel, loe faili README. Kui sa ei kasuta KDE-d, ära kasuta ka skripti configure, vaid järgi failis README toodud juhiseid ainult Qt-ga süsteemidele. Kuna &kdiff3; kasutab programme autoconf ja automake, ei tohiks kompileerimisel probleeme esineda. Kui neid siiski tekib, anna neist palun teada &kde; meililistides. &documentation.index;
kdiff3-0.9.97/doc/et/CMakeLists.txt0000644000175100001440000000013511626145652016244 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/et SUBDIR kdiff3) kdiff3-0.9.97/doc/README0000644000175100001440000000624311626145652013762 0ustar joachimusersREADME for the Documentation ============================ Author: Joachim Eibl, 2004-02-22 The following text contains some info about how the docs are created. It helps me remember certain details. Most users probably aren't interested in these things. Docbook references: http://i18n.kde.org/doc/markup/index.html http://opensource.bureau-cornavin.com/crash-course/index.html Each directory contains the documentation for a different translation. The textual information is in the index.docbook of every subdirectory. I wrote the English version in en/index.docbook. The other translations were done by the KDE-Internationalization-Team. They are doing a great job! The command meinproc (which is part of KDE) can be used to convert this file into HTML. meinproc index.docbook If you prefer everything in one big HTML/Postscript/PDF-file: LANG=de_DE meinproc --check index.docbook --stylesheet /opt/kde3/share/apps/ksgmltools2/customization/kde-nochunk.xsl (The LANG=de_DE prevents that meinproc writes the file in UTF-8 encoding, which isn't understood by html2ps.) Create ps-file: html2ps -D -u -n index.html >index.ps (For the -D to work add the line "Ghostscript: 1;" in the "package"-section of file /usr/lib/html2ps/html2psrc.) Create pdf-file: ps2pdf index.ps index.pdf The script createpdfdoc does these steps for all subdirectories. During normal installation on KDE a compressed file is generated: meinproc --check --cache index.cache.bz2 index.docbook As a service for non-KDE-users the en-directory also contains the HTML-version of the English documentation. After running meinproc the HTML-files contain some references to files in help:/common/ which contains stylesheets and KDE-graphics which make the result look much prettier. Because on non-KDE-systems this is not available, I placed a copy of these files in doc/en/common. To correct the references, I run the following command, which removes the "help:/"-part of the references, and only the "common/"-part remains. for i in *.html; do sed -i "s/help:\///g" $i; done (sed-option "-i" means in-place, "s/orig/repl/" is the replacement-command, "g" replaces every occurance in the line, not only the first.) The screenshots were made with the English KDE-version and therefore are placed in the en-directory. But since for the other translations no new screenshots were made yet, they only contain links to the English screenshots. These links are created en-bloc with this command. (But first you must cd into each subdirectory.) for i in `ls ../en | grep png`; do ln -s ../en/$i $i; done Command to retrieve other translations from cvs: cvs co kde-i18n/subdirs #for i in `cat kde-i18n/subdirs`; do cvs co kde-i18n/$i/docs/kdeextragear-1/kdiff3/index.docbook; done for i in `cat subdirs`; do wget http://websvn.kde.org/*checkout*/trunk/l10n/$i/docs/extragear-utils/kdiff3/index.docbook -O $i.docbook; done If a new translation is available, - create a new directory, - copy the index.docbook file there, - copy a Makefile.am there and correct it, - edit the doc/Makefile.am to include the new subdir, - create the links for the graphics, - and don't forget to run make -f Makefile.cvs in the top directory. kdiff3-0.9.97/doc/createpdfdoc0000644000175100001440000000101511626145652015440 0ustar joachimusers# html2ps is from the "html2ps"-package # ps2pdf is part of the "ghostscript-library"-package for i in `find * -maxdepth 0 -type d`; do cd $i echo $i if [ $i != "en" ]; then for j in `ls ../en | grep png`; do ln -s ../en/$j $j; done ln -s ../en/common common fi LANG=de_DE meinproc4 --check index.docbook --stylesheet /usr/share/kde4/apps/ksgmltools2/customization/kde-nochunk.xsl html2ps --rcfile /usr/lib/html2ps/html2psrc -D -u -n index.html >index.ps ps2pdf index.ps ../kdiff3_$i.pdf cd .. done kdiff3-0.9.97/doc/it/0000755000175100001440000000000011626145654013513 5ustar joachimuserskdiff3-0.9.97/doc/it/index.docbook0000644000175100001440000040652211626145651016172 0ustar joachimusers KDiff3"> ]> Manuale di &kdiff3; Joachim Eibl
joachim.eibl@gmx.de
StelvioRossetTraduzione della documentazione, 2004MarcelloAnniAggiornamento e revisione della traduzione, 2007FedericoZenith
federico.zenith@member.fsf.org
Aggiornamento della traduzione, 2009
2002-2007 Joachim Eibl &FDLNotice; 2007-31-03 0.9.92 &kdiff3; è uno strumento per verificare le differenze ed eseguire fusioni tra file e cartelle, che: confronta e fonde due o tre file di testo o cartelle in ingresso, ne mostra le differenze riga per riga o carattere per carattere, dà un modo semplice per fonderli, ha un editor per risolvere comodamente i conflitti di fusione, supporta la trasparenza di rete tramite KIO, ha delle opzioni per evidenziare o nascondere le differenze costituite da spazi o commenti nel codice, supporta Unicode, UTF-8 e altre codifiche, stampa le differenze, supporta la fusione delle parole chiave del controllo di versione e della cronologia. Questo documento descrive la versione 0.9.92 di &kdiff3;. KDE kdeextragear kdiff3 differenze fusione CVS confronto tra tre file confronta file cartelle controllo di versione fusione di tre file differenze in riga sincronizza kpart kio trasparenza di rete editor spazio commenti
Introduzione Un'altra interfaccia per confrontare file? Per il confronto dei file esistono numerosi strumenti grafici. Perché dovresti scegliere &kdiff3;? Lascia che ti spieghi perché l'ho scritto. &kdiff3; è nato perché dovevo eseguire una difficile fusione tra file. La fusione è necessaria quando più persone lavorano sugli stessi file in un progetto. La fusione può essere per lo più automatica, quando gli strumenti di fusione non solo permettono la modifica dei nuovi file («rami») ma anche del file originale («base»). Lo strumento per la fusione sceglierà automaticamente solo le modifiche eseguite all'interno di un ramo. Quando più persone cambiano le stesse righe, allora lo strumento di fusione trova un conflitto che dovrà essere risolto manualmente. In quel caso la fusione era difficile in quanto un collaboratore aveva cambiato molte cose e corretto l'indentazione in molti punti. Inoltre, un altro aveva cambiato molto testo nello stesso file, dando luogo a molti conflitti durante l'operazione di fusione. Lo strumento che usavo a quel tempo mostrava solamente le righe modificate, ma non cosa era cambiato dentro di loro. Inoltre non c'erano informazioni su dove fosse cambiata solo l'indentazione. La fusione fu un piccolo incubo. Così fu l'inizio. La prima versione poteva mostrare le differenze all'interno di una riga e tra gli spazi. Successivamente molte altre funzionalità sono state introdotte per aumentarne l'utilità. Per esempio, se vuoi confrontare velocemente alcuni testi, è possibile copiarne il contenuto negli appunti e quindi incollarlo in una delle finestre delle differenze. Una funzionalità che ha richiesto molto lavoro è stato il confronto tra cartelle e la funzione di fusione, che hanno trasformato il programma quasi in navigatore di file completo. Spero che &kdiff3; sia utile anche a te. Divertiti! Joachim Eibl (2003) Schermate e funzionalità Questa schermata mostra la differenza tra due file di testo (Usando una vecchia versione di &kdiff3;): La fusione di tre file è completamente supportata. Questa è particolarmente utile se due persone cambiano indipendentemente il codice. Si usa il file originale (la base) per aiutare &kdiff3; a selezionare automaticamente le modifiche giuste. Sotto le finestre che evidenziano le differenze, una finestra di modifica ti permetterà di risolvere i conflitti, mostrandone il risultato ottenuto. Puoi anche modificare il risultato delle operazioni. Questa schermata mostra il risultato della fusione di tre file in ingresso: &kdiff3; ti aiuta anche a confrontare e fondere intere cartelle. Questa schermata mostra &kdiff3; durante una fusione tra cartelle: Altre funzionalità Visore delle differenze per riga e per carattere Sfruttando le potenzialità dei monitor a colori, &kdiff3; evidenzia accuratamente le differenze. Quando dovrai fare molte revisioni di codice, apprezzerai questo aiuto. Vedere le differenze tra spazi a colpo d'occhio Saranno ben visibili spazi e tabulatori che risultano diversi. Quando le righe differiscono soltanto per uno spazio, lo si potrà subito vedere nella colonna di sommario sul lato sinistro (non dovrai più preoccuparti quando qualcuno cambia l'indentazione). Confronto tra tre file Analizza tre file e verifica dove differiscono. Le finestre sinistra, centrale e destra si chiamano A, B e C ed hanno rispettivamente i colori blu, verde e magenta. Se per una riga due file sono uguali ed un altro è diverso, il colore indica quello diverso. Il colore rosso significa che tutti i file sono diversi. Comoda fusione di due o tre file in ingresso &kdiff3; può essere usato per fondere due o tre file di ingresso e fonderli automaticamente il più possibile. Il risultato è presentato in una finestra di modifica dove la maggior parte dei conflitti possono essere risolti con un semplice clic del mouse: seleziona i pulsanti A, B e C dalla barra dei pulsanti per selezionare la sorgente da usare. È possibile anche selezionare più di una sorgente. Dato che questa finestra è un editor, qui si possono risolvere anche i conflitti che hanno bisogno di ulteriori correzioni, senza bisogno di altri strumenti. Inoltre... Pulsanti per la navigazione veloce. Un clic del mouse nella colonna di sommario sincronizza tutte le finestre, facendo loro mostrare la stessa posizione. Seleziona e copia da una qualsiasi finestra ed incolla nella finestra del risultato della fusione. Colonna riassuntiva che mostra dove sono cambiamenti e conflitti. È possibile regolare i colori come vuoi. Dimensione regolabile delle tabulazioni. Opzione per inserire spazi invece che tabulatori. Apri i file comodamente da una finestra, oppure specificandoli dalla riga di comando. Ricerca di stringhe in tutto il testo della finestra. Trova (&Ctrl;F) e Trova Successivo (F3). Mostra il numero di ogni riga. Incolla dagli appunti o trascina il testo in una finestra di confronto. Trasparenza di rete tramite KIO. Può essere usato come visore delle differenze in KDevelop 3. A capo per righe lunghe. Supporto per Unicode, UTF-8 e altre codifiche. Supporto per le lingue scritte da destra a sinistra. ... Confronto e fusione file Opzioni da riga di comando Confrontare due file: kdiff3 file1 file2 Fondere due file: kdiff3 file1 file2 -m kdiff3 file1 file2 -o file_di_uscita Confrontare tre file: kdiff3 file1 file2 file3 Fondere tre file: kdiff3 file1 file2 file3 -m kdiff3 file1 file2 file3 -o file_di_uscita Nota che file1 sarà trattato come la base di file2 e il file3. Caso particolare: file con lo stesso nome Se tutti i file hanno lo stesso nome, ma si trovano in cartelle diverse, è possibile specificare solamente il nome del primo file. Per esempio: kdiff3 cartella1/file cartella2 cartella3 Riga di comando per avviare un confronto o una fusione tra cartelle: È molto simile, ma ora lavoriamo sulle cartelle. kdiff3 cartella1 cartella2 kdiff3 cartella1 cartella2 -o cartella_destinazione kdiff3 cartella1 cartella2 cartella3 kdiff3 cartella1 cartella2 cartella3 -o cartella_destinazione Per maggiori informazioni sul confronto e fusione tra cartelle leggi qua. Altre opzioni da riga di comando Per vedere tutte le opzioni disponibili per la riga di comando scrivi: kdiff3 --help Esempio di risultato: Opzioni: -m, --merge Fondi l'input. -b, --base file Fissa il file di base. Per compatibilità con alcuni programmi. -o, --output file File di uscita. Implica -m. Es.: -o nuovofile.txt --out file File di uscita (per compatibilità con alcuni programmi). --auto Senza interfaccia grafica se tutti i conflitti possono essere risolti automaticamente (richiede -o file). --qall Non risolve i conflitti automaticamente (per compatibilità). --L1 alias1 Sostituzione del nome visibile per file di ingresso 1 (base). --L2 alias2 Sostituzione del nome visibile per file di ingresso 2. --L3 alias3 Sostituzione del nome visibile per file di ingresso 3. -L, --fname alias Sostituzione del nome visibile alternativo. Da specificare per ogni ingresso. --cs string Sovrascrive le impostazioni della configurazione. Usalo una volta per ogni impostazione. Per esempio: --cs "AutoAdvance=1" --confighelp Mostra una lista di impostazioni di configurazione e i loro valori attuali. --config file Usa un altro file di configurazione. L'opzione ti permette di regolare un valore di configurazione che altrimenti sarebbe modificabile solo tramite le finestre di configurazione. Stai però attento, perché quando &kdiff3; viene chiuso con il valore modificato, questa modifica verrà memorizzata con le altre impostazioni. Con puoi trovare i nomi degli elementi disponibili e i loro valori attuali. Con puoi specificare un altro file di configurazione. Quando usi spesso &kdiff3; con configurazioni completamente diverse, questo ti permette di passare facilmente da una all'altra. Opzioni da riga di comando ignorabili Molte persone vogliono usare &kdiff3; con qualche sistema di controllo di versione. Ma quando quel sistema di controllo di versione chiama &kdiff3; usando parametri della riga di comando che &kdiff3; non riconosce, allora &kdiff3; termina con un errore. Le impostazioni di integrazione permettono di specificare parametri della riga di comando che dovrebbero essere ignorati da &kdiff3;. Essi appariranno nell'aiuto all'uso come in questo esempio: --pippo Ignorato (definito dall'utente). Opzioni da riga di comando da ignorare:Una lista di opzioni, separate da un punto e virgola, «;». Quando una di queste opzioni appare nella riga di comando, &kdiff3; la ignorerà e verrà eseguito senza riportare errori (le opzioni predefinite sono «u;query;html;abort»). Se questo non bastasse, si raccomanda di scrivere uno script per la shell per tradurre l'opzione. Finestra di apertura dei file Poiché devono essere selezionabili molti file, il programma ha una particolare finestra per aprirli: La finestra di apertura permette di scrivere il nome del file a mano, di selezionare un file con il navigatore (File...) o di scegliere i file più recenti da una lista a comparsa. Se riapri la finestra, i nomi attuali rimarranno lì. Il nome del terzo file di input non è necessario. Se il campo di «C» rimane vuoto, verrà fatta soltanto un'operazione di confronto tra due file. Puoi anche selezionare una cartella con Cartella.... Se per A è specificata una cartella sarà automaticamente attivato il confronto o la fusione di cartelle. Se A specifica un file ma B, C o l'uscita specificano una cartella, &kdiff3; usa il nome del file di A nella cartelle specificate. Se viene selezionato Fondi, allora la riga Uscita diverrà modificabile. Però non è necessario specificare subito il nome del file in uscita: lo potrai specificare in seguito, fino al momento del salvataggio. Il pulsante Configura... apre una finestra di opzioni, per poterle impostare prima di avviare l'analisi. Incolla e trascina l'ingresso A volte vorresti confrontare parti di testo che non sono un file. &kdiff3; permette anche di incollare del testo dagli appunti nella finestra di confronto selezionata. L'analisi delle differenze apparirà immediatamente. Nella finestra di apertura dei file non dovrai specificare i file, basterà chiuderla con Annulla. È anche possibile usare il trascinamento: prendi un file dal gestore dei file o seleziona del testo da un editor, e trascinalo dentro una finestra di confronto. Qual è l'idea? A volte un file contiene due funzioni simili, ma controllare quanto lo sono effettivamente è una seccatura se si devono prima creare due file e quindi caricarli. Ora puoi semplicemente copiare, incollare e confrontare le sezioni rilevanti. Nota: al momento non puoi trascinare niente da &kdiff3;. Solo l'inserimento nella finestra di confronto delle differenze è supportato. Attenzione: alcuni editor interpretano il trascinamento in altri programmi come operazioni di taglia (invece che copia) e incolla. In tal caso i dati originali andrebbero quindi persi. Confrontare i file e interpretare le informazioni nelle finestre di ingresso Riga informativaSopra ad ogni finestra di testo c'è una «riga informativa». Queste contengono una lettera «A», «B» o «C», il nome del file modificabile, un pulsante per la navigazione e il numero della prima riga visibile nella finestra (nota che «C» è opzionale). Ogni riga informativa appare con un colore diverso. Quando hai selezionato un altro file con la navigazione, o hai finito di modificare il nome di un file premendo Invio, il nuovo file verrà caricato e confrontato con i file già caricati. ColorazioneAlle tre finestre di ingresso sono assegnate le lettere «A», «B» e «C». «A» è colorata di blu, «B» di verde e «C» di magenta; questi sono i colori predefiniti, ma puoi cambiarli dal menu delle impostazioni. Quando si trova una differenza, il colore mostra quale file di ingresso differisce. Quando entrambi gli altri file di ingresso differiscono, il colore usato per evidenziare la situazione sarà il rosso (Colore per i conflitti nelle impostazioni). Questo schema di colori è molto utile nel caso di tre file di ingresso, che discuteremo nella prossima sezione (Fusione). Colonna di sommarioA sinistra di ogni testo c'è la «colonna di sommario». Se ci sono differenze su una riga, la colonna di sommario ne mostrerà il colore corrispondente. Nel sommario le differenze di soli spazi saranno evidenziate con una griglia. Per i linguaggi di programmazione in cui gli spazi non sono importanti è molto utile notare a colpo d'occhio se è stato cambiato qualcosa di importante (in C e C++ gli spazi sono importanti solamente dentro a stringhe, commenti, istruzioni di preprocesso e solo in altre situazioni molto particolari). La linea verticale che separa la colonna di sommario e il testo è interrotta se il file di ingresso non presenta righe in questo punto. Quando è attivato il ritorno a capo, questa linea verticale sarà punteggiata in corrispondenza delle righe mandate a capo. Colonna riassuntivaSul lato destro, a sinistra della barra di scorrimento, si può vedere una colonna «riassuntiva». Essa mostra sinteticamente la colonna di sommario dell'ingresso «A». Tutte le differenze e i conflitti sono visibili a colpo d'occhio. Quando si usano solo due finestre di ingresso, tutte le differenze appaiono in rosso, perché ogni differenza è un conflitto. Un rettangolo nero incornicia la parte visibile dell'ingresso. Per file di ingresso molto lunghi, quando il numero delle righe è maggiore dell'altezza in pixel della colonna riassuntiva, più righe di ingresso condividono una riga di riassunto. Qui un conflitto ha maggiore priorità rispetto alle semplici differenze, che hanno priorità sul caso di nessuna modifica, così che nessuna differenza o conflitto viene perso. Facendo clic su questa colonna riassuntiva ne verrà visualizzato il testo corrispondente. Allineare le righe manualmenteA volte l'algoritmo affianca le linee sbagliate. Oppure vuoi confrontare un estratto di testo con del testo in una posizione completamente diversa nell'altro file. Per queste situazioni puoi ordinare manualmente a &kdiff3; di allineare certe righe. Seleziona il testo per il quale vuoi migliorare l'allineamento con il mouse, come se volessi copiare e incollare nella prima vista delle differenze, e quindi scegli Aggiungi allineamento manuale delle differenze nel menu Vista di confronto (scorciatoia da tastiera &Ctrl;Y). Apparirà una barra arancione nella colonna panoramica di fianco al testo scelto. Ripeti l'operazione per la seconda e (se disponibile) terza vista delle differenze. &kdiff3; ricalcolerà immediatamente le differenze ogni volta che lo farai, e allineerà automaticamente le righe scelte. Naturalmente qualcuna delle righe selezionate in precedenza potrebbe non corrispondere più. Attualmente la fusione non supporta l'uso dell'aiuto per le differenze manuali. Unire e dividere manualmente sezioni di differenzeIn alcuni casi &kdiff3; vedrà troppe o troppo poche sezioni di differenze per la fusione. In questo caso puoi unire o dividere le sezioni esistenti. Aggiungi le nuove sezioni selezionando per prima cosa del testo nelle righe corrispondenti in una delle finestre di ingresso (come quando si copia negli appunti). Scegli quindi Dividi differenze alla selezione nel menu Fondi. Le divisioni saranno aggiunte sopra la prima riga e sotto l'ultima del testo selezionato. Se vuoi aggiungere solo una sezione, seleziona il testo partendo da un'altra divisione di sezioni. Per unire le sezioni in una delle finestre di ingresso, seleziona qualcosa nelle righe che vuoi unire. Puoi anche unire diverse sezioni in un colpo solo. Seleziona quindi Unisci le differenze selezionate nel menu Fondi. Operazione di fusione e la finestra di modifica del risultato Anche la finestra di modifica del risultato della fusione (sotto la finestra di ingresso) ha una riga informativa sovrastante che mostra l'"Output:", il nome del file e "[Modificato]" se qualcosa è stato variato. Normalmente essa contiene del testo creato dagli automatismi della fusione, ma spesso conterrà anche dei conflitti. !!! Il salvataggio è disabilitato fino a quando tutti i conflitti non sono risolti !!! (Usa il pulsante "Vai al precedente/prossimo conflitto non risolto" per ricercare i conflitti rimanenti) Se i file di ingresso sono solo due, ogni differenza è un conflitto che deve essere risolto manualmente. Con tre file di input il primo è considerato come base, mentre il secondo ed il terzo contengono le modifiche. Quando in qualche riga solo il file B o il file C presenta una differenza, ma non entrambi, allora il file modificato sarà automaticamente selezionato. Solo quando B e C hanno delle differenze sulle stesse righe il programma si accorgerà del conflitto il quale dovrà essere risolto manualmente. Quando B e C coincidono, ma differiscono con A, allora sarà selezionato C. La colonna di sommarioLa finestra di modifica del risultato di fusione ha anche una colonna di sommario sulla sinistra. Essa mostra la lettera dell'input da dove la riga è stata selezionata o nulla se tutte le tre sorgenti hanno la stessa riga. Per i conflitti essa mostra un punto interrogativo "?" e la riga mostra "<Conflitto nel fondere>", tutto in rosso. Dato che risolvere conflitti riga per riga richiede molto tempo, le righe sono raggruppate per gruppi con le stesse caratteristiche di differenza e conflitto. Saranno separati solo i conflitti di spazi bianchi dai conflitti di spazi non bianchi in modo da facilitare la fusione dei file in cui l'indentazione, su molte righe, cambia. Impostare il gruppo attuale e sincronizzare la posizione delle viste di fusione e differenzeQuando si fa clic sulla colonna di sommario con il tasto sinistro del mouse in una finestra, l'inizio del gruppo appartenente a quella riga sarà selezionato in tutte le finestre. Questo gruppo diverrà il "gruppo attuale". Esso è evidenziato con il "Colore di fondo per questo intervallo attuale" e una barra nera apparirà sul lato sinistro del testo. Scegliere gli input A, B o C per il conflitto attuale e per modificarloLa barra dei pulsanti sotto la barra dei menu contiene tre pulsanti di selezione degli input contenenti le lettere «A», «B» e «C». Fai clic nel pulsante di selezione input per inserire (o rimuovere se già inserite) le righe dalle rispettive sorgenti. Per scegliere le righe da più input fai clic nei rispettivi pulsanti nell'ordine necessario. Per esempio se vuoi che nell'output le righe della «B» appaiano prima delle righe della «A», fai prima clic su «B», poi su «A». Se usi l'opzione avanzamento automatico ("Vai automaticamente al prossimo conflitto non risolto dopo la selezione del sorgente"), dovresti disabilitarla prima di scegliere le righe da diversi input o se vuoi modificare le righe dopo aver scelto. Altrimenti &kdiff3; salterà al prossimo conflitto dopo aver scelto il primo input. È spesso molto utile modificare direttamente l'output della fusione. La colonna di sommario mostrerà "m" per ogni riga che viene modificata manualmente. Quando per esempio le differenze sono allineate in modo che scegliere semplicemente gli input non sia soddisfacente, allora puoi marcare il testo necessario e usare il normale copia e incolla per inserirlo nell'output di fusione. Alcune volte, quando una riga viene rimossa dalla fusione automatica o da una modifica manuale e non rimangono altre righe nel gruppo, allora apparirà in questa riga il messaggio <Riga sorgente mancante>. Questa posizione verrà mantenuta dal gruppo nel caso tu cambiassi idea e volessi sezionare qualche altro sorgente. Questo testo non verrà reimmesso nel file salvato o in altre selezioni che desideri copiare ed incollare. Il testo "<Fondi conflitti>" apparirà negli appunti se copi ed incolli del testo contenente questa riga. Fai comunque attenzione nell'eseguire tale operazione. Scegliere l'input A, B o C per tutti i conflittiLa normale fusione inizierà risolvendo semplici conflitti automaticamente. Ma il menu Fondi permette altre azioni per altre necessità comuni. Se devi selezionare lo stesso sorgente per molti conflitti, potrai selezionare sempre «A», «B» o «C», o solamente per i conflitti non risolti restanti, o per i conflitti di spazi bianchi non risolti. Se vuoi decidere tu stesso ogni singola differenza, puoi «Impostare le differenze come conflitti», o se vuoi ritornare all'opzione automatica di &kdiff3; seleziona «Risolvi automaticamente i conflitti semplici». &kdiff3; riavvierà quindi la fusione. Per azioni che cambiano le tue precedenti modifiche &kdiff3; ti chiederà conferma prima di procedere. Nota: Quando si sceglie un sorgente per conflitti non risolti di spazi bianchi e quando vengono utilizzate le opzioni "Ignora numeri" o "Ignora commenti C/C++",le variazioni nei numeri o nei commenti saranno trattati anch'essi come spazi bianchi. Fusione automatica della cronologia (log) e delle parole chiave del controllo di versioneMolti sistemi di controllo di versione supportano parole chiave speciali nel file. (es. "$Date$", "$Header$", "$Author$", "$Log$" etc.) Durante il controllo il sistema di controllo di versione (VCS) cambia queste righe. Per esempio "$Date$" cambierà in "$Date: 2005/03/22 18:45:01 $". Dato che questa riga sarà diversa in ogni versione del file, richiederà l'interazione manuale durante la fusione. &kdiff3;offre la fusione automatica per questi elementi. Per righe semplici che corrispondono all'opzione "Fondi automaticamente le espressioni regolari" in tutti i file di input &kdiff3; sceglierà la riga dalla B o - se disponibile - dalla C. (Inoltre è necessario che le righe in questione corrispondano nel confronto e la riga precedente non contenga alcun conflitto). Questa fusione automatica può essere avviata sia immediatamente dopo l'avvio della fusione (attiva l'opzione "Avvia la fusione automatica delle espressioni regolari all'avvio di fusione") o in un secondo momento attraverso il menu di fusione "Avvia la fusione automatica delle espressioni regolari". È supportata anche la fusione automatica per la cronologia del controllo di versione (nota anche come registro). La fusione automatica della cronologia può essere eseguita immediatamente all'avvio della fusione attivando l'opzione Fondi la cronologia del controllo di versione all'inizio della fusione o più tardi con il menu di fusione Risolvi automaticamente i conflitti di cronologia. Normalmente la cronologia del controllo di versione comincia con una riga contenente la parola chiave $Log$. Questa deve essere corrisposta dall'opzione Espressione regolare dell'inizio di cronologia. &kdiff3; rileva quali righe successiva sono nella cronologia analizzando i caratteri iniziali che precedono la parola chiave $Log$. Se gli stessi caratteri di commento iniziale appaiono anche nelle righe seguenti, anche queste verranno incluse nella cronologia. Durante il deposito, il VCS scrive una riga univoca che specifica informazioni di versione, data e ora, seguite da righe con commenti dell'utente. Queste righe costituiscono un elemento della cronologia. Questa sezione di cronologia cresce a ogni deposito, e le voci più recenti sono in cima (dopo la riga di inizio della cronologia). Quando, in sviluppo parallelo, due o più sviluppatori depositano un ramo del file, la cronologia di fusione conterrà diversi elementi che risultano come conflitti durante la fusione dei rami. Siccome fonderli può essere molto noioso, &kdiff3; offre aiuto con due possibili strategie: basta che inserisci le informazioni sulla cronologia da entrambi gli sviluppatori in cima o ordini le informazioni della cronologia secondo una chiave definita dall'utente. Il metodo inserisci tutti gli elementi e basta è più facile da configurare. &kdiff3; ha bisogno solo di un metodo per rilevare quali righe appartengano a un elemento di cronologia. La maggior parte dei VCS inserisce una riga vuota dopo ogni elemento di cronologia. Se non ci sono altre righe vuote, questo è un criterio sufficiente per &kdiff3;. Basta che imposti una Espressione regolare di inizio dell'elemento di cronologia vuota. Se il criterio della riga vuota non è sufficiente, puoi specificare un'espressione regolare per rilevare l'inizio degli elementi di cronologia. Nota che &kdiff3; rimuoverà gli elementi di cronologia duplicati. Se un elemento di cronologia compare diverse volte nella cronologia di un file di ingresso, ne rimarrà solo uno nell'uscita. Se vuoi ordinare la cronologia, devi specificare come costruire la chiave di ordinamento. Usa le parentesi nella Espressione regolare di inizio dell'elemento di cronologia per raggruppare parti dell'espressione regolare che dovrebbero essere usate in seguito per la chiave di ordinamento. Specifica quindi la Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia, specificando un elenco separato da virgole di numeri che si riferiscono alla posizione del gruppo nell'espressione regolare. Siccome questo non è così facile da azzeccare al primo colpo, devi poter provare e migliorare le espressioni regolari e la generazione delle chiavi in una finestra apposita premendo il pulsante Prova le espressioni regolari. Esempio: consideriamo una cronologia simile a questa: /************************************************************************** ** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ ** ** \main\integration_branch_12 2 Apr 2001 10:45:41 tom ** Fuso il ramo simon_branch_15. ** ** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry ** Migliorata la velocità della funzione convertToMesh(). ** Crash corretto. **************************************************************************/ La riga di inizio della cronologia corrisponde all'espressione regolare .*\$Log.*\$.*. Seguono quindi i singoli elementi. La riga con la parola chiave $Log$ comincia con due * dopo i quali segue uno spazio. &kdiff3; usa la prima stringa non di spazi come commento iniziale e assume che la cronologia si concluda nella prima riga senza questo commento iniziale. In questo esempio l'ultima riga finisce con una stringa che comincia anch'essa con due *, ma invece di un carattere di spaziatura seguono degli altri *. Perciò questa riga conclude la cronologia. Se l'ordinamento della cronologia non è necessario, l'espressione regolare dell'inizio degli elementi di cronologia potrebbe avere questo aspetto (questa riga è divisa in due parti per ragioni di spazio): \s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.* Per dettagli sulle espressioni regolari, vedi la documentazione sulle espressioni regolari della Trolltech. Nota che \s (con la minuscola) corrisponde ai caratteri di spaziatura e \S (con la maiuscola) corrisponde a ogni carattere non di spaziatura. Nell'esempio l'inizio degli elementi di cronologia contiene prima le informazioni di versione, con espressione regolare \\main\\\S+, la data in forma di giorno [0-9]+, mese (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) e anno [0-9][0-9][0-9][0-9], l'ora [0-9][0-9]:[0-9][0-9]:[0-9][0-9] e infine il nome dello sviluppatore .*. Nota che i caratteri di commento iniziale (nell'esempio **) saranno già rimossi da &kdiff3; prima del confronto, quindi l'espressione regolare comincia con una corrispondenza per zero o più caratteri di spaziatura, \s*. Siccome i caratteri dei commenti possono essere diversi in ogni file (per esempio C e C++ usano dei caratteri diversi rispetto a Perl), &kdiff3; si prende cura dei caratteri iniziali dei commenti, e tu non devi specificarli nell'espressione regolare. Se hai bisogno di una cronologia ordinata, deve essere calcolata la chiave di ordinamento. Per farlo, le parti rilevanti dell'espressione regolare devono essere raggruppate in parentesi (le parentesi aggiuntive possono essere lasciate se l'ordinamento della cronologia viene disabilitato). \s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*) Le parentesi contengono ora:informazioni di versione,giorno,mese,anno,ora,nome.Se vogliamo ordinare per data e ora, dobbiamo costruire una chiave con gli elementi in un altro ordine di apparizione: prima l'anno, poi il mese, il giorno, l'ora, le informazioni di versione e il nome. Quindi, la chiave di ordinamento da specificare è 4,3,2,5,1,6. Siccome i nomi dei mesi non sono facili da ordinare (Apr sarebbe il primo), &kdiff3; rileva l'ordine in cui i nomi dei mesi sono stati dati e usa quell'ordine (Apr->04). Se viene trovato un numero, verrà trasformato in un valore a quattro cifre con zeri iniziali per l'ordinamento. Infine, la chiave di ordinamento risultante per la prima riga di inizio degli elementi di cronologia sarà: 2001 04 0002 10:45:41 integration_branch_12 tom Per ulteriori informazioni vedi anche Impostazioni di fusione. Navigazione e modifica È possibile navigare con le barre di scorrimento e con il mouse, ma puoi anche usare i tasti. Se fai clic dentro una delle finestre, potrai usare i pulsanti sinistra, destra, alto, basso, pagina successiva, pagina precedente, inizio, fine, ctrl-inizio, ctrl-fine come faresti in altri programmi. La colonna riassuntiva di fianco alla barra di scorrimento verticale dei file di ingresso può anche essere usata per la navigazione facendoci clic. È anche possibile usare la rotellina del mouse per scorrere in alto e in basso. Nella finestra di modifica del risultato puoi anche usare gli altri tasti. Puoi passare tra le modalità di inserimento e di sovrascrittura con il tasto Ins; la predefinita è quella di inserimento. Fare clic con il &LMB; in una qualsiasi colonna di sommario sincronizzerà tutte le finestre in modo da mostrare l'inizio dello stesso gruppo di righe (come spiegato nella sezione Impostare il gruppo attuale e sincronizzare la posizione delle viste di fusione e differenze. La barra dei pulsanti contiene inoltre nove pulsanti di navigazione con cui puoi passare alla differenza attuale, alla prima o all'ultima, a quella successiva o precedente (&Ctrl; e &Ctrl;), al conflitto successivo o precedente (&Ctrl;Pag↓ e &Ctrl;Pag↑), o al conflitto non risolto successivo o precedente. Nota che per &kdiff3; un conflitto che non è stato risolto automaticamente all'inizio della fusione rimane un conflitto anche se è stato risolto; da qui la necessità di distinguere i conflitti non risolti. Avanzamento automatico C'è anche un pulsante Vai automaticamente al prossimo conflitto non risolto dopo aver selezionato la fonte (avanzamento automatico). Se lo usi, quando una fonte è selezionata, &kdiff3; passerà e selezionerà il prossimo conflitto non risolto automaticamente. Ciò è d'aiuto quando vuoi sempre scegliere un solo file di ingresso. Quando hai bisogno di entrambe le fonti, o vuoi cambiare qualcosa dopo aver selezionato, probabilmente lo vorrai disattivare. Prima di procedere al prossimo conflitto non risolto, &kdiff3; mostrerà l'effetto della tua scelta per un breve periodo. Questo tempo è regolabile nelle impostazioni delle differenze e di fusione: puoi specificare il Ritardo nell'avanzamento automatico in millisecondi tra i valori 0 e 2000. Se vuoi ridurre il numero di volte che fai clic, usa un ritardo di avanzamento breve e le scorciatoie &Ctrl;1, &Ctrl;2 e &Ctrl;1 per selezionare A, B e C nel caso di molti conflitti. Selezione, Copia ed Incolla La finestre dell'ingresso non hanno un cursore, quindi le selezioni vanno fatte con il &LMB; partendo dall'inizio, tenendolo premuto e spostandolo fino alla fine della selezione, dove lo rilasci. È possibile selezionare una singola parola facendo doppio clic. Nella finestra del risultato di fusione puoi anche selezionare con la tastiera, tenendo premuto il tasto &Shift; e navigando con i tasti a freccia. Se la selezione deve andare oltre la parte visibile sullo schermo, puoi spostare il mouse ai bordi della finestra, il che fa scorrere &kdiff3; in quella direzione. Per selezioni molto grandi, puoi anche usare i tasti di navigazione tenendo premuto il &LMB;. Per esempio, usa Pag↑ e Pag↓ per andare velocemente a un certo punto; a quel punto rilascia il mouse. Per selezionare tutto nella finestra attuale, usa il menu ModificaSeleziona tutto (&Ctrl;A). Per copiare negli appunti devi premere il pulsante Copia (&Ctrl;C o &Ctrl;Ins). Esiste anche l'opzione Copia automatica: se è attiva, tutto quello che selezioni verrà copiato immediatamente, senza farlo esplicitamente. Fai però attenzione, perché i contenuti degli appunti potrebbero andare accidentalmente persi. Taglia (&Ctrl;X o &Shift;Canc copia negli appunti il testo selezionato e lo cancella. Incolla (&Ctrl;V o &Shift;Ins inserisce il testo dagli appunti alla posizione del cursore o al posto della selezione attuale. Se incolli in una delle finestre di ingresso delle differenze, i contenuti degli appunti saranno mostrati in quella finestra, e il confronto verrà immediatamente riavviato. Ciò è utile se vuoi prendere del testo da qualche parte e confrontarlo con qualcos'altro senza prima dover creare dei file. Salvataggio Il salvataggio sarà permesso solo quando tutti i conflitti saranno stati risolti. Se il file esiste già, e l'opzione Copie di sicurezza è abilitata, il file esistente sarà rinominato con l'estensione .orig, ma se quest'ultimo file esiste sarà rimosso. Se concludi o avvii una nuova analisi delle differenze, e i dati non sono stati ancora salvati, &kdiff3; ti chiederà se vuoi salvare, annullare o procedere senza salvare. &kdiff3; non intercetta nessun segnale, quindi se si uccide il processo di &kdiff3; tutti i dati andranno persi. I caratteri di fine riga sono salvati secondo il metodo appropriato per il sistema operativo in uso. Sui sistemi Unix ogni riga termina con il carattere \n, mentre sui sistemi Windows ogni riga termina con i caratteri di ritorno a capo e di nuova riga, \r\n. &kdiff3; non mantiene i caratteri di fine riga originali del file, il che vuol dire che non dovresti usare &kdiff3; con i file binari. Trovare le stringhe Puoi cercare una stringa in ogni finestra di testo di &kdiff3;. Il comando Trova (&Ctrl;F) nel menu Modifica apre una finestra che ti permette di specificare la stringa da cercare. Puoi anche selezionare le finestre nella quali cercare. La ricerca partirà sempre dall'inizio. Usa il comando Trova successivo (F3) per passare alla prossima occorrenza. Se decidi di cercare su più finestre, la ricerca comincerà dalla prima finestra, poi passerà alla seconda, e così via. Stampare &kdiff3; supporta la stampa delle differenze dei file di testo. Il comando Stampa (&Ctrl;P) nel menu File apre una finestra che ti permette di selezionare la stampante e regolare altre opzioni. Ci sono diverse possibilità per regolare l'intervallo di stampa. Siccome le finestre di stampa sono diverse a seconda del sistema operativo, il modo esatto in cui regolarlo varia. Tutto:Stampa tutto. Attuale:Stampa una pagina partendo dalla prima riga visibile nella finestra. Sui sistemi senza questa opzione, essa è ottenibile chiedendo di stampare il numero di pagina 10000. Selezione:Prima di stampare, seleziona il testo con il mouse (come quando fai copia e incolla) in una delle finestre d'ingresso delle differenze per definire le righe di inizio e fine. Se non è stato selezionato del testo nelle finestre di ingresso delle differenze, questa scelta non sarà disponibile. Sui sistemi senza questa opzione, essa è ottenibile chiedendo di stampare il numero di pagina 9999. Intervallo:Specifica la prima e l'ultima pagina. Altre opzioni di stampa importanti saranno dedotte dalle opzioni normali: Carattere e sue dimensioni Mostra i numeri di riga A capo automatico Colori eccetera Si raccomanda inoltre di usare il formato orizzontale quando si stampa. Opzioni Le opzioni e l'elenco dei file recenti saranno salvate all'uscita del programma, e ricaricate quando verrà riavviato (ImpostazioniConfigura &kdiff3; ). Carattere Seleziona un carattere a larghezza fissa. Su alcuni sistemi questa finestra potrebbe presentare anche caratteri a larghezza variabile, ma non dovresti usarli. Corsivo per le differenze:Selezionando questo, le differenze di testo saranno rappresentate con il carattere scelto in stile corsivo. Se il carattere non supporta il corsivo, l'opzione non avrà effetto. Colori Colore di primo piano:Normalmente nero. Colore di sfondo:Normalmente bianco. Colore di sfondo per le differenze:Normalmente grigio chiaro. Colore per A:Normalmente blu scuro. Colore per B:Normalmente verde scuro. Colore per C:Normalmente magenta scuro. Colore per i conflitti:Normalmente rosso. Colore di sfondo per l'intervallo attuale:Normalmente giallo chiaro. Colore di sfondo per le differenze dell'intervallo attuale:Normalmente giallo scuro. Colore per gli intervalli delle differenze selezionati manualmente:Normalmente arancione. Colore del file più recente nel confronto tra cartelle:Normalmente verde. Colore del file più vecchio nel confronto tra cartelle:Normalmente rosso. Colore del file di età media nel confronto tra cartelle:Normalmente giallo scuro. Colore per file mancanti nel confronto tra cartelle:Normalmente nero. Il cambio dei colori per il confronto tra cartelle avrà effetto solo all'avvio del prossimo confronto tra cartelle. Su sistemi con soli 16 o 256 colori, alcuni colori non sono disponibili nella forma esatta. In questi sistemi il pulsante Valori predefiniti selezionerà un colore puro. Impostazioni dell'editor Il tabulatore inserisce spazi:Se questo è disabilitato e premi il tasto di tabulazione, verrà inserito un carattere di tabulazione, altrimenti verranno inseriti il numero appropriato di spazi. Dimensione della tabulazione:Può essere regolata a seconda delle necessità. Il valore predefinito è 8. Rientro automatico:Quando premi &Enter;, il rientro della riga precedente sarà usato per la nuova. Copia automaticamente la selezione:Ogni selezione è immediatamente copiata negli appunti quando attiva, e non sarà necessario copiarla esplicitamente. Tipo di fine riga:Quando salvi un file puoi decidere quali caratteri di fine riga usare.L'impostazione predefinita è quella abituale del sistema operativo in uso. Impostazioni delle differenze Nel confronto dei file, &kdiff3; prova prima a confrontare le righe uguali in tutti i file di ingresso. Solo durante questa fase potrebbe ignorare gli spazi. La seconda fase confronta ogni riga. In questa fase gli spazi non saranno ignorati. Anche durante la fusione gli spazi non saranno ignorati. Mantieni il ritorno a capo:Alcuni editor (in alcuni sistemi) salvano il ritorno a capo \r e l'avanzamento di riga \n alla fine delle righe, mentre altri salvano solamente il ritorno a capo \n. Normalmente &kdiff3; ignora il ritorno a capo, ma alcuni file di diverse dimensioni potrebbero comunque risultare uguali in una verifica fianco a fianco. Quando questa opzione è abilitata, i caratteri di ritorno a capo sono resi visibili ma sono trattati come spazi. Questa opzione deve essere disattivata durante una fusione. Come impostazione predefinita è disattivata. Ignora i numeri:Come impostazione predefinita questa opzione è disattivata. I caratteri numerici (da 0 a 9, ., -) saranno ignorati nella prima parte dell'analisi nella quale si fanno corrispondere le righe. Nel risultato le differenze saranno comunque mostrate, ma i caratteri numerici saranno trattati come spazi. Ignora i commenti C e C++:Come impostazione predefinita questa opzione è disattivata. Le variazioni dei commenti saranno trattate come variazioni di spazi. Ignora le maiuscole:Come impostazione predefinita questa opzione è disattivata. Le differenze tra maiuscole e minuscole (come tra A e a) saranno trattate come differenze tra spazi. Comando per il preprocessoreVedi la prossima sezione. Comando del preprocessore per confrontare righe:Vedi la prossima sezione. Ricerca approfondita:Ricerca approfondita per ricercare la più piccola differenza (Normalmente attiva). Questo sarà probabilmente utile per file complicati e lunghi. E lento per file molto lunghi. Impostazioni di fusione Pausa nell'avanzamento automatico (ms):Quando l'opzione di auto avanzamento automatico è attiva si specifica quando lungo mostrare il risultato delle selezione prima di saltare al prossimo conflitto non risolto. Trattamento predefinito degli spazi bianchi nel fondere 2 file:Risolvi automaticamente tutti i conflitti di spazi scegliendo il file specifico (l'impostazione predefinita è la scelta manuale). Utile se gli spazi non sono importanti in molti file. Se ti serve solo di rado, è meglio usare Scegli A/B/C per tutti i conflitti di spazi non risolti nel menu di fusione. Nota che, se abiliti Ignora i numeri o Ignora i commenti C e C++, questa scelta automatica verrà applicata anche per i conflitti tra numeri o commenti. Espressione regolare di fusione automatica:Espressione regolare per le righe dove &kdiff3; dovrebbe scegliere automaticamente una sorgente. Vedi anche Fusione automatica. Esegui la fusione automatica con espressioni regolari all'avvio della fusione:Se attivo, &kdiff3; esegue la fusione automatica usando l'Espressione regolare di fusione automatica all'avvio di una fusione. Espressione regolare dell'inizio di cronologia:Espressione regolare per l'inizio di un elemento di cronologia di fusione. Normalmente questa riga contiene la parola chiave $Log$. Il valore predefinito è .*\$Log.*\$.*. Espressione regolare di inizio dell'elemento di cronologia:Un elemento di cronologia di fusione consiste di diverse righe. Specifica l'espressione regolare per rilevarne la prima (senza il commento iniziale). Usa le parentesi per raggruppare le chiavi che vuoi usare per l'ordinamento. Se lasciato vuoto, &kdiff3; suppone che le righe vuote separino gli elementi di cronologia. Vedi anche Fusione automatica. Ordinamento della fusione della cronologia:Abilita l'ordinamento della cronologia del controllo di versione. Ordine della chiave d'ordinamento d'inizio degli elementi della cronologia:Ogni parentesi usata nell'espressione regolare per l'elemento iniziale della cronologia raccoglie una chiave disponibile per l'ordinamento. Specifica l'elenco di chiavi (numerate in ordine di apparizione partendo da 1) separandole con una virgola (,), per esempio 4,5,6,1,2,3,7. Se lasciato vuoto, non verrà effettuato un riordinamento. Vedi anche Fusione automatica. Fondi la cronologia del controllo di versione all'inizio della fusioneSe attivato, &kdiff3; esegue la fusione automatica della cronologia usando le opzioni sunnominate all'avvio di una fusione. Numero massimo di elementi nella cronologia:&kdiff3; tronca l'elenco della cronologia dopo il numero di elementi specificato. Usa -1 per evitare il troncamento, il che è anche il valore predefinito. Prova le espressioni regolariQuesto pulsante mostra una finestra che permette di migliorare e provare le espressioni regolari indicate sopra. Basta copiare i dati dai file nelle righe d'esempio, e il Risultato di corrispondenza mostrerà subito se la corrispondenza avviene o meno. Il Risultato della chiave di ordinamento mostrerà la chiave usata per il riordinamento della fusione della cronologia. Comando di fusione irrilevante:Specifica un comando da chiamare quando &kdiff3; rileva che, per una fusione a tre file, il file B non contribuisce alcun dato di rilievo che non sia già contenuto nel file C. Il comando viene chiamato con tre nomi di file come parametri. I dati corrispondenti alla Espressione regolare di fusione automatica o nella cronologia non sono considerati di rilievo. Fusione di cartelle Queste opzioni riguardano la scansione delle cartelle e la gestione della fusione: vedi la documentazione sul confronto e la fusione tra cartelle per maggiori dettagli. Tuttavia, qui c'è un'opzione di rilievo anche per il salvataggio di file singoli: Copie di sicurezza:Quando viene salvato un file e ne esiste una versione precedente, la versione originale sarà rinominata con un'estensione .orig. Se esiste già una vecchia copia di sicurezza con estensione .orig, questa verrà eliminata senza farne un'altra copia. Lingua e paese Lingua:Imposta la lingua usata per l'interfaccia utente. Le modifiche a questa opzione non hanno effetto immediato sul programma. Devi chiudere &kdiff3; e riavviarlo per far cambiare la lingua. Questa opzione non è disponibile nella versione &kde; di &kdiff3; perché la lingua viene cambiata nelle impostazioni globali di &kde;. Usa la stessa codifica per tutto:Le opzioni di codifica che seguono possono essere fissate separatamente per ogni voce o, se questa opzione è attivata, il primo valore vale per tutti. Codifica locale:Davanti al selettore di codec appare una nota che ti dice quale è la codifica locale. Non è modificabile, serve solo a ricordarti quale è la codifica locale nel caso che tu non lo sapessi già. Tuttavia devi selezionarla. Codifica per i file A/B/C:Cambia la codifica dei file in ingresso. Ha effetto sulla visualizzazione dei caratteri speciali. Poiché puoi aggiustare separatamente le codifiche, potrai confrontare e fondere file prodotti con codifiche diverse. Codifica per i file fusione e salvataggio:Quando avrai modificato un file, potrai scegliere con quale codifica salvarlo sul disco fisso. Codifica per i file sottoposti al preprocessore:Quando definisci un preprocessore questo deve essere in grado di operare sulla codifica in uso. Ad esempio i tuoi file sono 16-bit-unicode e il tuo preprocessore può operare solo su file 8-bit-ascii. Con questa opzione puoi definire la codifica del risultato del preprocessore. Lingue scritte da destra a sinistra:Alcune lingue sono scritte sa destra a sinistra. Quando questa opzione è attivata, &kdiff3; scrive il testo da destra a sinistra nelle finestre di ingresso delle differenze e nella finestra di uscita della fusione. Nota che se avvii &kdiff3; dalla riga di comando con l'opzione , anche tutta l'interfaccia grafica sarà impostata da destra a sinistra (è una funzionalità fornita da &Qt;). Questa documentazione è stata scritta assumendo che l'opzione Lingue scritte da destra a sinistra e l'impostazione grafica inversa non siano state attivate. Quindi alcune occorrenze di destra e sinistra dovranno essere scambiate nel caso si usi questa possibilità. Varie Queste opzioni ed azioni sono disponibili nei menu o nelle barre dei pulsanti. Mostra i numeri di riga:Puoi selezionare se, per il file di ingresso, il numero di riga deve essere visualizzato. Mostra anche le differenze date da spazi e tabulatori:Alcune volte la visualizzazione degli spazi e dei tabulatori disturba. È possibile eliminarla. Mostra spazio bianco:Disabilitalo per sopprimere l'evidenziazione delle modifiche di soli spazi nel testo o nelle colonne riassuntive. Nota che vale anche per le modifiche dei numeri o dei commenti se sono attive le opzioni Ignora i numeri o Ignora i commenti C e C++. Opzioni delle colonne riassuntive:Queste opzioni sono disponibili solo quando si confrontano tre file. Nella modalità normale tutte le differenze vengono mostrate in una sola colonna riassuntiva codificata con dei colori. Però, a volte, potrebbe interessarti evidenziare solo le differenze tra due dei tre file. Selezionare Riassunto tra A e B, Riassunto tra A e C, o Riassunto tra B e C aprirà una seconda colonna riassuntiva di fianco a quella normale con le informazioni richieste. A capo nelle finestre delle differenze:Le righe più lunghe della larghezza della finestra vengono mostrate su più righe. Mostra finestra A, B o C:Alle volte vuoi usare meglio lo spazio sullo schermo per le righe lunghe. Nascondi le finestre non importanti (nel menu Finestra). Inverti orientamento divisione:Passa tra mostrare le finestre delle differenze una di fianco all'altra (A a sinistra di B, che a sua volta è a sinistra di C) o una sopra l'altra (A sopra B, a sua volta sopra C). Questo potrebbe essere utile nel caso di righe lunghe (nel menu Finestra). Avviare velocemente una fusione:A volte guardi le differenze e decidi di fondere. Fondi il file attuale nel menu Cartella funziona anche confrontando solo due file. Basta un clic per avviare la fusione, che usa il il nome dell'ultimo file di ingresso come predefinito. Quando si usa per riavviare una fusione, il nome del file di uscita sarà mantenuto. Configurazione delle scorciatoie da tastiera Attualmente solo la versione per &kde; supporta la configurazione personalizzata delle scorciatoie da tastiera (menu ImpostazioniConfigura le scorciatoie). Comandi per il preprocessore &kdiff3; supporta due opzioni del preprocessore. Comando per il preprocessoreQuando un file viene letto viene incanalato come ingresso a questo comando esterno. Verrà visualizzato il risultato del comando invece del file iniziale. Puoi scrivere il tuo preprocessore secondo le tue esigenze specifiche. Usalo per esempio per tagliare parti di file che danno fastidio, per correggere automaticamente il rientro, eccetera. Comando del preprocessore per confrontare righe:Quando un file viene letto, esso viene trattato da questo comando esterno. Se viene specificato un comando come preprocessore (vedi sopra), allora l'uscita dal preprocessore è anche l'ingresso del preprocessore che confronta le righe. Il risultato sarà usato durante la fase di analisi delle righe coincidenti. Puoi scrivere un tuo preprocessore personalizzato che risolva le tue esigenze. Ogni riga in ingresso deve avere una riga corrispondente in uscita. L'idea è quella di permettere la maggior flessibilità possibile nell'impostare il risultato del confronto. Purtroppo ciò richiede l'uso di un programma esterno, e molti utenti non hanno voglia di scriversene uno. La buona notizia è che molto spesso sed o perl sono perfettamente in grado di svolgere il lavoro richiesto. Un semplice esempio con un file di testo: prendi il file a.txt (6 righe): aa ba ca da ea fa e il file b.txt (3 righe): cg dg eg Senza un preprocessore appariranno le seguenti righe affiancate: aa - cg ba - dg ca - eg da ea fa Probabilmente non era quello che desideravi, poiché la prima lettera contiene l'informazione realmente interessante. Per aiutare l'algoritmo di confronto ad ignorare la seconda lettera potremmo usare come preprocessore un comando che rimpiazzi riga per riga "g" con "a": sed 's/g/a/' Con questo comando il risultato del confronto sarà: aa ba ca - cg da - dg ea - eg fa Internamente l'algoritmo di confronto usa i file elaborati riga per riga dal preprocessore, ma sullo schermo il file non appare modificato. Un preprocessore normale avrebbe cambiato anche i dati visualizzati. Basi del <command >sed</command > Questa sezione spiega sommariamente alcune funzionalità elementari di sed. Per maggiori informazioni vedi info:/sed o http://www.gnu.org/software/sed/manual/html_mono/sed.html. Puoi trovare una versione di sed precompilata per Windows a http://unxutils.sourceforge.net. Nota che gli esempi seguenti danno per scontato che sed sia in una cartella compresa nella variabile d'ambiente PATH. Se ciò non fosse, dovrai specificare il percorso completo del comando. Nota anche che gli esempi seguenti usano le virgolette singole ('), che non funzionano su Windows: lì dovresti invece usare le doppie ("). In questo paragrafo userò solo il comando di sostituzione sed: sed 's/ESPREG/NUOVO_TESTO/CODICE' Prima di usare un nuovo comando in &kdiff3; sarebbe meglio provarlo in una console. Per farlo è utile il comando echo. Ad esempio: echo abracadabra | sed 's/a/o/' obracadabra Questo esempio mostra un semplicissimo comando sed che sostituisce la prima occorrenza di a con o. Volendo sostituire tutte le occorrenze, basta aggiungere il codice g: echo abracadabra | sed 's/a/o/g' obrocodobro Il simbolo | è il comando di incanalamento, che invia il risultato del comando precedente all'ingresso del comando successivo. Se vuoi fare una prova su un file abbastanza lungo, puoi usare cat sui sistemi simili a Unix, o type sui sistemi di tipo Windows. sed farà una sostituzione riga per riga. cat nome_file | sed opzioni Esempi per l'uso di <command >sed</command > in &kdiff3; Ignorare altri tipi commenti Attualmente &kdiff3; riconosce solo i commenti C e C++. Usando il comando di preprocesso per il confronto delle righe puoi ignorare altri tipi di commenti, convertendoli in commenti di tipo C o C++. Per esempio, per ignorare i commenti che iniziano per #, potresti convertirli in //. Tieni presente che devi anche attivare l'opzione Ignora i commenti C e C++ per far funzionare il trucco. Un comando di preprocesso delle righe appropriato potrebbe essere: sed 's/#/\/\//' Poiché per sed il carattere / ha un significato speciale, è necessario porre un carattere \ prima di ogni / nella stringa del nuovo testo. Spesso il carattere \ è richiesto per aggiungere o togliere un significato speciale a certi caratteri. La virgoletta semplice (') all'inizio e alla fine del comando di sostituzione è molto importante qui: altrimenti, la shell cercherebbe di interpretare certi caratteri speciali (per esempio #, $ o \) prima di passarli a sed. Nota che su Windows dovrai usare le virgolette doppie ("). Windows sostituisce altri caratteri, come %, quindi è meglio fare qualche prova. Differenze senza distinzione delle maiuscole Usa questo comando di preprocesso delle righe per convertire tutto in maiuscolo: sed 's/\(.*\)/\U\1/' .* è un'espressione regolare corrispondente a qualsiasi stringa, e, in questo caso, a tutti i caratteri della riga. Il \1 nella stringa di sostituzione rappresenta il testo trovato nel contenuto della prima coppia di parentesi tonde. La \U converte in maiuscolo il testo inserito. Ignorare le parole chiave del controllo di versione CVS ed altri sistemi per il controllo di versione usano molte parole chiave per inserire stringhe generate automaticamente (vedi la pagina Info di CVS). Tutte queste seguono lo schema $KEYWORD testo generato$. A questo punto serve un comando di preprocesso che rimuova solo il testo generato: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' I \| separano le possibili parole chiave. Puoi modificare questa lista secondo le tue esigenze. Il \ prima di $ è necessario, altrimenti $ corrisponderebbe alla fine della riga. Nel provare sed potrai incominciare a capire ed apprezzare queste strane espressioni regolari. Sono molto utili perché ci sono molti altri programmi che supportano cose molto simili. Ignorare i numeri Per ignorare i numeri, in realtà, c'è un'opzione interna. Però, come ulteriore esempio, ecco come funzionerebbe con un comando preprocesso. sed 's/[0123456789.-]//g' Ogni carattere compreso tra le parentesi quadre verrà riconosciuto e rimosso (sostituito con nulla). Ignorare alcune colonne A volte un testo è formattato molto rigorosamente, e contiene delle colonne da ignorare sempre, mentre ci sono altre colonne da tenere e analizzare. Nell'esempio seguente, le prime cinque colonne (cioè caratteri) verranno ignorate, le prossime dieci vengono salvate, ne vengono ignorate altre cinque, il resto della riga viene tenuto. sed 's/.....\(..........\).....\(.*\)/\1\2/' Ogni punto . corrisponde a un qualsiasi carattere singolo. \1 e \2 nella stringa di sostituzione si riferiscono al contenuto della prima e seconda coppia di parentesi tonde, indicanti il testo da tenere. Combinare più sostituzioni A volte, potresti voler applicare più sostituzioni in una volta. In tal caso si può usare un punto e virgola ; per separarle l'una dall'altra. Ad esempio: echo abracadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' OBROCODOBRO Usare <command >perl</command > invece di <command >sed</command > Invece di sed potresti voler utilizzare un altro comando, ad esempio perl. perl -p -e 's/ESPREG/NUOVO_TESTO/CODICE' Alcuni dettagli sono però diversi in perl. Nota che mentre sed vuole le parentesi tonde come \( e \), in perl servono le più semplici ( e ), senza farle precedere da \. Per esempio: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Ordine di esecuzione del preprocessore I dati sono incanalati attraverso tutti i preprocessori interni ed esterni nel seguente ordine: Preprocessore normale, Preprocessore di confronto delle righe, Ignorare le lettere maiuscole (conversione in maiuscolo), Rilevamento dei commenti C e C++: Ignorare i numeri, Ignorare gli spazi I dati, dopo essere passati dal preprocessore normale, saranno tenuti per la visualizzazione e la fusione. Le altre operazioni modificano solo i dati visti dall'algoritmo che rileva le differenze tra le righe corrispondenti. Nei rari casi in cui si usa il preprocessore normale, bisogna tener presente che il preprocessore di corrispondenza delle righe vede l'uscita del preprocessore normale come proprio ingresso. Attenzione I comandi di preprocesso sono spesso utilissimi, ma, come per ogni opzione che modifichi il testo o che nasconda automaticamente certe differenze, possono far sfuggire certe differenze, o nel peggiore dei casi distruggere dati importanti. Per questa ragione, se durante una fusione è in funzione un comando del preprocessore normale, &kdiff3; te lo dirà e ti chiederà se vuoi disattivarlo. Però non ti avviserà se è attivo un comando del preprocessore sul contenuto delle righe. La fusione non sarà completata finché non saranno risolti tutti i conflitti. Se hai disabilitato Mostra spazi, anche le differenze che rimosse con il preprocessore sul contenuto delle righe saranno invisibili. Se il pulsante di salvataggio rimane disattivato durante una fusione (perché sussistono dei conflitti), assicurati di attivare Mostra spazi. Se non vuoi fondere manualmente queste differenze meno importanti, puoi selezionare Scegli [A|B|C] per tutti i conflitti di spazi non risolti nel menu di fusione. Confronto e fusione di cartelle con &kdiff3; Introduzione al confronto e alla fusione tra cartelle Spesso i programmatori devono modificare molti file in una cartella per realizzare i loro scopi. Per questo &kdiff3; permette anche di confrontare e fondere ricorsivamente intere cartelle. Anche se confrontare e fondere delle cartelle sembra abbastanza semplice, ci sono diversi dettagli da considerare. Il più importante è ovviamente che ora molti file potrebbero essere coinvolti in ogni operazione. Se non hai copie di sicurezza dei dati originali, può essere molto difficile se non impossibile tornare allo stato originale. Quindi, prima di avviare una fusione, assicurati che i tuoi dati siano al sicuro e che sia possibile tornare indietro. È una tua decisione se archiviarli o se usare un sistema di controllo delle versioni, ma anche i programmatori esperti hanno bisogno dei vecchi sorgenti ogni tanto. Nota che anche se io (l'autore di &kdiff3;) cerco di fare del mio meglio, non posso garantire che non ci siano errori. In accordo con la licenza GNU GPL, non c'è alcuna garanzia per questo programma. Quindi attenzione e ricordate:
Errare è umano, ma per fare un gran casino è necessario un computer.
Ecco quindi quello che questo programma può fare per te: &kdiff3;... ... legge e confronta due o tre cartelle ricorsivamente, ... fa particolare attenzione ai collegamenti simbolici, ... permette di sfogliare i file con un doppio clic del mouse, ... per ogni elemento propone un'operazione di fusione, che puoi cambiare prima di avviare la fusione delle cartelle, ... permette di simulare la fusione ed elenca le azioni che verrebbero fatte, senza eseguirle per davvero, ... permette di fondere, e permette l'intervento manuale quando questo è necessario, ... ti permette di avviare l'operazione selezionata per tutti gli elementi (tasto F7) o per l'elemento selezionato (tasto F6), ... permette di continuare la fusione dopo l'interazione manuale con il tasto F7, ... a scelta, crea delle copie di sicurezza, con l'estensione .orig, ...
Avviare il confronto o la fusione di cartelle Questa operazione è molto simile al confronto e alla fusione di un file. È necessario specificare le cartelle nella riga di comando o nel dialogo di selezione dei file. Confronta o fondi due cartelle: kdiff3 cartella1 cartella2 kdiff3 cartella1 cartella2 -o cartella_destinazione Se non viene specificata una cartella di destinazione, &kdiff3; userà cartella2. Confronta o fondi tre cartelle: kdiff3 cartella1 cartella2 cartella3 kdiff3 cartella1 cartella2 cartella3 -o cartella_destinazione Quando si fondono tre cartelle, cartella1 viene usata come base della fusione. Se non è stata specificata nessuna cartella di destinazione per la fusione, &kdiff3; userà cartella3. Nota che solo il confronto inizia automaticamente, non la fusione. Per farla devi prima selezionare un elemento del menu o il tasto F7 (maggiori dettagli di seguito). Informazioni visibili sulla fusione delle cartelle Durante la lettura delle cartelle appare un messaggio per notificare lo stato di avanzamento. Se annulli la scansione delle cartelle, saranno elencati solo i file che sono stati confrontati fino a quel momento. Quando la scansione delle cartelle è completata, &kdiff3; mostra un elenco dei risultati a sinistra, ... ... e i dettagli dell'elemento attualmente selezionato a destra: La colonna del nome Ogni file e cartella trovato durante la scansione è mostrato qui in un albero. Puoi selezionare un elemento facendoci clic con il mouse. Normalmente le cartelle sono chiuse. È possibile espanderle e richiuderle con un clic su + o - rispettivamente, facendo doppio clic sull'elemento, o usando i tasti freccia sinistra o destra. Il menu Cartella contiene inoltre due azioni, Chiudi sottocartelle e Apri sottocartelle con le quali puoi richiudere o espandere tutte le cartelle in una sola volta. Se fai doppio clic su un file, il confronto verrà avviato e apparirà la finestra delle differenze dei file. L'immagine nella colonna del nome corrisponde al tipo di file nella prima cartella (A). Può essere una di queste: File normale Cartella normale (immagine di una cartella) Collegamento a un file (immagine di un file con una freccia) Collegamento a una cartella (immagine di una cartella con una freccia) Se il tipo di file è diverso nelle altre cartelle, questo è visibile nelle colonne A, B e C e nella finestra che mostra i dettagli dell'elemento selezionato. Nota che in questo caso nessuna operazione di fusione potrà essere selezionata automaticamente. Quando la fusione sarà avviata, l'utente sarà informato dei problemi di questo tipo. Le colonne <guilabel >A</guilabel >, <guilabel >B</guilabel > e <guilabel >C</guilabel > e lo schema di colorazione Come si può vedere nell'immagine sopra, i colori rosso, verde, giallo e nero sono utilizzati nelle colonne A, B e C. Nero: questo elemento non esiste in questa cartella. Verde: elemento più recente. Giallo: più vecchio del verde, più recente del rosso. Rosso: elemento più vecchio. Per gli elementi risultati identici dal confronto, il colore è identico anche se l'età non lo è. Le cartelle sono considerate uguali se tutti gli elementi in esse contenuti sono identici. In tal caso avranno anche lo stesso colore. L'età di una cartella, però, non è considerata per il suo colore. L'idea di questo schema di colorazione l'ho avuta da dirdiff. I colori sembrano i colori di una foglia, che è verde quando è nuova, successivamente ingiallisce diventa rossa quando è vecchia. La colonna <guilabel >Operazione</guilabel > Dopo aver confrontato le cartelle, &kdiff3; valuta anche una proposta di fusione. Questa è visibile nella colonna Operazione. Puoi modificare l'operazione facendo clic su quella che desideri cambiare. Apparirà un piccolo menu che permetterà di selezionare un'operazione per quell'elemento. Puoi anche selezionare le operazioni necessarie con la tastiera: &Ctrl;1, &Ctrl;2, &Ctrl;3, &Ctrl;4, e &Ctrl;Canc selezionano rispettivamente, A, B, C, Fondi e Cancella, se disponibili. Questa operazione verrà eseguita durante la fusione. Quali operazioni sono disponibili dipende dall'elemento e dalla modalità di fusione attuale. La modalità di fusione è una tra le seguenti: Fusione di tre cartelle (A è considerato la base più vecchia di entrambe). Fusione di due cartelle. Modalità di sincronizzazione di due cartelle (attivabile con l'opzione Sincronizza cartelle). Nella fusione di tre cartelle l'operazione proposta sarà: Se per un elemento… … le tre cartelle sono uguali: copia da C A e C sono uguali ma B no: copia da B, o elimina la destinazione se B non esiste A e B sono uguali ma C no: copia da C, o elimina la destinazione se C non esiste B e C sono uguali ma A no: copia da C, o elimina la destinazione se C non esiste … esiste solo A: elimina la destinazione, se esiste … esiste solo B: copia da B … esiste solo C: copia da C A, B e C non sono uguali: fondi A, B e C non sono dello stesso tipo (per esempio A è una cartella e B è un file): Errore: tipi di file in conflitto. La fusione non può essere avviata finché esistono questi elementi. Nella fusione di due cartelle l'operazione proposta sarà: se per un elemento… … entrambe le cartelle sono uguali: copia da B A esiste, ma B no: copia da A B esiste, ma A no: copia da B A e B esistono ma non sono uguali: fondi A e B non sono dello stesso tipo (per esempio A è una cartella, B è un file): Errore: tipi di file in conflitto. La fusione non può essere avviata finché esistono questi elementi. La modalità di sincronizzazione è attiva se solo sono state specificate due cartelle e nessuna destinazione, e se è attiva l'opzione Sincronizza cartelle. &kdiff3; selezionerà quindi un'operazione predefinita in modo che entrambe le cartelle divengano successivamente uguali. Se per un elemento… … entrambe le cartelle sono uguali: non sarà fatto nulla A esiste, ma B no: copia A su B B esiste, ma A: copia B su A A e B esistono, ma non sono uguali: fondi e memorizza il risultato in entrambe le cartelle. Il nome del file di salvataggio visibile all'utente è quello di B, ma &kdiff3; copia B anche su A. A e B non sono dello stesso tipo (per esempio A è una cartella, B è un file): Errore: tipi di file in conflitto. La fusione non può essere avviata finché esistono questi elementi. Quando due cartelle vengono fuse ed è selezionata l'opzione Copia il più recente invece di fondere, &kdiff3; verificherà le date e proporrà di scegliere il file più recente. Se i file non sono uguali ma hanno la stessa data, il risultato dell'operazione sarà Errore: le date coincidono ma i file sono diversi. La fusione delle cartelle non può essere avviata finché esistono questi elementi. La colonna <guilabel >stato</guilabel > Durante la fusione i file saranno elaborati uno per volta. La colonna di stato indicherà Fatto per gli elementi correttamente fusi, e altri messaggi se si è verificato qualche imprevisto. Quando una fusione è completa, si dovrebbe fare un'ultima verifica per vedere se gli stati di tutti gli elementi sono corretti. Le colonne delle statistiche Quando la modalità di confronto dei file Analisi completa è stata abilitata nelle opzioni, &kdiff3; mostrerà delle colonne supplementari con il numero di conflitti non risolti, risolti, di spazi vuoti e non. La colonna dei risolti verrà mostrata solo quando si confrontano o fondono tre cartelle. Selezionare i file elencati Diverse opzioni influenzano quali file vengono qui elencati. Ad alcune si può accedere nella finestra delle impostazioni. Il menu delle cartelle contiene le voci: Mostra file identici: i file che sono stati verificati essere identici in tutte le cartelle di ingresso. Mostra file diversi: file che esistono in due o più cartelle e che non sono uguali. Mostra file solo in A: file che esistono in A, ma non in B o C. Mostra file solo in B: file che esistono in B, ma non in A o C. Mostra file solo in C: file che esistono in C, ma non in A o B. Attiva le opzioni di visualizzazione solo per gli elementi che vuoi elencare. Se per esempio vuoi solo elencare tutti gli elementi che esistono in A o B, ma non in entrambi, dovrai attivare Mostra file solo in A e Mostra file solo in B, e disattivare tutti gli altri (Mostra file identici, Mostra file diversi, Mostra file solo in C). L'elenco sarà immediatamente aggiornato secondo le modifiche. Queste opzioni valgono anche per le cartelle, con un'eccezione: disabilitare Mostra file diversi non nasconderà le cartelle complete, ma funzionerà solo per i loro file. Nota che tra queste opzioni solo Mostra file identici è persistente; le altre sono abilitate quando si avvia &kdiff3;. Fondere le cartelle Puoi o fondere l'elemento attualmente selezionato (file o cartella), o tutti gli elementi. Quando hai scelto tutte le tue operazioni (anche in tutte le sottocartelle) puoi avviare la fusione. Attenzione che se non specifichi esplicitamente una cartella di destinazione, questa sarà C nella modalità con tre cartelle, B nella modalità con due, e nella modalità di sincronizzazione sarà A o B. Se è stata specificata la cartella di destinazione, va verificato anche che tutti gli elementi di uscita siano nell'albero. Ci sono alcune opzioni che fanno omettere certi elementi dal confronto e dalla fusione delle cartelle. Verifica queste opzioni per non avere delle brutte sorprese: Cartelle ricorsive: se disabilitato, gli elementi nelle sottocartelle non saranno trovati. Schemi di file e Schemi di file da escludere: include o esclude gli elementi corrispondenti Escludi file nascosti Opzioni di visualizzazione Se cambi le impostazioni per elencare più file, devi riesaminare la cartella con CartellaRiesamina; questo perché &kdiff3; non confronta i file esclusi con questi criteri per accelerare il confronto. Se hai cambiato gli schemi per file o cartelle per escludere dei file, la lista dei file sarà aggiornata subito dopo la chiusura della finestra delle opzioni. Nota che, quando scrivi in una cartella completamente nuova, di solito vuoi copiare anche i file identici. In tal caso abilita l'opzione Mostra file identici. Se la cartella di destinazione è uno degli ingressi, questo non è necessario perché il file è già lì. Se fin qui sei soddisfatto, il resto è facile. Per fondere tutti gli elementi: seleziona CartellaAvvia o continua fusione tra cartelle o premi il tasto F7, che ne è la scorciatoia predefinita. Per fondere solo l'elemento attuale, seleziona Esegui operazione sull'elemento attuale o premi F6. Se esistono ancora elementi con operazioni non valide a causa di tipi di file in conflitto, apparirà una finestrella per indicarli e poter selezionare un'operazione valida. Se fondi tutti gli elementi, apparirà una finestra con le opzioni Procedi, Simula e Annulla. Seleziona Simula se vuoi vedere cosa verrebbe fatto senza farlo per davvero. Verrà mostrato un elenco dettagliato di tutte le operazioni. Altrimenti, seleziona Procedi per avviare la fusione vera e propria. &kdiff3; avvierà quindi l'operazione specifica per tutti gli elementi. Se si richiede un'interazione manuale (fusione di un singolo file), sarà aperta la finestra di fusione (vedi la schermata grande). Quando hai finito con la fusione manuale di un file, riseleziona Avvia o continua fusione tra cartelle o il tasto F7. Se non hai ancora salvato, una finestra te lo chiederà. &kdiff3; procederà quindi al prossimo elemento. Quando &kdiff3; incontra un errore, lo segnalerà e mostrerà le informazioni di stato in dettaglio. In fondo a questo elenco ci saranno alcuni messaggi d'errore che dovrebbero aiutare a capire la causa del problema. Quando si fa riprendere la fusione (tasto F7), &kdiff3; darà la scelta tra riprovare o saltare l'elemento che ha causato il problema. Ciò significa che prima di continuare puoi scegliere un'altra operazione, o risolvere il problema in altro modo. &kdiff3; mostrerà infine una finestrella al completamento della fusione. Se alcuni elementi sono stati fusi individualmente prima di eseguire la fusione tra cartelle, &kdiff3; lo ricorderà per tutta la sessione di fusione, e non li fonderà di nuovo quando la fusione di tutti gli altri elementi verrà eseguita più tardi. Questi elementi sono considerati completati anche quando la fusione viene saltata o non viene salvato nulla. Solo quando cambi l'operazione di fusione lo stato di completamento dell'elemento sarà rimosso, e l'elemento sarà fuso di nuovo. Opzioni per il confronto e la fusione tra cartelle Le preferenze di &kdiff3; (ImpostazioniConfigura &kdiff3;) ha una sezione chiamata Fusione tra cartelle con queste opzioni: Cartelle ricorsive:Seleziona se cercare ricorsivamente nelle cartelle. Schemi di file:Solo i file che corrispondono ad uno schema saranno inseriti nell'albero. È possibile specificare più di uno schema usando il punto e virgola (;) come separatore. I caratteri jolly possibili sono * e ?; per esempio *.cpp;*.h. Il valore predefinito è *. Questi schemi non vengono usati per le cartelle. Schemi di file da escludere:I file che corrispondono a questi schemi saranno esclusi dall'albero. È possibile specificare più di uno schema usando il punto e virgola (;) come separatore. I caratteri jolly possibili sono * e ?. Il valore predefinito è *.orig;*.o;*.obj. Schemi di cartelle da escludere:Le cartelle che corrispondono a questi schemi saranno escluse dall'albero. È possibile specificare più di uno schema usando il punto e virgola (;) come separatore. I caratteri jolly possibili sono * e ?. Il valore predefinito è CVS;deps;.svn. Usa .cvsignore:Ignora i file e le cartelle che verrebbero ignorati anche da CVS. Molti file generati automaticamente vengono ignorati da CVS. Il vantaggio principale è che questo può cambiare per ogni cartella, secondo il file locale .cvsignore. Vedi la pagina Info di .cvsignore. Trova file e cartelle nascosti:Su alcuni filesystem esiste l'attributo nascosto per i file. Su altri un nome del file che comincia con un punto (.) lo rende nascosto. Questa opzione permette di decidere se includere questi file nell'albero oppure no. Come impostazione predefinita è attivato. Segui i collegamenti dei file:Per i collegamenti a file: quando disabilitato, vengono confrontati i collegamenti simbolici. Quando abilitato, vengono confrontati i file collegati. Come impostazione predefinita è disattivato. Segui i collegamenti delle cartelle:Per collegamenti a cartelle: quando disabilitato, vengono confrontati i collegamenti simbolici. Quando attivato, i collegamenti saranno trattati come una cartella e saranno scansionati ricorsivamente. Nota che il programma non verifica se il collegamento è ricorsivo. Quindi, per esempio, se una cartella contenente un collegamento ad un'altra causa un ciclo infinito, dopo un po' ciò causerà un esaurimento della memoria e manderà il programma in crash. Come impostazione predefinita è disattivato. Confronto di nomi di file con distinzione delle maiuscole:Il valore predefinito è falso su Windows, vero per gli altri sistemi operativi. Modalità di confronto dei file: Confronto binario:Questa è la modalità di confronto predefinita. Analisi completa:Opera un analisi approfondita di ogni file e mostra le colonne con le informazioni statistiche (numero di conflitti non risolti, risolti, relativi a spazi non bianchi e relativi a spazi bianchi). L'analisi completa è più lenta di una semplice analisi binaria, e ancora più lenta se applicata a file non di testo (indica gli schemi di file da escludere appropriati). Fidati della data di modifica:Se si confrontano cartelle grandi in una rete lenta, potrebbe essere più veloce confrontare solamente le date di modifica e la dimensione dei file. Ma questo aumento di velocità ha il prezzo di una piccola incertezza. Usa questa opzione con cautela. Come impostazione predefinita è disattivata. Fidati della dimensione:Simile a fidarsi delle date di modifica. Non c'è un vero confronto. Due file sono considerati uguali se la loro dimensione risulta uguale. Questo è utile quando l'operazione di copia file non ha mantenuto la data di modifica. Usa questa opzione con cautela. Come impostazione predefinita è disattivata. Sincronizza le cartelle:Attiva la modalità di sincronizzazione quando vengono confrontate due cartelle e non è stata indicata una cartella di destinazione. In questa modalità le operazioni proposte saranno scelte in modo che entrambe le cartelle sorgenti siano in seguito uguali. Anche il risultato di fusione sarà scritto in entrambe le cartelle. Come impostazione predefinita è disattivato. Copia il più recente invece di fondere:Invece di fondere, l'operazione proposta copierà il sorgente più recente se ci sono state modifiche; è potenzialmente pericoloso, perché si assume che l'altro file non sia stato modificato: controlla per assicurartene ogni volta. Come impostazione predefinita è disattivato. Copie di sicurezza:Se un file o un'intera cartella è sostituito con un altro o viene eliminato, la versione originale sarà rinominata con l'estensione .orig. Se esiste già una copia precedente con estensione .orig, sarà eliminata senza farne una copia. Inoltre, ciò ha effetto sulla comune fusione tra singoli file, non solo sulla fusione tra cartelle. Come impostazione predefinita è attivato. Altre funzioni nella finestra di fusione tra cartelle Modalità a schermo intero o diviso Normalmente l'elenco di visualizzazione della fusione delle cartelle rimane visibile mentre un file viene confrontato o fuso. Con il mouse puoi muovere la barra di separazione tra l'elenco dei file e le finestre delle differenze testuali. Se non lo vuoi, puoi disabilitare l'opzione Vista separata nel menu Cartella. Potrai quindi usare Inverti vista nel menu Cartella per passare tra l'elenco di file e la vista delle differenze, che quindi occuperà tutto lo schermo. Confrontare o fondere un file singolo Probabilmente è più semplice fare doppio clic col mouse su un file per confrontarlo; esiste però anche una voce nel menu Cartella. Puoi anche fondere direttamente un file singolo selezionandolo e scegliendo FondiFondi il file attuale. Al salvataggio del risultato, lo stato del file verrà segnato come completato, e il file non verrà fuso di nuovo se viene avviata una fusione tra cartelle. Nota però che queste informazioni di stato andranno perse al se viene effettuata una nuova scansione delle cartelle con CartellaRiesamina. Confrontare o fondere file con nomi diversi A volte devi confrontare o fondere file con nomi diversi, per esempio un file e la sua copia di sicurezza nella stessa cartella. Seleziona il file facendo clic sull'icona nella colonna A, B o C. Il primo file selezionato sarà segnato con A, il secondo e il terzo con B e C indipendentemente dalla colonna in cui si trovano. Si possono scegliere tre file al massimo in questo modo. Procedi scegliendo Confronta file selezionati esplicitamente o Fondi file selezionati esplicitamente dal menu Cartella. Per comodità, queste voci appaiono anche nel menu contestuale quando fai clic destro sull'ultimo file selezionato. Il confronto o la fusione di un file avverrà nella stessa finestra. Se questo metodo viene usato per le cartelle, sarà aperta una nuova finestra.
Argomenti vari Trasparenza di rete con KIO Gli slave KIO &kde; supporta la trasparenza di rete tramite gli slave KIO. &kdiff3; li usa per leggere i file in ingresso e per esaminare le cartelle. Ciò significa che è possibile specificare file e cartelle locali o remoti con un URL. Esempio: kdiff3 prova.cpp ftp://ftp.tantolontano.it/prova.cpp kdiff3 tar:/home/pincopallino/archivio.tar.gz/cartella ./dir La prima riga confronta un file locale con un file su un server FTP. La seconda riga confronta una cartella contenuta in un archivio compresso con una locale. Altri slave KIO interessanti sono: File dal Web (http:), File da FTP (ftp:), Trasferimento di file cifrato (fish:, sftp:), Partizioni condivise di Windows (smb:), File locali (file:), Altre cose possibili, ma probabilmente meno utili sono: Pagine Man (man:), Pagine Info (info:), Come scrivere gli <acronym >URL</acronym > Un URL ha una sintassi diversa rispetto ai percorsi dei file delle cartelle locali. Si dovrebbero considerare alcune cose: Un percorso può essere relativo e può contenere . o ... Quando non è possibile per gli URL, che sono sempre assoluti. I caratteri speciali devono essere scritti con i caratteri di escape (# diventa %23, gli spazi diventano %20, eccetera). Per esempio un file chiamato #pippo# dovrebbe avere l'URL file:/%23pippo%23. Quando gli URL non funzionano come ci si aspetta, prova ad aprirli con Konqueror e vedere cosa succede. Funzionalità degli slave KIO La trasparenza di rete ha uno svantaggio: non tutte le risorse hanno le stesse funzionalità. A volte ciò è dovuto al filesystem del server, altre volte al protocollo. Ecco un breve elenco di limitazioni: A volte manca il supporto per i collegamenti. O non c'è modo di distinguere se il collegamento punti ad un file o ad una cartella; si assume sempre un file (ftp:, sftp:). Non si può sempre sapere la dimensione del file. Supporto limitato per i permessi. Manca la possibilità di cambiare i permessi o la data di modifica, quindi i permessi e la data di modifica di una copia saranno diversi dall'originale (vedi l'opzione Fidati della dimensione). Queste operazioni sono permesse solo per i file locali. Usare &kdiff3; come un componente KPart &kdiff3; è un componente KPart. Attualmente implementa l'interfaccia KParts::ReadOnlyPart. Il su impiego uso principale è come visore di differenze in KDevelop. KDevelop fa sempre partire prima il visore delle differenze interno. Per richiamare &kdiff3; premi il &RMB; nella finestra del visore e seleziona Mostra in KDiff3Part dal menu contestuale. &kdiff3; richiede normalmente due file completi in ingresso. Quando viene usato come componente, &kdiff3; assumerà che il file di ingresso sia una patch nel formato unificato. &kdiff3; recupererà i nome originali dei file dalla patch. Deve essere disponibile almeno uno dei due file. &kdiff3; chiamerà quindi patch per ricreare il secondo file. In Konqueror puoi selezionare una patch e selezionare dal menu contestuale Anteprima inKDiff3Part. Nota che ciò non funzionerà se nessuno dei file originali è disponibile, e non è affidabile se i file originali sono stati modificati prima della generazione della patch. Quando avviato come componente, &kdiff3; include solo la differenza tra due file, e una barra degli strumenti e un menu ridotti. La fusione o il confronto tra cartelle non sono supportati. Domande e risposte &reporting.bugs; &updating.documentation; Perché si chiama &kdiff3;? Gli strumenti KDiff e KDiff2 (ora &kompare;) esistono già. Inoltre KDiff3 dovrebbe suggerire che può fondere come il programma diff3 presente nella raccolta degli strumenti diff. Perché l'ho rilasciato con la GPL? Ho usato a lungo programmi GPL e ho imparato molto guardando il codice sorgente. Così questo è il mio Grazie a tutti i programmatori che a loro volta hanno fatto o faranno lo stesso. Mancano alcuni pulsanti e funzioni. Cosa c'è che non va? Hai compilato da sorgente, ma probabilmente non hai specificato correttamente il prefisso di &kde; durante la configurazione. Come impostazione predefinita configure cerca di installare in /usr/local, ma in questo modo &kde; non può trovare il file delle risorse dell'interfaccia utente (per esempio kdiff3ui.rc). Il file README contiene maggiori informazioni su qual è il prefisso giusto. Spesso le righe simili ma non uguali appaiono fianco a fianco, ma a volte no. Perché? Le righe che presentano differenze di soli spazi sono inizialmente trattate come uguali, mentre una sola differenza non di spazi le rendono diverse. Che righe simili appaiano fianco a fianco è una coincidenza, ma questo fortunatamente è spesso il caso. Vedi anche l'aiuto per le differenze manuali. Perché tutti i conflitti devono essere risolti prima di poter salvare il risultato della fusione? Per ogni sezione uguale o diversa, l'editor nella finestra del risultato di fusione ricorda l'inizio e la fine. Questo è necessario per poter risolvere i conflitti manualmente semplicemente selezionando il pulsante del sorgente (A, B o C). Queste informazioni andranno perse in seguito al salvataggio del testo, perché è troppo oneroso creare un formato di file che supporti il salvataggio e il ripristino di tutte le informazioni necessarie. Come posso sincronizzare le viste di differenze e fusioni, in modo che tutte le viste mostrino la stessa posizione del testo? Fai clic nella colonna di sommario a sinistra del testo (vedi anche qui). Perché l'editor nella finestra del risultato di fusione non ha una funzione di annullamento? Questa funzione richiedeva troppo sforzo. È sempre possibile ripristinare una versione da una sorgente (A, B o C) facendo clic il rispettivo pulsante. Per modifiche maggiori si raccomanda comunque l'uso di un altro editor. Quando ho rimosso del testo mi è apparso improvvisamente <Riga sorgente mancante>, e non può essere eliminato. Cosa significa e come si può rimuovere? L'editor nella finestra del risultato della fusione ricorda dove inizia e dove finisce ogni sezione diversa o uguale. <Riga sorgente mancante> significa che non è in una sezione non c'è più nulla, nemmeno un carattere di ritorno a capo. Questo può capitare sia nella fusione automatica che modificando il file a mano. Questo non è un problema, perché questa indicazione non apparirà nel file salvato. Se rivuoi il file originale basta selezionare la sezione (fai clic sulla colonna di sommario a sinistra) e fai quindi clic sul pulsante del sorgente con il contenuto voluto (A, B o C). Perché &kdiff3; non supporta l'evidenziazione della sintassi? &kdiff3; già usa molti colori per l'evidenziazione delle differenze. Altre evidenziazioni farebbero confusione. Per questi scopi usa un altro editor. Posso usare &kdiff3; per confrontare file di OpenOffice.Org, Word, Excel, PDF, eccetera? Nonostante &kdiff3; possa analizzare ogni tipo di file, probabilmente il risultato non sarà molto soddisfacente. &kdiff3; è stato fatto per confrontare file di testo semplice. OpenOffice, Word, Excel eccetera memorizzano molte più informazioni nei file (sul tipo di carattere, le immagini, le pagine, i colori eccetera) di cui &kdiff3; non sa nulla. Quindi &kdiff3; ti mostrerà i contenuti del file interpretato come testo semplice, ma ciò potrebbe essere illeggibile, o almeno sembrerà molto strano. Siccome la maggior parte dei programmi oggigiorno memorizza i contenuti in formato XML, dovresti poterli leggere come testo semplice. Quindi se c'è stato solo un piccolo cambiamento, &kdiff3; potrebbe ancora essere d'aiuto. La migliore soluzione se vuoi solo confrontare il testo (senza oggetti integrati, come le immagini) è usare Seleziona tutto e Copia nel programma per copiare il testo rilevante negli appunti, e in seguito incollare il testo in &kdiff3; in una finestra di confronto. Vedi anche la sezione seleziona, copia e incolla. Dov'è andata l'opzione delle cartelle Elenca solo le differenze? Ora ci sono varie opzioni di visualizzazione nel menu delle cartelle. Disabilitare Mostra file identici produce la stessa cosa che faceva l'abilitazione di Elenca solo le differenze. Come faccio a fare una grande selezione nella finestra di ingresso delle differenze, visto che ci vuole così tanto tempo per lo scorrimento? Comincia la selezione come al solito (fai clic e tieni premuto il &RMB;). Quindi usa i tasti di navigazione (Per esempio Pag↑ e Pag↓) tenendo premuto il &RMB;. Vedi anche la sezione seleziona, copia e incolla. Qui ci sono molte informazioni, ma non hai trovato una risposta alla tua domanda? Sei pregato di inviarmi la tua domanda. Ogni commento sarà apprezzato. Riconoscimenti e Licenza &kdiff3; - Strumento per confrontare e fondere file e cartelle Copyright del programma 2002-2007 di Joachim Eibl joachim.eibl@gmx.de Sono ben accette nuove idee e segnalazioni di errori da colleghi e da tutte le persone su Internet. Grazie! Copyright della documentazione © 2002-2007 di Joachim Eibl joachim.eibl@gmx.de Aggiornamento e revisione della traduzione (2009), attuale responsabile: Federico Zenith federico.zenith@member.fsf.org Aggiornamento e revisione della traduzione (2005): Andrea Celli Traduzione 2004: Stelvio Rosset &underFDL; &underGPL; Installazione Come procurarsi &kdiff3; È possibile scaricare la versione più recente di &kdiff3; da SourceForge. &kdiff3; è disponibile anche per altre piattaforme. Per maggiori dettagli consultare la pagina Web. Requisiti Per sfruttare appieno tutte le potenzialità di &kdiff3; serve &kde; 3.1 o successivo. Per informazioni su come usare &kdiff3; su altre piattaforme sprovviste di &kde; si rimanda alla pagina Web. La lista dei cambiamenti si trova all'indirizzo http://kdiff3.sourceforge.net/ChangeLog, oppure nel file ChangeLog del pacchetto dei sorgenti. Compilazione ed installazione Per compilare ed installare &kdiff3; su un sistema con &kde;, posizionati sulla cartella di base della distribuzione di &kdiff3; e digita: % ./configure --prefix=cartella-kde % make % make install cartella-kde specifica la cartella contenente &kde; sul sistema. Se non sei sicuro, leggi il file README per maggiori dettagli. Se non usi &kde;, non usare configure, ma segui invece le istruzioni per i sistemi con solo &Qt; nel file README. Dato che &kdiff3; utilizza autoconf e automake, non dovresti avere problemi a compilarlo. Se invece pensi di aver trovato un problema sei pregato di segnalarlo alla lista di distribuzione di &kde;. &documentation.index;
kdiff3-0.9.97/doc/it/CMakeLists.txt0000644000175100001440000000013511626145651016247 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/it SUBDIR kdiff3) kdiff3-0.9.97/doc/de/0000755000175100001440000000000011626145654013467 5ustar joachimuserskdiff3-0.9.97/doc/de/index.docbook0000644000175100001440000030334411626145652016145 0ustar joachimusers KDiff3"> ]> Das Handbuch zu &kdiff3; Joachim Eibl
joachim.eibl at gmx.de
ThomasReitelbach
tr@erdfunkstelle.de
Deutsche Übersetzung
2002-2005 Joachim Eibl &FDLNotice; 2005-01-30 0.9.87 &kdiff3; ist ein Programm zum Anzeigen von Unterschieden und zum Zusammenführen von Dateien und Ordnern. &kdiff3; vergleicht zwei oder drei Textdateien bzw. Ordner und führt sie zusammen, kann Unterschiede zeilenweise und sogar Zeichen für Zeichen anzeigen, hat eine Funktion zum automatischen Zusammenführen, enthält einen speziellen komfortablen Editor zum Auflösen von Konflikten beim Zusammenführen, ist mit Hilfe von KIO Netzwerktransparent, kann Unterschiede in "weißen" Zeichen oder Kommentaren besonders hervorheben oder verstecken. unterstützt Unicode, UTF-8 und weitere Dateikodierungen. Dieses Dokument beschreibt &kdiff3; in der Version 0.9.87. KDE kdeextragear kdiff3 vergleichen zusammenführen CVS dreifach-vergleichen vergleichen Dateien Ordner Versionskontrolle Drei-Wege-Zusammenführen Unterschiede innerhalb einer Zeile synchronisieren kpart kio netzwerktransparent Editor "weißes" Zeichen Kommentare
Einführung Noch eine Oberfläche zu Diff? Es gibt viele graphische Werkzeuge zum Vergleichen. Warum also &kdiff3;? Lassen Sie mich kurz erklären, warum ich &kdiff3; ins Leben gerufen habe. &kdiff3; wurde programmiert, weil ich eine sehr komplizierte Zusammenführung durchzuführen hatte. Zusammenführen wird dann nötig, wenn mehrere Personen an der gleichen Datei in einem Projekt arbeiten. Wenn das verwendete Werkzeug zum Zusammenführen nicht nur die geänderten Dateien ("Branch" genannt), sondern auch die Originale ("Basis") zur Verfügung hat, kann das Zusammenführen gewissermaßen automatisiert werden. Das Programm wird dann automatisch die in der Branch gemachten Änderungen auswählen. Doch wenn mehrere Beitragende die gleichen Zeilen ändern, wird ein Konflikt erkannt. Solch ein Konflikt muss dann von Hand aufgelöst werden. Die Zusammenführung war sehr kompliziert, weil einer der Beitragenden viele Änderungen vorgenommen und gleichzeitig an vielen Stellen die Einrückung korrigiert hatte. Ein weiterer Programmierer hatte in der gleichen Datei viel Text verändert. Das Ergebnis waren zahlreiche Konflikte beim Zusammenführen. Das von mir benutzte Programm zeigte mir nur die geänderten Zeilen an, ich konnte aber nicht sehen, was genau sich innerhalb dieser Zeilen geändert hatte. Und es gab keinerlei Hinweise auf die Stellen, wo sich vielleicht nur die Einrückung geändert hatte. Das Zusammenführen dieser Änderungen war ein kleiner Albtraum. Das war also der Beginn. Die erste Version von &kdiff3; konnte Unterschiede innerhalb einer Zeile und Änderungen an "weißen" Zeichen darstellen. Später wurden noch jede Menge weiterer nützlicher Funktionen hinzugefügt. Wenn Sie zum Beispiel schnell Text vergleichen möchten, kopieren Sie ihn einfach in die Zwischenablage und fügen ihn in eines der Vergleichsfenster ein. Eine Funktion die viel Arbeit machte, war das Vergleichen und Zusammenführen von Ordnern. Diese Funktion verwandelte &kdiff3; beinahe in einen vollwertigen Datei-Browser. Ich hoffe, dass Sie viel Nutzen an &kdiff3; haben und wünsche Ihnen viel Freude! Joachim Eibl (2003) Bildschirmphotos und Funktionen Dieses Bildschirmphoto zeigt die Unterschiede zwischen zwei Textdateien (Unter Verwendung einer frühen Version von &kdiff3;): Auch 3-Wege-Zusammenführen wird vollständig unterstützt. Dies ist nützlich, wenn zwei Personen unabhängig voneinander an einem Stück Kode arbeiten und Änderungen vornehmen. Die Originaldatei (die Basis) hilft &kdiff3; beim automatischen Auswählen der jeweils korrekten Änderungen. Der Zusammenführungs-Editor unter den Unterschiede-Fenstern ermöglicht das Auflösen von Konflikten und zeigt gleichzeitig das zu erwartende Ergebnis an. In diesem Editor können Sie das Ergebnis sogar direkt bearbeiten. Das Bildschirmphoto zeigt drei Quell-Dateien beim Zusammenführen: &kdiff3; hilft Ihnen auch beim Vergleichen und Zusammenführen kompletter Ordner. Dieses Bildschirmphoto zeigt &kdiff3; beim Ordner-Zusammenführen: Weitere Funktionen Zeilen- und sogar Zeichenweises Darstellen von Unterschieden &kdiff3; zeigt die exakten Unterschiede an und bediehnt sich dazu der Möglichkeiten heutiger Farbmonitore. Wenn Sie häufig Kode überprüfen müssen, werden Sie diese Funktion mögen. Erkennen von Unterschieden in "weißen" Zeichen auf einen Blick Unterschiede in "weißen" Zeichen und Tabulatoren werden sichtbar dargestellt. Wenn sich Zeilen nur in einer gewissen Anzahl an "weißen" Zeichen unterscheiden, kann man das auf einen Blick an der Zusammenfassung in der Spalte an der linken Seite sehen. (Kein Ärger mehr, wenn Jemand die Einrückung ändert.) 3-Wege-Vergleichen Man kann drei Dateien analysieren und sehen, an wo sie sich unterscheiden. Das linke/mittlere/rechte Fenster hat den Namen A/B/C und ist entsprechend blau/grün/magenta eingefärbt. Wenn eine Datei gleich ist, und die andere sich in einer Zeile unterscheidet, dann zeigt die Farbe an, welche Datei unterschiedlich ist. Rote Farbe bedeutet, dass beide sich Dateien unterscheiden. Komfortables zusammenführen von zwei oder drei Dateien Mit &kdiff3; kann man zwei oder drei Dateien zusammenführen. Dabei führt &kdiff3; so viel wie möglich automatisch zusammen. Das Ergebnis wird in einem editierbaren Fenster angezeigt; dort können die meisten Konflikte schon mit einem einfachen Mausklick gelöst werden: Wählen Sie zwischen den Knöpfen A/B/C um die zu benutzende Quelle auszuwählen. Sie können auch mehr als eine Quelle wählen. Weil das Fenster im Grunde ein Editor ist, können hier selbst Konflikte, die eine weitere Bearbeitung erfordern, einfach aufgelöst werden. Sie benötigen dazu keine weiteren Hilfsmittel. Und ... Schnelle Navigation über Knöpfe. Ein Mausklick in die Zusammenfassungs-Spalte gleicht alle Fenster ab, so dass alle die gleiche Stelle anzeigen. Kopieren Sie eine Auswahl aus irgendeinem Fenster einfach in das Ergebnisfenster. Die Übersichtsspalte zeigt an, wo sich Änderungen und Konflikte befinden. Die Farben sind an Ihre Bedürfnisse anpassbar. Die Größe von Unterfenstern ist veränderbar. Es gibt die Option, anstelle von Tabulatoren Leerzeichen einzufügen. Bequemes Öffnen von Dateien über einen Dialog oder über die Kommandozeile. Suchen (Strg-F) und Weitersuchen (F3) nach bestimmten Zeichenketten in allen Textfenstern. Anzeigen der Zeilennummer zu jeder Zeile. Einfügen aus der Zwischenablage oder das Ziehen von Text in ein Vergleichsfenster. Netzwerktransparenz durch KIO. &kdiff3; kann als Anzeigemodul in KDevelop 3 genutzt werden um Unterschiede anzuzeigen. Zeilenumbruch für lange Zeilen Unterstützung für Unicode, UTF-8 und weitere Kodierungen. Unterstützung für Sprachen, die von rechts nach links geschrieben werden. ... Dokumentation zum Vergleichen und Zusammenführen von Dateien Kommandozeilen-Optionen Vergleichen von zwei Dateien: kdiff3 datei1 datei2 Zusammenführen von zwei Dateien: kdiff3 datei1 datei2 -m kdiff3 datei1 datei2 -o ausgabedatei Vergleichen von drei Dateien: kdiff3 datei1 datei2 datei3 Zusammenführen von drei Dateien: kdiff3 datei1 datei2 datei3 -m kdiff3 datei1 datei2 datei3 -o ausgabedatei Beachten Sie, dass datei1 als Basis für datei2 und datei3 verwendet wird. Spezialfall: Dateien mit gleichem Namen Wenn alle Dateien den gleichen Namen haben, aber in verschiedenen Ordnern liegen, dann können Sie sich die Tipparbeit erleichtern indem Sie nur den Dateinamen der ersten Datei vollständig ausschreiben. Beispiel: kdiff3 Ordner1/Dateiname Ordner2 Ordner3 Kommandozeile zum Vergleichen bzw. Zusammenführen von Ordnern: Das Vorgehen ist hier sehr ähnlich, doch nun geht es um Ordner. kdiff3 Ordner1 Ordner2 kdiff3 Ordner1 Ordner2 -o Zielordner kdiff3 Ordner1 Ordner2 Ordner3 kdiff3 Ordner1 Ordner2 Ordner3 -o Zielordner Zum Vergleichen bzw. Zusammenführen von Ordnern lesen Sie bitte hier weiter. Mehr Informationen zu den Kommandozeilen-Optionen erhalten Sie mit diesem Befehl: kdiff3 --help Options: -m, --merge Quellen zusammenführen. -b, --base file Explizite Basisdatei. Für Kompatibilität mit anderen Programmen. -o, --output datei Ausgabe-Datei. Impliziert -m. Z. B.: -o neueDatei.txt --out file Ausgabe-Datei. (Für Kompatibilität mit anderen Programmen.) --auto Keine graphische Oberfläche, wenn alle Konflikte automatisch aufgelöst werden können. (Benötigt -o datei) --qall Konflikte nicht automatisch auflösen. (Aus Kompatibilitätsgründen.) --L1 alias1 Sichtbarer Namensersatz für Quelldatei 1 (Basis). --L2 alias2 Sichtbarer Namensersatz für Quelldatei 2. --L3 alias3 Sichtbarer Namensersatz für Quelldatei 3. -L, --fname alias Alternativer sichtbarer Namensersatz. Für jede Quelldatei einmal angeben. -u Hat keine Wirkung. Für Kompatibilität mit anderen Programmen. Öffnen-Dialog Weil mehrere Dateien auszuwählen sind, hat &kdiff3; einen besonderen Dialog zum Öffnen von Dateien: Der Öffnen-Dialog ermöglicht das manuelle Eintippen von Dateinamen, die Auswahl über den Datei-Browser ("Datei...") oder das Auswählen einer zuletzt geöffneten Datei aus der Aufklappliste. Der Öffnen-Dialog merkt sich Ihre Auswahl und zeigt sie beim nächsten Mal wieder an. Sie müssen keine dritte Datei angeben; wenn Sie den Eintrag für "C" leer lassen, wird die Analyse der Unterschiede mit zwei Dateien durchgeführt. Über den Knopf "Ordner..." können Sie auch einen Ordner auswählen. Wenn Sie einen Ordner wählen, wird das Vergleichen bzw. Zusammenführen von Ordnern eingeleitet. Wenn für "A" eine Datei ausgewählt wird, für "B" und "C" jedoch ein Ordner, dann benutzt &kdiff3; den Dateinamen aus "A" in den beiden anderen Ordnern. Wenn "Zusammenführen" angekreuzt ist, wird das Eingabefeld für "Ziel" aktiv und lässt sich bearbeiten. Es ist allerdings nicht unbedingt erforderlich, sofort eine Ausgabedatei festzulegen. Sie können diesen Schritt auch später beim Speichern erledigen. Der "Einrichten"-Knopf öffnet einen Dialog mit Einstellungen. Hier können Sie Optionen festlegen bevor Sie mit dem Vergleichen/Zusammenführen beginnen. Einfügen und Ablegen von Text Manchmal möchte man nicht eine ganze Datei, sondern nur Teile eines Textes vergleichen. &kdiff3; ermöglicht Ihnen, Textteile aus der Zwischenablage in das aktive Vergleichsfenster zu ziehen. Der Vergleich beginnt dann sofort. Im Öffnen-Dialog müssen Sie keine Dateien auswählen, Sie können den Dialog einfach mit dem "Abbrechen"-Knopf schließen. Sie können auch "Ziehen und Ablegen" benutzen: Ziehen Sie einfach eine Datei aus einem Dateimanager oder ausgewählten Text aus einem Editor und lassen Sie ihn über einem Vergleichsfenster fallen. Welcher Gedanke steckt dahinter? Manchmal enthält eine Datei z. B. mehrere ähnliche Funktionen. Wenn Sie herausfinden möchten, wie ähnlich sich diese Funktionen sind, wäre das ein relativ großer Aufwand. Sie müssten erst zwei entsprechende Dateien erstellen, sie in &kdiff3; laden und diese dann vergleichen. Jetzt können Sie die relevanten Abschnitte einfach kopieren, einfügen und dann vergleichen. Anmerkung: Zur Zeit können Sie nichts aus &kdiff3; herausziehen. Nur das Fallenlassen von Text in ein Vergleichsfenster wird unterstützt. Warnung: Einige Editoren interpretieren das Ziehen und Ablegen von Text in ein anderes Programm als Ausschneiden und Einfügen (anstelle von Kopieren und Einfügen). In einem solchen Fall könnten Ihre Originaldaten verloren gehen. Interpretieren der angezeigten Informationen in den Quellfenstern Im oberen Teil jedes Textfensters befindet sich die Info-Zeile. Die Info-Zeile der Quellfenster enthält die Zeichen "A", "B" oder "C", den Dateinamen und die Zeilennummer der ersten sichtbaren Zeile im Fenster. (Beachten Sie, dass Fenster "C" optional ist.) Jede Info-Zeile hat eine unterschiedliche Farbe. (Wenn der Pfad zu einer Datei zu lang ist, lassen Sie die Maus eine Weile über der Zeile ruhen. Dann wird ein kleines Hilfsfenster den vollständigen Namen anzeigen.) Den drei Quellfenstern sind die Buchstaben "A", "B" und "C" zugeordnet. "A" hat die Farbe Blau, "B" die Farbe Grün und "C" ist magenta. (Diese Voreinstellungen können über das Einstellungen-Menü geändert werden.) Wenn ein Unterschied erkannt wird, sieht man an der Farbe, welche Datei sich unterscheidet. Wenn sich beide Dateien unterscheiden, ist die Voreingestellte Farbe dafür Rot. ("Farbe für Konflikte" in den Einstellungen). Das Farbschema ist besonders nützlich, wenn Sie drei Dateien vergleichen. Das ist im nächsten Abschnitt (Zusammenführen) gut zu sehen. Links neben dem Text befindet sich die Zusammenfassungs-Spalte. Wenn Unterschiede gefunden wurden, zeigt die Spalte die entsprechende Farbe an. Bei Unterschieden in "weißen" Zeichen wird die Farbe gerastert angezeigt. Bei einigen Programmiersprachen wo "weiße" Zeichen nicht so wichtig sind, ist es nützlich, nur die relevanten Änderungen zu sehen. (Bei C/C++ z. B. sind "weiße" Zeichen nur in Zeichenketten und Kommentaren, für den Preprozessor und in wenigen, seltenen Einzelfällen relevant.) Die vertikale Linie, die die Zusammenfassungs-Spalte vom Text trennt, wird an den Stellen unterbrochen, wo die jeweilige Quelldatei keine Zeilen hat. Wenn der Zeilenumbruch aktiviert ist, wird die Linie an umgebrochenen Zeilen gepunktet dargestellt. An der rechten Seite befindet sich eine Übersichts-Spalte, direkt links neben der vertikalen Bildlaufleiste. Sie zeigt eine komprimierte Zusammenfassung des gesamten Fenster "A". Alle Unterschiede und Konflikte sind hier auf einen Blick erkennbar. Wenn nur zwei Quellfenster genutzt werden, dann erscheinen alle Unterschiede rot, denn dann ist jeder Unterschied gleichzeitig auch ein Konflikt. Der aktuell sichtbare Bereich der Quelltexte wird durch ein schwarzes Rechteck umrandet. Bei sehr langen Quelldateien mit mehr Zeilen als die Übersichts-Spalte in Pixeln anzeigen kann, teilen sich mehrere Zeilen jeweils eine Zeile in der Übersichts-Spalte. Ein Konflikt hat gegenüber einfacher Unterschiede die höchste Priorität. Unterschiede wiederum haben eine höhere Priorität als "keine Änderungen". So gehen keine Konflikte oder Unterschiede verloren. Durch einen Klick in die Übersichts-Spalte wird der zugehörige Text angezeigt. Zusammenführen und das editierbare Ergebnisfenster Das Ergebnisfenster (unter den Vergleichsfenstern) hat auch eine Info-Zeile mit der Aufschrift "Ausgabe:", dem Dateinamen und "[Geändert]" wenn Sie das Ergebnis bearbeitet haben. Üblicherweise enthält es durch das automatische Zusammenführen bereits Text, aber oft enthält es auch Konflikte. !!! Bis alle Konflikte aufgelöst sind, ist das Speichern deaktiviert !!! (Benutzen Sie die Knöpfe "Springe zu nächstem gelösten/ungelösten Konflikt" um die noch verbleibenden Konflikte zu finden.) Wenn nur zwei Vergleichsfenstern benutzt werden, ist jeder Unterschied gleichzeitig auch ein Konflikt der manuell gelöst werden muss. Bei drei Vergleichsfenstern wird die erste Datei als Basis verwendet, und die zweite und dritte Datei enthalten die Änderungen. Wenn eine Zeile nur in Datei B oder C geändert wurde, aber nicht in beiden, dann wird automatisch die richtige Änderung ausgewählt. Wenn B und C allerdings Änderungen in der gleichen Zeile enthalten, erkennt &kdiff3; einen manuell zu lösenden Konflikt. Wenn B und C identisch sind, sich aber von A unterscheiden, dann wird C als Quelle ausgewählt. Das Ergebnisfenster hat auch eine Zusammenfassungs-Spalte an der linken Seite. Sie zeigt entweder den Buchstaben des Vergleichsfensters an von dem eine Zeile stammt, oder sie ist leer, wenn alle drei Quellen an der Stelle identisch sind. Konflikte werden mit einem roten Fragezeichen "?" und dem Text <Zusammenführungskonflikt> dargestellt. Weil das zeilenweise Auflösen von Konflikten sehr lange dauern würde, werden Zeilen mit gleichem Unterschied und Charakteristika gruppiert. Konflikte mit "weißen" Zeichen und Konflikte mit "nicht-weißen" Zeichen werden getrennt dargestellt, um das Zusammenführen von Dateien mit vielen Einrückungsänderungen zu vereinfachen. Durch einen Klick mit der linken Maustaste in die Zusammenfassungs-Spalte in einem der Fenster wird die zu der Zeile gehörende Gruppe in allen Fenstern markiert und die erste Zeile der Gruppe wird angezeigt. (Dadurch wird auch ein Sprung der Position in den Fenstern verursacht, wo der Anfang der Gruppe sonst nicht sichtbar wäre.) Diese Gruppe wird dann die "aktuelle Gruppe". Sie wird mit der Farbe "Hintergrundfarbe für aktuellen Bereich" hervorgehoben und jeweils zur Linken erscheint ein schwarzer Balken. Beachten Sie die Knöpfe zur Auswahl der Quelle mit der Beschriftung "A", "B" und "C" unterhalb der Menüleiste. Wenn Sie auf einen der Knöpfe klicken, werden die Zeilen aus dem entsprechenden Fenster an das Ende der ausgewählten Gruppe im Ergebnisfenster angehängt (wenn sie nicht bereits vorhanden sind). Falls die Zeilen bereits vorhanden sind, werden sie beim Klicken auf den Knopf entsprechend wieder entfernt. Hinweis: Sie können auch jede Zeile manuell bearbeiten. Die Zusammenfassungs-Spalte zeigt dann ein "m" in jeder Zeile, die Sie von Hand bearbeitet haben. Manchmal bleibt durch das automatische Zusammenführen oder durch manuelles Bearbeiten keine weitere Zeile mehr in der Gruppe übrig; dann wird in diesen Zeilen der Text <Keine Zeile in der Quelle> angezeigt. Das ist nur ein Platzhalter für den Fall, dass Sie Ihre Meinung ändern und vielleicht doch wieder eine andere Quelle wählen. Dieser Text erscheint weder in der endgültigen gespeicherten Datei, noch in einer Markierung die Sie vielleicht kopieren und woanders einfügen. Der Text <Zusammenführungskonflikt> erscheint allerdings in der Zwischenablage, wenn Sie solchen Text aus dem Ergebnisfenster kopieren. Gehen Sie vorsichtig mit dieser Funktion um. Das normale Zusammenführen startet mit dem automatischen Lösen einfacher Konflikte. Das "Zusammenführen"-Menü enthält einige häufig verwendete Funktionen. Wenn Sie bei den meisten Konflikten die gleiche Quelle auswählen müssen, können Sie z. B. überall "A", "B" oder "C" auswählen. Die gleiche Möglichkeit gibt es auch für die noch verbleibenden ungelösten Konflikte oder sogar für die noch verbleibenden ungelösten Konflikte in "weißen" Zeichen. Wenn Sie solche Entscheidungen nicht zusammengefasst für eine Gruppe, sondern sogar für jeden einzelnen Unterschied im Detail treffen möchten, dann wählen Sie "Alle Unterschiede zu Konflikten machen". Sie können wieder zur automatischen Auswahl von &kdiff3; zurück, indem Sie "Automatisch einfache Konflikte lösen" wählen. &kdiff3; startet das Zusammenführen dann erneut. &kdiff3; fragt nach, bevor Ihre eventuell gemachten Änderungen verloren gehen. Hinweis: Wenn beim Auswählen der Quellen die Optionen "Zahlen ignorieren" oder "Ignoriere C/C++ Kommentare" aktiviert sind, werden Änderungen in Zahlen oder Kommentaren auch wie "weiße" Zeichen behandelt. Navigieren und Bearbeiten Navigiert wird hauptsächlich mit den Bildlaufleisten und der Maus, aber Sie können dazu auch die Tastatur benutzen. Wenn Sie in eines der Fenster klicken, können Sie die Pfeiltasten links, rechts, hoch, runter, Seite auf, Seite ab, Anfang, Ende, Strg-Anfang und Strg-Ende benutzen, siw wie Sie es auch von anderen Programmen gewohnt sind. Die Übersichts-Spalte neben der vertikalen Bildlaufleiste kann durch hineinklicken auch zum Navigieren benutzt werden. Ausserdem können Sie das Rädchen Ihrer Maus zum hoch- und runterblättern benutzen. Im Augabefenster können Sie auch die anderen Tasten zum Bearbeiten verwenden. Mit der "Einfügen"-Taste können Sie zwischen Einfüge- und Überschreibmodus wechseln. (Voreingestellt ist der Einfügemodus.) Ein Klick mit der linken Maustaste in eine der Zusammenfassungs-Spalten synchronisiert die Ansicht aller Fenster auf den Anfang der jeweiligen Gruppe (wie bereits im Abschnitt "Zusammenführen und das editierbare Ausgabefenster" erklärt wurde). Die Werkzeugleiste enthält sieben Knöpfe zur Navigation mit denen Sie zum aktuellen/ersten/letzten Unterschied, zum nächsten/vorigen Unterschied (Strg-unten/Strg-oben), zum nächsten/vorigen Konflikt (Strg-Bild Aufwärts/Strg-Bild Abwärts) oder zum nächsten/vorigen ungelösten Konflikt springen können. Beachten Sie, dass &kdiff3; alle nicht automatisch gelösten Konflikte auch nach dem manuellen lösen weiterhin als Konflikt betrachtet. Daher muss zwischen gelösten und ungelösten Konflikten unterschieden werden. Es gibt auch einen Knopf "Automatisch zum nächsten ungelösten Konflikt weiterspringen". Wenn Sie dies aktivieren, wird &kdiff3; nach der ersten Auswahl der Quelle automatisch zum nächsten ungelösten Konflikt weiterspringen und ihn lösen. Das ist hilfreich, wenn Sie immer nur eine Quelle wählen möchten. Wenn Sie beide Quellen brauchen, oder das Ergebnis nach der Auswahl noch bearbeiten möchten, dann sollten Sie diese Funktion ausschalten. Bevor &kdiff3; zum nächsten ungelösten Konflikt weiterspringt, wird das Ergebnis der Auswahl für eine Kurze Zeit angezeigt. Die Verzögerungszeit kann im Abschnitt "Vergleich und Zusammenführung" in den Einstellungen eingestellt werden: Geben Sie für "Automatisch-Weiterspringen-Verzögerung" einen Wert zwischen 0 und 2000 Millisekunden an. Tipp: Wenn Sie sich viele Mausklicks sparen möchten, dann benutzen Sie eine kurze Verzögerungszeit und die Tastenkürzel Strg-1/2/3 uum Auswählen der Quelle A/B/C. Markieren, Kopieren und Einfügen In den Vergleichsfenstern wird kein Cursor angezeigt, daher müssen Markierungen mit der Maus gemacht werden. Drücken Sie am Beginn der Markierung die linke Maustaste und halten Sie sie gedrückt, ziehen Sie die Maus dann bis zum Ende der Markierung und lassen Sie hier die Maustaste wieder los. Ein einzelnes Wort kann auch einfach durch einen Doppelklick darauf markiert werden. Im Ergebnisfenster können Sie zum Markieren auch die Tastatur benutzen. Drücken Sie dazu die Umschalt-Taste und verändern Sie die Markierung mit den Pfeiltasten. Um die Markierung in die Zwischenablage zu kopieren, müssen Sie den "Kopieren"-Knopf (Strg-C oder Strg-Einfügen) drücken. Es gibt auch die Option "Auswahl automatisch kopieren". Wenn diese aktiviert ist, wird, was immer Sie markieren, automatisch in die Zwischenablage kopiert und das manuelle Kopieren entfällt. Seien Sie mit dieser Option aber vorsichtig, denn Sie könnten so den Inhalt der Zwischenablage versehentlich überschreiben. "Ausschneiden" (Strg-X oder Umschalt-Entfernen) kopiert in die Zwischenablage und löscht den markierten Text. "Einfügen" (Strg-V oder Umschalt-Einfügen) fügt den Text aus der Zwischenablage an der aktuellen Cursorposition ein bzw. ersetzt die aktuelle Markierung. Speichern Speichern ist erst möglich, wenn alle Konflikte gelöst sind. Falls die Datei bereits existiert und die Option "Sicherungskopie erstellen" aktiviert ist, dann erhält die bestehende Datei die Endung ".orig". Wenn bereits eine ".orig"-Datei existiert, wird diese überschrieben. Wenn Sie einen weiteren Vergleich starten bzw. beenden und noch nicht gespeichert haben, dann fragt &kdiff3;, ob Sie Speichern, Abbrechen oder ohne zu speichern fortfahren möchten. (KDiff3 fängt allerdings keine System-Signale ab. Wenn Sie &kdiff3; also mit dem Signal "kill" beenden, gehen Ihre ungespeicherten Daten verloren.) Zeilenenden werden entsprechend dem zugrundeliegenden Betriebssystem gespeichert. Unix-Varianten verwenden ein Zeilenvorschub-Zeichen "\n", und Win32-basierte Systeme benutzen Wagenrücklauf + Zeilenvorschub "\r\n". KDiff3 behält die Zeilenenden der Quelldateien nicht bei, darum sollten Sie &kdiff3; auch nicht mit Binärdateien verwenden. Suchen und Finden von Zeichenketten Sie können in jedem Textfenster von &kdiff3; nach einer Zeichenkette suchen. Die "Suchen..."-Funktion (Strg-F) im Bearbeiten-Menü öffnet einen Dialog, in dem Sie die zu suchende Zeichenkette eingeben können. Eine Suche beginnt immer am Anfang. Mit der Funktion "Weitersuchen" (F3) können Sie zum nächsten Vorkommen der gesuchten Zeichenkette springen. Wenn Sie eine Suche über mehrere Fenster aktiviert haben, wird erst das erste Fenster vom Beginn bis zum Ende durchsucht, danach das nächste Fenster, u. s. w. Optionen Die Optionen und die Liste der zuletzt verwendeten Dateien wird beim Beenden automatisch gespeichert und beim nächsten Start wiederhergestellt. (Menü Einstellungen->KDiff3 einrichten...) Schriftart Wählen Sie eine Schrift mit fester Breite. (Auf einigen Systemen stellt der Dialog auch Schriften mit variabler Breite zur Auswahl, Sie sollten diese aber nicht benutzen.) Kursivschrift bei Unterschieden:Wenn Sie diese Option aktivieren, werden Unterschiede in kursiver Schrift dargestellt. Wenn die gewählte Schrift diese Darstellung nicht unterstützt, passiert gar nichts. Farbe Vordergrundfarbe:Üblicherweise Schwarz. Hintergrundfarbe:Üblicherweise Weiß. Hintergrundfarbe bei Unterschieden:Üblicherweise helles Grau. Farbe für A:Üblicherweise dunkles Blau. Farbe für B:Üblicherweise dunkles Grün. Farbe für C:Üblicherweise dunkles Magenta. Farbe für Konflikte:Üblicherweise Rot. Hintergrundfarbe für aktuellen Bereich:Üblicherweise helles Gelb. Hintergrundfarbe für Unterschiede im aktuellen Bereich:Üblicherweise dunkles Gelb. An Systemen mit nur 16 oder 256 Farben könnten einige Farben nicht in ihrer reinen Form verfügbar sein sondern würden gerastert dargestellt werden. An diesen Systemen stellt der Knopf "Voreinstellungen" automatisch eine ungerasterte Farbe ein. Editor Tabulator fügt Leerzeichen ein:Wenn diese Option aktiviert ist, wird beim Drücken der Tabulator-Taste die entsprechende Anzahl an Leerzeichen eingefügt. Ansonsten wird ein Tabulator-Zeichen eingefügt. Tabulator Länge:Kann nach Ihren persönlichen Vorstellungen eingestellt werden. Voreingestellt ist 8. Automatisch einrücken:Wenn Sie Eingabe oder Return drücken, wird die Einrückung der vorangehenden Zeile automatisch auch für die nächste Zeile verwendet. Auswahl automatisch kopieren:Wenn diese Option aktiviert ist, wird jede Auswahl automatisch in die Zwischenablage kopiert. Das manuelle kopieren in die Zwischenablage entfällt dann. Zeilenende-Typ:Sie können auswählen, welchen Zeilenende-Typ Sie zum Speichern bevorzugen. Der voreingestellte Wert ist die allgemein übliche Auswahl auf dem verwendeten Betriebssystem. Verwendung der lokalen Codetabelle:Zum Anzeigen ausländischer Zeichen. Ändern Sie diese Option, wenn ausländische Zeichen nicht korrekt angezeigt werden. Vergleich und Zusammenführung Beim Vergleichen von Dateien versucht &kdiff3; zuerst, alle vollständig identischen Zeilen in den Quelldateien zu finden. Nur während diesem ersten Schritt können "weiße" Zeichen ignoriert werden. Der zweite Schritt vergleicht jede Zeile. In diesem Schritt werden "weiße" Zeichen nicht ignoriert. Auch beim Zusammenführen werden "weiße" Zeichen nicht ignoriert. Wagenrücklaufzeichen anzeigen:Manche Editoren (auf manchen Systemen) speichern ein Wagenrücklaufzeichen '\r' und einen Zeilenvorschub '\n' am Ende einer Zeile, andere wiederum speichern nur einen Zeilenvorschub '\n'. Üblicherweise ignoriert &kdiff3; das Wagenrücklaufzeichen, aber dann könnten Dateien mit unterschiedlichen Größen im Seite-an-Seite-Vergleich identisch aussehen, obwohl sie unterschiedlich sind. Wenn diese Option aktiviert ist, werden Wagenrücklaufzeichen sichtbar gemacht, jedoch wie ein "weißes" Zeichen behandelt. Während dem Zusammenführen muss diese Option deaktiviert sein. In der Voreinstellung ist dies deaktiviert. Zahlen ignorieren:In der Voreinstellung ist diese Option deaktiviert. Im ersten Teil der Analyse werden Zahlen und zugehörige Zeichen ('0'-'9', '.', '-') ignoriert. Im Ergebnis werden die Unterschiede dennoch angezeigt, aber sie werden wie "weiße" Zeichen behandelt. Ignoriere C/C++ Kommentare:In der Voreinstellung ist diese Option deaktiviert. Änderungen in Kommentaren werden wie Änderungen in "weißen" Zeichen behandelt. Groß-/Kleinschreibung ignorieren:In der Voreinstellung ist diese Option deaktiviert. Underschiede in einzelnen Zeichen (wie z. B. 'A' und 'a') werden wie Unterschiede in "weißen" Zeichen behandelt. Vorverarbeitungsbefehl:Siehe nächster Abschnitt. Vorverarbeitungsbefehl nur für Zeilenabgleich:Siehe nächster Abschnitt. Aufwändig suchen (langsamer):Intensiv nach noch kleineren Unterschieden suchen. Die Option ist in der Voreinstellung aktiviert. Sie ist effektiv bei komplizierten und großen Dateien, aber langsam bei sehr großen Dateien. Automatisch-Weiterspringen-Verzögerung (ms):Im Automatisch-Weiterspringen-Modus bestimmt diese Einstellung, wie lange das Ergebnis der Auswahl angezeigt wird, bevor zum nächsten ungelösten Konflikt weitergesprungen wird. "Weiße" Zeichen Autoauswahl bei 2/3 Dateien:Löst automatische alle Konflikte in "weißen" Zeichen indem die gewählte Datei als Quelle benutzt wird. (Voreingestellt ist manuelle Auswahl.) Das ist nützlich, wenn "weiße" Zeichen in vielen Dateien weniger wichtig sind. Wenn Sie dies nur von Zeit zu Zeit benötigen, dann nutzen Sie besser die Funktionen "Wähle A/B/C für alle ungelösten "weißen" Konflikte" aus dem Zusammenführen-Menü. Beachten Sie, dass die Automatische Auswahl auch Konflikte in Zahlen oder Kommentaren betrifft, wenn die Optionen "Zahlen ignorieren" oder "Ignoriere C/C++-Kommentare" aktiviert sind. Verzeichnis-Zusammenführung Diese Optionen werden im Kapitel zum Scannen von Ordnern und Durchführen einer Zusammenführung behandelt. Schauen Sie für Details unter Dokumentation zum Verzeichnis-Vergleich und Zusammenführung nach. Es gibt hier dennoch eine Option die auch beim Speichern von einzelnen Dateien relevant ist: Sicherungskopie erstellen (.orig):Wenn eine Datei gespeichert wird und bereits eine ältere Version existiert, dann wird der Originalversion das Suffix ".orig" angehängt. Wenn bereits eine solche Backupdatei mit dem Suffix ".orig" existiert, wird diese ohne weitere Sicherung gelöscht. Regional- und Spracheinstellungen Sprache:Passt die Sprache der Benutzeroberfläche an. Das Ändern dieser Option betrifft nicht das aktuell laufende Programm. Sie müssen &kdiff3; beenden und neu starten, damit die Änderung aktiv wird. (Diese Option ist in der KDE-Version von &kdiff3; nicht verfügbar, weil die Sprache dort global über das Kontrollzentrum eingestellt wird.) Die gleiche Kodierung für alles verwenden:Die folgenden Kodierungseinstellungen können für jeden Eintrag separat eingestellt werden. Wenn man diese Option aktiviert, wird für alle Einträge die obere Einstellung verwendet. Lokale kodierung:Über den Auswahlfeldern für die Kodierung erscheint ein kurzer Hinweis, was die lokale Kodierung ist. (Dies kann hier nicht geändert werden und hat für Sie rein informellen Charakter.) Datei-Kodierung für A/B/C:Passen Sie die Datei-Kodierung für Quelldateien an. Dies beeinflusst, wie Sonderzeichen behandelt und interpretiertwerden. Da die Kodierung für jede Datei einzeln einstellbar ist, können selbst Dateien mit unterschiedlicher Kodierung verglichen und zusammengeführt werden. Datei-Kodierung für die Zusammenführen-Ausgaben und zum Speichern:Wenn Sie eine Datei bearbeitet haben, können Sie hier festlegen, welche Kodierung zum Speichern verwendet werden soll. Datei-Kodierung für Preprozessor-Dateien:Wenn Sie Vorverarbeitungsbefehle definieren, könnten sie eventuell nicht mit Ihrem Codec funktionieren. (Z. B. könnten Ihre Dateien 16-Bit Unicode sein, aber der Vorverarbeitungsbefehl kann nur mit 8-Bit ASCII umgehen.) Mit dieser Option kann man die Kodierung der Ausgabe von Vorverarbeitungsbefehelen festlegen. Rechts-nach-Links-Sprache:Einige Sprachen werden von Rechts nach Links geschrieben. Wenn diese Option aktiviert ist, zeigt &kdiff3; den Text in Vergleichs- und Zusammenführen-Fenstern von Rechts nach Links an. Wenn Sie &kdiff3; mit der Option "--reverse" starten, wird das gesamte Layout der Programmoberfläche von Rechts nach Links angezeigt. (Dies ist eine Funktion von Qt.) Diese Dokumentation wurde unter der Annahme geschrieben, dass "Rechts-nach-Links Sprache" und umgedrehtes Layout abgeschaltet sind. Wenn Sie diese Optionen verwenden, müssen Sie also Referenzen auf "Rechts" und "Links" entsprechend umkehren. Verschiedenes (Diese Optionen und Aktionen sind in den Menüs oder den Werkzeugleisten zu finden.) Zeige Zeilennummern:Sie können wählen, ob in den Quelldateien die Zeilennummern angezeigt werden sollen. Zeige Leerzeichen und Tabulator-Zeichen in Unterschieden:Manchmal sind sichtbare Leerzeichen und Tabulatoren störend. Sie können die Anzeige dieser Zeichen abschalten. Zeige "weiße" Zeichen:Schalten Sie dies ab, um Hervorhebungen von Änderungen in "weißen" Zeichen in den Text- oder Übersichtsspalten zu unterdrücken. (Hinweis: Dies gilt auch für Änderungen in Zahlen oder Kommentaren, wenn die Optionen "Zahlen ignorieren" oder "Ignoriere C/C++-Kommentare" aktiviert sind.) Übersichts-Optionen:Dieses Auswahl ist nur verfügbar, wenn Sie drei Dateien vergleichen. Im normalen Modus werden alle Unterschiede in einer farblich kodierten Übersichts-Spalte angezeigt. Aber manchmal möchten Sie vielleicht nur die Unterschiede zwischen zwei von drei Dateien sehen. Nach Auswahl von "A <-> B", "A <-> C" oder "B <-> C" wird neben der normalen noch eine zweite Übersichts-Spalte mit den benötigten Informationen angezeigt. Zeilenumbruch in Diff-Fenstern:Aktiviert den Zeilenumbruch in Diff-Fenstern, wenn die Länge einer Zeile die Breite des Fensters überschreitet. Zeige Fenster A/B/C:Manchmal möchte man den verfügbaren Platz auf dem Bildschirm lieber für lange Zeilen benutzen. Verstecken Sie einfach die weniger wichtigen Fenster. (Diese Option befindet sich im Fenster-Menü.) Ausrichtung der Fensterteilung wechseln:Ordnet die Vergleichfenster nebeneinander oder übereinander an. Dies kann auch zum Anzeigen von langen Zeilen nützlich sein. (Diese Option befindet sich im Fenster-Menü.) Aktuelle Datei zusammenführen:Manchmal betrachten Sie die Unterschiede und entscheiden sich dann unvermittelt, die Dateien zusammenzuführen. "Aktuelle Datei zusammenführen" im Zusammenführen-Menü funktioniert auch dann, wenn Sie nur zwei Dateien vergleichen. Ein einfacher Klick startet die Zusammenführung und benutzt den Dateinamen der letzten Quelldatei als voreingestellten Namen für die Ausgabedatei. (Wenn diese Funktion benutzt wird, um das Zusammenführen erneut zu starten, dann wird der Name der zuletzt benutzten Ausgabedatei beibehalten.) Kurzbefehle festlegen Zur Zeit unterstützt nur die KDE-Version benutzerdefinierbare Kurzbefehle (Menü Einstellungen->Kurzbefehle festlegen...) Vorverarbeitungsbefehle: KDiff3 unterstützt zwei Vorverarbeitungsbefehle. Vorverarbeitungsbefehl:Beim Lesen einer Datei wird sie zuerst diesem externen Kommando übergeben. In &kdiff3; wird dann die Ausgabe des Kommandos sichtbar, und nicht die Datei selbst. Sie können Ihren eigenen Präprozessor schreiben, der genau Ihren Ansprüchen entspricht. Sie können diese Funktion z. B. zum herausschneiden störender Teile oder zum korrigieren der Einrückung verwenden. Vorverarbeitungsbefehl nur für Zeilenabgleich:Beim Lesen einer Datei wird sie zuerst diesem externen Kommando übergeben. Wenn auch ein normaler Vorverarbeitungsbefehl angegeben wurde (siehe oben), dann ist die Ausgabe des Befehls die Eingabe dieses Vorverarbeitungsbefehls. Die Ausgabe des Kommandos wird nur beim Zeilenabgleich verwendet. Sie können Ihren eigenen Präprozessor schreiben, der genau Ihren Ansprüchen entspricht. Jede Eingabe-Zeile muss eine zugehörige Ausgabe-Zeile haben. Der Gedanke dahinter ist, dem Anwender mehr Flexibilität beim Einrichten der Diff-Ergebnisse zu ermöglichen. Doch dafür wird ein externes Programm benötigt, und die meisten Anwender möchten das nicht selbst programmieren. Die Gute Nachricht ist allerdings, dass in dem meisten Fällen sed oder perl vollkommen ausreichen. Beispiel: Ein einfacher Testfall. Wie nehmen eine Datei a.txt (6 Zeilen): aa ba ca da ea fa Und eine Datei b.txt (3 Zeilen): cg dg eg Ohne Preprozessor würden die folgenden Zeilen nebeneinander stehen: aa - cg ba - dg ca - eg da ea fa Dies ist allerdings nicht das gewünschte Ergebnis, weil der erste Buchstabe die interessante Information darstellt. Um den Suchalgorythmus beim Abgleich zu unterstützen, ignorieren wir den zweiten Buchstaben. Dazu kann folgender Zeilen-Preprozessor verwendet werden, der "g" durch "a" ersetzt: sed 's/g/a/' Mit diesem Kommando würde das Ergebnis so aussehen: aa ba ca - cg da - dg ea - eg fa Programmintern "sieht" der Vergleichsalgorythmus die Dateien erst nach dem Durchlauf des Zeilen-Preprozessors, auf dem Bildschirm jedoch erscheinen die Dateien unverändert. (Der normale Preprozessor würde auch die Daten auf dem Bildschirm ändern.) <command >sed</command >-Grundlagen Dieser Abschnitt führt Sie nur in einige sehr grundlegende Funktionen von sed ein. Weiterführende Informationen finden Sie unter info:/sed oder http://www.gnu.org/software/sed/manual/html_mono/sed.html. Eine vorkompilierte Version für Windows finden Sie unter http://unxutils.sourceforge.net. Beachten Sie, dass die folgenden Beispiele voraussetzen, dass das Kommando sed sich in einem Ordner in der PATH-Variable befindet. Falls das nicht der Fall sein sollte, müssen Sie den vollständigen Pfad zu sed angeben. Außerdem nutzen die Beispiele einfache Hochkommas ('), die allerdings unter Windows nicht funktionieren. Unter Windows müssen Sie doppelte Hochkommas (") verwenden. In diesem Kontext wird nur das sed-Substitute-Kommando benutzt: sed 's/REGEXP/ERSATZ/SCHALTER' Bevor Sie in KDiff3 ein neues Kommando benutzen, sollten Sie es zuerst in der Konsole testen. Hier kann der echo-Befehl sehr hilfreich sein. Beispiel: echo abrakadabra | sed 's/a/o/' -> obrakadabra Dieses Beispiel zeigt ein einfaches sed-Kommando, das das erste Vorkommen von "a" durch "o" ersetzt. Wenn Sie alle Vorkommen ersetzen möchten, müssen Sie den Schalter "g" benutzen: echo abrakadabra | sed 's/a/o/g' -> obrokodobro Das "|"-Symbol ist das Pipe-Kommando, es übergibt die Ausgabe des ersten Kommandos an die Eingabe des folgenden Kommando. Wenn Sie Ihr sed-Kommando mit einer längeren Datei testen möchten, dann können Sie unter Unix cat und unter Window type dazu benutzen. sed wird die Ersetzung in jeder Zeile der Datei durchführen. cat dateiname | sed optionen Beispielanwendungen von <command >sed</command > in KDiff3 Ignorieren weiterer Kommentartypen Zur Zeit unterstützt KDiff3 nur C/C++-Kommentare. Mit Hilfe des Vorverarbeitungsbefehl nur für Zeilenabgleich können Sie auf andere Kommentar-Arten unterstützen. Dafür wandeln Sie diese in C/C++-Kommentare um. Beispiel: Um Kommentare zu ignorieren, die mit "#" beginnen, würden Sie diese zu "//" umwandeln. Außerdem muss natürlich die Option "C/C++-Kommentare ignorieren" aktiviert sein damit dies etwas bewirkt. Ein passendes Kommando für den Vorverarbeitungsbefehl nur für Zeilenabgleich wäre zum Beispiel: sed 's/#/\/\//' Weil das Zeichen "/" für sed ein Sonderzeichen ist, muss jedem "/" ein "\" vorangestellt werden. Manchmal wird dies benötigt, um einem Sonderzeichen die besondere Bedeutung zu "entziehen". Außerdem sind die einfachen Anführungszeichen (') vor und hinter dem Ersetzungskommando wichtig, weil die Shell sonst versucht, einige der Zeichen wie '#', '$' oder '\' zu ersetzen bevor sie an sed weitergereicht werden. Unter Windows müssen Sie doppelte Anführungszeichen verwenden ("). Windows ersetzt Zeichen wie '%' grundsätzlich, hier müssen Sie eventuell ein wenig experimentieren. Diff ohne Beachtung der Groß-/ Kleinschreibung Verwenden Sie diesen Vorverarbeitungsbefehl für Zeilenabgleich um die Eingabe in Großbuchstaben umzuwandeln: sed 's/\(.*\)/\U\1/' Das ".*" ist ein ergulärer Ausdruck der auf jede Zeichenkette passt und in diesem Zusammenhang daher alle Zeichen in einer Zeile erfasst. Die "\1" in der Ersetzungs-Zeichenkette bezieht sich auf den gefundenen Text im ersten Klammernpaar. Das "\U" wandelt den gefundenen Text in Großbuchstaben um. Ignorieren von Schlüsselwörtern aus Versionskontrolle-Systemen CVS und andere Versionskontrolle-Systeme verwenden einige Schlüsselwörter um automatisch erzeugte Zeichenketten einzufügen (info:/cvs/Keyword substitution). Alle folgen dem selben Muster "$SCHLÜSSELWORT erzeugter Text$". Nun wird also ein Vorverarbeitungsbefehl für Zeilenabgleich benötigt, der den automatisch erzeugten Text entfernt: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' Das "\|" trennt die möglichen Schlüsselwörter. Sie können die Liste nach Bedarf ändern. Das "\" vor dem "$" ist nötig, weil "$" ein Sonderzeichen ist und "Ende der Zeile" bedeuten würde. Während Sie mit sed experimentieren, beginnen Sie vielleicht, es zu verstehen und vielleicht mögen Sie diese regulären Ausdrücke sogar. Sie sind sehr nützlich weil es viele Programme gibt, die sehr ähnliche Dinge unterstützen. Ignorieren von Zahlen Das Ignorieren von Zahlen ist eigentlich eine bereits eingebaute Funktion in KDiff3. Aber sie ist gut als Beispiel für einen weiteren Vorverarbeitungsbefehl für Zeilenabgleich geeignet. sed 's/[0123456789.-]//g' Jedes Zeichen zwischen '[' und ']' ist ein Treffer, und jeder Treffer wird durch nichts ersetzt, also quasi gelöscht. Ignorieren von bestimmten Spalten Manchmal ist ein Text nach strengen Regeln formatiert und enthält Spalten, die Sie grundsätzlich ignorieren möchten, und andere Spalten, die Sie für die Analyse heranziehen möchten. Im folgenden Beispiel werden die ersten fünf Spalten (Zeichen) ignoriert, dann 10 Spalten beibehalten, dann wieder fünf Spalten ignoriert und der Rest der Zeile wird beibehalten. sed 's/.....\(..........\).....\(.*\)/\1\2/' Jeder Punkt '.' passt auf genau ein Zeichen. Die "\1" und "\2" in der Ersetzungs-Zeichenkette beziehen sich auf den gefundenen Text im ersten und zweiten Klammernpaar und markieren so den beizubehaltenden Text. Mehrere Ersetzungen kombinieren Manchmal möchten Sie vielleicht mehrere Ersetzungen auf einmal durchführen. Dann können Sie das Semikolon ';' benutzen, um die Ersetzungen voneinander zu trennen. Beispiel: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO <command >perl</command > statt <command >sed</command > benutzen Statt sed können Sie auch etwas anderes wie z. B. perl verwenden. perl -p -e 's/REGEXP/ERSETZUNG/SCHALTER' Allerdings sind bei perl einige Details anders. Wo sed "\(" und "\)" benötigt, braucht perl nur noch "(" und ")" ohne das vorangestellte '\'. Beispiel: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Reihenfolge der Ausführung von Preprozessoren Die Daten werden durch interne und externe Preprozessoren in dieser Reihenfolge durchgeschleust: Normaler Preprozessor, Vorverarbeitungsbefehl für Zeilenabgleich, Groß-/Kleinschreibung ignorieren (Umwandlung in Großbuchstaben), Erkennung von C/C++ Kommentaren, Zahlen ignorieren, "weiße" Zeichen ignorieren Die Daten nach dem normalen Preprozessor werden für die Anzeige und zum Zusammenführen beibehalten. Die weiteren Operationen verändern nur die Daten, die der Zeilenabgleich-Algorythmus "sieht". Beachten Sie: In seltenen Fällen wenn Sie einen normalen Preprozessor verwenden, sieht der Zeilenabgleich-Preprozessor die Ausgabe des normalen Preprozessors als Eingabe. Warnung Die Preprozessor-Kommandos sind sehr nützlich, aber wie bei jeder Funktion, die Text verändert oder Unterschiede versteckt, können Sie versehentlich bestimmte Unterschiede nicht bemerken und im schlimmsten Fall wichtige Daten zerstören. Beim Zusammenführen werden Sie daher von KDiff3 gewarnt, falls ein Preprozessor-Kommando benutzt wurd. Sie werden gefragt, ob dieser deaktiviert werden soll oder nicht. Sie werden allerdings nicht gewarnt, wenn ein Vorverarbeitungsbefehl für den Zeilenabgleich benutzt wird. Das Zusammenführen ist nicht abgeschlossen bevor nicht alle Konflikte aufgelöst wurden. Falls Sie "Weiße" Zeichen anzeigen deaktiviert haben, dann sind die vom Zeilenabgleich-Preprozessor entfernten Unterschiede ebenfalls unsichtbar. Wenn der Knopf "Speichern" während dem Zusammenführen deaktiviert bleibt (durch nicht aufgelöste Konflikte), dann aktivieren Sie "weiße" Zeichen anzeigen. Falls diese weniger wichtigen Unterschiede nicht zusammengeführt werden sollen, können Sie auch "Wähle [A|B|C] für alle ungelöste Konflikte" im Menü Zusammenführen-Menü auswählen. Mit &kdiff3; Ordner Vergleichen und Zusammenführen Einführung Oftmals müssen Programmierer in einem Ordner viele Dateien bearbeiten. Aus diesem Grund können Sie mit &kdiff3; komplette Ordner rekursiv vergleichen und zusammenführen. Auch wenn das Vergleichen und Zusammenführen von ganzen Ordnern recht naheliegend und einleuchtend erscheint, gibt es einige Details, die Sie wissen sollten. Der wichtigste Punkt ist natürlich, dass sich jeder Durchlauf dieser Funktion gleich auf viele Dateien auswirkt. Wenn Sie keine Sicherungskopie der Originaldaten haben, könnte es schwer oder gar unmöglich werden, den Originalstand wiederherzustellen. Bevor Sie das Zusammenführen starten, sollten Sie also sicherstellen, dass Ihre Daten gesichert sind und das Sie alles rückgängig machen können. Ob Sie ein Archiv erstellen oder ein System zur Versionskontrolle benutzen, ist Ihre Entscheidung; selbst erfahrene Programmierer und Integratoren benötigen hin und wieder die alten Quelltexte. Bitte beachten Sie auch, dass selbst ich (der Autor von &kdiff3;) keine Garantie geben kann, dass das Programm fehlerlos ist. Entsprechend der GNU-GPL gibt es für dieses Programm KEINE GARANTIE. Also denken Sie daran:
Irren ist menschlich, aber um etwas wirklich durcheinander zu bringen braucht man schon einen Computer ;-)
All diese Dinge kann &kdiff3; für Sie erledigen: &kdiff3;... ... liest und vergleicht rekursiv zwei oder drei Ordner, ... behandelt symbolische Links besonders vorsichtig, ... lässt Sie Ihre Dateien per Mausklick durchsuchen, ... macht für jedes Objekt einen Vorschlag zum Zusammenführen; Sie können den Vorschlag vor dem Start anpassen, ... kann das Zusammenführen simulieren und zeigt die simulierten Änderungen an, ohne sie wirklich durchzuführen, ... führt letztendlich die Zusammenführung durch und lässt Sie (wenn nötig) eingreifen, ... führt ausgewählte Aktionen entweder mit allen (F7-Taste), oder nur mit den ausgewählten Objekten (F6-Taste) aus, ... setzt das Zusammenführen nach einem manuellen Eingriff fort (F7-Taste), ... erzeugt optional Sicherungskopien mit der Erweiterung".orig", ...
Ordnervergleich oder -zusammenführung starten Dies ist dem Vergleichen und Zusammenführen von einzelnen Dateien sehr ähnlich. Sie müssen nur Ordner auf der Kommandozeile oder im "Datei öffnen"-Dialog angeben. Vergleichen/Zusammenführen von zwei Ordnern: kdiff3 Ordner1 Ordner2 kdiff3 Ordner1 Ordner2 -o Zielordner Wenn kein Zielordner angegeben wurde, benutzt &kdiff3; Ordner2. Vergleichen/Zusammenführen von drei Ordnern: kdiff3 Ordner1 Ordner2 Ordner3 kdiff3 Ordner1 Ordner2 Ordner3 -o Zielordner Wenn drei Ordner zusammengeführt werden, dann wird Ordner1 als Basis benutzt. Wenn kein Zielordner angegeben wurde, verwendet &kdiff3; Ordner3 als Zielordner. Beachten Sie, dass nur der Vergleich von Ordnern automatisch startet, nicht das Zusammenführen. Um das Zusammenführen zu starten, müssen Sie den entsprechenden Menüeintrag auswählen oder die F7-Taste drücken. (Weitere Details folgen.) Sichtbare Informationen Während dem Einlesen der Ordner informiert Sie ein kleines Nachrichtenfenster über den aktuellen Fortschritt. Wenn Sie das Scannen der Ordner abbrechen, werden nur die Dateien aufgelistet, die bis dahin verglichen wurden. Wenn das Scannen der Ordner abgeschlossen ist, zeigt &kdiff3; ein Listenfenster mit den Ergebnissen auf der linken Seite, ... ... und den Details zu dem jeweils ausgewählten Objekt auf der rechten Seite: Die Spalte "Name" Jede Datei und jeder Ordner der während dem Scan gefunden wurde, wird hier in einem Baum dargestellt. Sie können ein Objekt mit einem einfachen Mausklick auswählen. Die Ordnerstruktur wird normalerweise zusammengeklappt dargestellt. Sie können einen Ordner aufklappen, indem Sie auf das "+"/"-" klicken, oder auf das Objekt doppelklicken oder indem Sie die Pfeiltasten für links/rechts benutzen. Das "Verzeichnis"-Menü enthält zwei Funktionen "Alle Unterverzeichnisse einklappen" und "Alle Unterverzeichnisse aufklappen" mit denen Sie alle Ordner auf- bzw. zuklappen können. Wenn Sie auf eine Datei doppelklicken, wird der Dateivergleich gestartet und es erscheint ein Vergleichsfenster. Das Symbol in der Spalte "Name" spiegelt den Dateityp im ersten Ordner ("A") wieder. Diese Typen sind möglich: Normale Datei Normaler Ordner (Ordner-Symbol) Link auf eine Datei (Datei-Symbol mit einem Link-Pfeil) Link auf einen Ordner (Ordner-Symbol mit einem Link-Pfeil) Wenn der Dateityp in den anderen Ordnern unterschiedlich ist, dann ist dies in den Spalten A/B/C und in dem Detailfenster zu dem ausgewählten Objekt sichtbar. In einem solchen Fall kann die Zusammenführ-Aktion nicht automatisch gewählt werden. Wenn das Zusammenführen gestartet wird, werden Sie über Probleme dieser Art nochmals informiert. Die Spalten A/B/C und das Farbschema Wie in dem obigen Bild zu sehen ist, werden in den Spalten A/B/C die Farben Rot, Grün, Gelb und Schwarz verwendet. Schwarz: Dieser Eintrag existiert nicht in diesem Ordner. Grün: Neuester Eintrag. Gelb: Älter als grün, neuer als rot. Rot: Ältester Eintrag. Bei identischen Einträgen ist die Farbe allerdings auch identisch, auch wenn das Alter der Einträge unterschiedlich ist. Ordner werden als identisch betrachtet, wenn ihr gesamter Inhalt identisch ist. Dann haben auch Ordner die gleiche Farbe. Bei Ordnern ist das Alter unerheblich für seine Farbe. Die Idee zu diesem Farbschema basiert auf dirdiff. Die Farben spiegeln die Farben eines Blattes wieder, welches erst grün ist, dann gelb wird und später, wenn es alt ist, rot wird. Die Aktions-Spalte Nach dem Vergleichen der Ordner schlägt &kdiff3; eine Zusammenführ-Aktion vor. Dieser Vorschlag wird in der Aktions-Spalte angezeigt. Sie können den Vorschlag ändern, indem Sie auf den entsprechenden Eintrag klicken. Daraufhin erscheint ein kleines Menü, in dem Sie eine Aktion auswählen können. (Die häufigsten Aktionen können Sie auch mit der Tastatur auswählen. Strg+1/2/3/4/Entf wählt entsprechend A/B/C/Zusammenführen/Löschen aus.) Die Aktion wird dann während dem Zusammenführen ausgeführt. Welche Aktionen möglich sind, hängt von dem Eintrag und dem aktuellen Zusammenführ-Modus ab. Mögliche Zusammenführ-Modi sind Drei-Ordner-Zusammenführen ("A" wird als die ältere Basis für die beiden anderen herangezogen). Zwei-Ordner-Zusammenführen. Zwei-Ordner-Synchronisieren-Modus (aktivieren Sie diesen Modus mit der Option "Verzeichnisse Synchronisieren"). Beim Zusammenführen von drei Ordnern sind diese Aktions-Vorschläge möglich: Wenn für ein Objekt... ... alle drei Ordner identisch sind: Kopieren von C ... A und C identisch sind, aber nicht B: Kopieren von B (oder falls B nicht existiert, löschen des Ziels, falls es existiert) ... A und B identisch sind, aber nicht C: Kopieren von C (oder falls C nicht existiert, löschen des Ziels, falls es existiert) ... B und C identisch sind, aber nicht A: Kopieren von A (oder falls A nicht existiert, löschen des Ziels, falls es existiert) ... nur A existiert: Löschen des Ziels (falls es existiert) ... nur B existiert: Kopieren von B ... nur C existiert: Kopieren von C ... A, B und C nicht identisch sind: Zusammenführen ... A, B und C nicht den gleichen Dateityp haben (z. B. wenn A ein Ordner und B eine Datei ist): "Fehler: Widersprüchliche Dateitypen". Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden. Beim Zusammenführen von zwei Ordnern sind diese Aktions-Vorschläge möglich: Wenn für ein Objekt... ... beide Ordner gleich sind: Kopieren von B ... A existiert, aber nicht B: Kopieren von A ... B existiert, aber nicht A: Kopieren von B ... A und B existieren aber nicht identisch sind: Zusammenführen ... A und B nicht den gleichen Dateityp haben (z. B. wenn A ein Ordner und B eine Datei ist): "Fehler: Widersprüchliche Dateitypen". Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden. Der Modus zum Synchronisieren ist aktiv, wenn nur zwei Ordner und kein expliziter Zielordner angegeben wurden und wenn die Option "Verzeichnisse synchronisieren" aktiv ist. Dann wählt &kdiff3; die nötige Aktion aus, damit nachher beide Ordner identisch sind. Wenn für einen Eintrag... ... beide Ordner identisch sind: Es wird nichts unternommen. ... A existiert, aber nicht B: Kopieren von A nach B ... B existiert, aber nicht A: Kopieren von B nach A ... A und B existieren, aber nicht identisch sind: Zusammenführen und das Ergebnis in beiden Ordnern speichern. (Der Anwender sieht als sichtbaren Dateinamen für die Ausgabedatei nur B; direkt nach dem Zusammenführen kopiert &kdiff3; B nach A.) ... A und B nicht den gleichen Dateityp haben (z. B. wenn A ein Ordner und B eine Datei ist): "Fehler: Widersprüchliche Dateitypen". Solange solche fehlerhaften Objekte existieren, kann das Zusammenführen nicht gestartet werden. Wenn zwei Ordner zusammengeführt werden und die Option "Neuere Datei statt Zusammenführung auswählen (unsicher)" aktiviert ist, dann untersucht &kdiff3; das Datum der Dateien und schlägt die neuere Datei zum Kopieren vor. Wenn die Dateien unterschiedlich sind, aber das gleiche Datum aufweisen, dann erscheint eine Fehlermeldung "Fehler: Dateien sind unterschiedlich, aber das Datum ist identisch.". Solange solche Fehler nicht beseitigt sind, kann das Zusammenführen der Ordner nicht gestartet werden. Die Status-Spalte Während dem Zusammenführen wird eine Datei nach der anderen abgearbeitet. Sie Status-Spalte zeigt "Fertig" an, wenn das Zusammenführen erfolgreich war, und entsprechend andere Meldungen, wenn etwas unerwartetes auftrat. Wenn das Zusammenführen abgeschlossen ist, sollten Sie eine letzte Überprüfung vornehmen und nachsehen, ob der Status überall in Ordnung ist. Die Statistik-Spalte Wenn im Einrichtungsdialog die Dateivergleichsmethode "Vollständige Analyse" gewählt ist, wird KDiff3 weitere Spalten anzeigen. Diese enthalten die Anzahl ungelöster, gelöster, nicht "weißer" und "weißer" Konflikte. (Die Spalte für gelöste Konflikte wird nur angezeigt, wenn drei Ordner verglichen oder zusammengeführt werden.) Eine Zusammenführung durchführen Sie können entweder den gerade ausgewählten Eintrag (Datei oder Odner) zusammenführen, oder alle Einträge auf einmal. Wenn Sie alle Zusammenführ-Aktionen ausgewählt haben (auch in allen Unterordnern), können Sie das Zusammenführen starten. Beachten Sie bitte: Wenn Sie keinen Zielordner angegeben haben, dann wird im Drei-Ordner-Zusammenführen-Modus "C" als Ziel benutzt, beim Zwei-Ordner-Zusammenführen wird "B" als Ziel gewählt und beim Synchronisieren wird "A" und/oder "B" als Ziel verwendet. Wenn Sie einen Zielordner ausgewählt haben, prüfen Sie bitte nachher, ob alle Einträge die im Zielordner sein sollten, auch in der Ordnerstruktur angezeigt werden. Es gibt einige Optionen durch die bestimmte Einträge übersprungen werden könnten. Überprüfen Sie diese Optionen um unliebsame Überraschungen zu vermeiden: "Rekursive Verzeichnisse": Wenn diese Option deaktiviert ist, werden keine Dateien in Unterordnern bearbeitet. "Datei Muster"/"Datei Anti-Muster": Ein-/ und Ausschließen auf das Muster passender Einträge "Finde versteckte Dateien und Verzeichnisse" "Nur Unterschiede anzeigen": Dateien die in allen Ordnern identisch sind erscheinen nicht in der Ordnerstruktur, und folglich auch nicht im Zielordner. (In der aktuellen Programmversion müssen Sie nach Änderungen an diesen Optionen den Ordner mit der Funktion "Aktualisieren" neu einlesen.) Wenn Sie soweit zufrieden sind ist der Rest einfach. Um alle Einträge zusammenzuführen: Wählen Sie "Verzeichniszusammenführung starten/fortsetzen" im "Verzeichnis"-Menü oder drücken Sie F7 (das Tastenkürzel). Um nur den aktuellen Eintrag zusammenzuführen: Wählen Sie "Aktion des aktuellen Elements ausführen" oder drücken Sie F6. Wenn durch widersprüchliche Dateitypen immer noch ungültige Zusammenführen-Aktionen existieren, erscheint eine Meldung die auf die fehlerhaften Elemente hinweist. Sie können für sie dann eine gültige Aktion auswählen. Wenn Sie alle Einträge zusammenführen, erscheint ein Dialogfenster mit den Optionen "Durchführen", "Simulieren" und "Abbrechen". Wählen Sie "Simulieren" wenn Sie erst sehen möchten was passieren würde, ohne das wirklich Änderungen vorgenommen werden. Sie erhalten dann eine ausführliche Liste aller Aktionen. Ansonsten klicken Sie auf "Durchführen" um das Zusammenführen wirklich zu starten. &kdiff3; führt dann bestimmte Aktionen mit allen Einträgen durch. Wenn ein manueller Eingriff nötig ist (zusammenführen einer einzelnen Datei), dann öffnet sich ein Zusammenführen-Fenster (beachten Sie das Bildschirmphoto). Wenn Sie mit einer Datei fertig sind, wählen Sie erneut "Verzeichniszusammenführung starten/fortsetzen" oder drücken Sie F7. Wenn Sie noch nicht gespeichert haben, erscheint ein entsprechender Dialog. Dann führt &kdiff3; seine Arbeit mit dem nächsten Eintrag fort. Wenn &kdiff3; auf einen Fehler stösst, erscheint eine Nachricht und ausführliche Status-Informationen. Am Schluss der Liste sehen Sie einige Fehlermeldungen, die Ihnen helfen sollen, die Ursache des Problems auszumachen. Wenn Sie das Zusammenführen fortfahren (F7-Taste), lässt &kdiff3; Ihnen die Wahl es erneut zu versuchen, oder den problematischen Eintrag zu überspringen. So haben Sie die Möglichkeit, eine andere Aktion für den Eintrag auszuwählen oder das Problem auf andere Weise zu lösen, bevor Sie mit dem Zusammenführen fortfahren. &kdiff3; informiert Sie mit einem Info-Fenster wenn das Zusammenführen abgeschlossen ist. Falls einige Einträge individuell zusammengeführt wurden, merkt sich &kdiff3; diese Einträge (in der aktuellen Sitzung) und führt sie beim späteren zusammenführen aller Einträge nicht nochmals zusammen. Selbst wenn hier das Zusammenführen übersprungen wurde oder nicht gespeichert wurde, werden diese Einträge als erledigt betrachtet. Nur wenn Sie die Zusammenführen-Aktion ändern, werden diese Einträge erneut zusammengeführt. Optionen zum Vergleichen und Zusammenführen von Ordnern Das Einstellungen-Menü von &kdiff3; (Menü "Einstellungen"->"KDiff3 einrichten...") hat nun einen Abschnitt namens "Verzeichnis-Zusammenführung" mit diesen Optionen: Rekursive Verzeichnisse:Stellen Sie ein, ob Ordner rekursiv durchsucht werden sollen. Datei Muster:Nur Dateien, die auf das angegebene Muster passen, werden im Elementbaum angezeigt. Es können mehrere Muster eingegeben werden. Trennen Sie die Muster mit einem Semikolon ";". Gültige Platzhalter: '*' und '?'. (z. B. "*.cpp;*.h"). Die Voreinstellung ist "*". Ordner müssen nicht diesem Muster entsprechen. Datei Anti-Muster:Dateien und Ordner die diesem Muster entsprechen, werden nicht im Elementbaum angezeigt. Es kann mehr als ein Muster eingegeben werden, benutzen Sie das Semikolon ";" als Trennzeichen . Gültige Platzhalter: '*' und '?'. Voreinstellung ist "*.orig;*.o". .cvsignore benutzen:Ignoriert Dateien, die auch von CVS ignoriert werden würden. Viele autmatisch erzeugte Dateien werden von CVS ignoriert. Der große Vorteil ist, dass dies Ordnerspezifisch mit einer ".cvsignore"-Datei eingestellt werden kann. (Schauen Sie unter info:/cvs/cvsignore.) Finde versteckte Dateien und Verzeichnisse:In einigen Dateisystemen haben Dateien ein "Versteckt"-Attribut. In anderen Dateisystemen markiert ein vorangestellter Punkt "." eine Datei als versteckt. Diese Option lässt Sie entscheiden, ob diese Dateien im Elementbaum angezeigt werden sollen oder nicht. Diese Option ist in der Voreinstellung eingeschaltet. Folge Datei-Verknüpfungen:Bei Links auf Dateien: Wenn die Option abgeschaltet ist, werden symbolische Verknüpfungen verglichen. Wenn die Option eingeschaltet ist, werden die Dateien verglichen, auf die die Links zeigen. Dies ist in der Voreinstellung deaktiviert. Folge Verzeichnis-Verknüpfungen:Bei Links auf Ordner: Wenn die Option abgeschaltet ist, werden die symbolischen Links verglichen. Wenn die Option eingeschaltet ist, werden die Links wie normale Ordner behandelt und rekursiv durchsucht. (Beachten Sie, dass &kdiff3; nicht auf mögliche Rekursionen prüft. Ein Link auf einen Ordner der einen Link auf sich selbst enthält würde zu einer Endlosschleife führen und &kdiff3; stürzt ab.) Diese Option ist in der Voreinstellung abgeschaltet. Nur Unterschiede anzeigen:Es werden nur Einträge angezeigt, die Unterschiede aufweisen. Das führt auch dazu, dass identische Dateien beim Zusammenführen nicht in den Zielordner kopiert werden. Falls der Zielordner diese Dateien nicht bereits enthält, fehlen sie nach dem Zusammenführen. (Das Verhalten wird in einer späteren Programmversion wahrscheinlich abgeändert.) Diese Option ist in der Voreinstellung abgeschaltet. Dateivergleichsmethode: Binärvergleich:Dies ist die voreingestellte Vergleichsmethode. Vollständige Analyse:Führt eine vollständige Analyse jeder Datei durch und zeigt die Statistik-Spalten an. (Die Anzahl gelöster, ungelöster, nicht-"weißer" und "weißer" Konflikte.) Die vollständige Analyse ist langsamer als eine einfache binäre Analyse, und wesentlich langsamer, wenn sie auf Dateien angewendet wird, die keinen Text enthalten. (Geben Sie ein entsprechendes Anti-Muster ein.) Vertraue dem Änderungsdatum (unsicher):Wenn Sie große Ordner über ein langsames Netzwerk vergleichen, geht es möglicherweise schneller, nur das Änderungsdatum und die Dateigröße zu vergleichen. Dieser Geschwindigkeitsvorteil kostet Sie allerdings ein gewisses Maß an Sicherheit. Bitte mit Vorsicht benutzen. Diese Option ist in der Voreinstellung abgschaltet. Vertraue der Größe (unsicher):Ähnlich wie "Vertraue dem Änderungsdatum". Es findet kein echter Vergleich statt. Die Dateien werden als identisch betrachtet, wenn sie gleich groß sind. Das kann z. B. nützlich sein, wenn beim Kopieren das Änderungsdatum verlorengegangen ist. Bitte mit Vorsicht benutzen. Diese Option ist in der Voreinstellung abgschaltet. Verzeichnisse synchronisieren:Aktiviert den "Synchronisieren"-Modus wenn zwei Ordner verglichen werden und kein Zielordner angegeben wurde. In diesem Modus werden die Vorschläge zum Zusammenführen so ausgewählt, dass nachher beide Ordner identisch sind. Auch die Ergebnisse vom Zusammenführen von Dateien werden in beiden Ordnern gespeichert. Diese Option ist in der Voreinstellung abgeschaltet. Neuere Datei statt Zusammenführung auswählen (unsicher):Falls es Unterschiede gibt, wird statt dem Zusammenführen das Kopieren der neueren Datei als Aktion vorgeschlagen. (Dies wird als unsicher betrachtet, denn es wird das Wissen vorausgesetzt, dass die andere Datei nicht auch verändert wurde. Sie sollten dies in jedem Fall prüfen.) Diese Option ist in der Voreinstellung abgeschaltet. Sicherungskopie erstellen (.orig):Wenn eine Datei oder ein Ordner durch eine andere ersetzt oder gelöscht wird, dann wird die Originalversion umbenannt und erhält die Erweiterung ".orig". Wenn eine alte Backup-Datei mit der ".orig"-Erweiterung bereits existiert, so wird diese ohne weiteres Backup gelöscht. Das betrifft auch das normale Zusammenführen einzelner Dateien, nicht nur das Zusammenführen ganzer Ordner. Diese Option ist in der Voreinstellung eingeschaltet. Weitere Funktionen Verzeichnis & Textfenster teilen sich Hauptfenster Normalerweise bleibt die Ordner-Zusammenführen-Ansicht währen dem Zusammenführen einzelner Dateien sichtbar; Sie können den Fensterteiler mit der Maus verschieben. Wenn Sie das nicht wollen, können Sie die Option "Verzeichnis & Textfenster teilen sich Hauptfenster" im "Fenster"-Menü abschalten und mittels "Wechsel zwischen Verzeichnis & Textfenster" zwischen den beiden Ansichten umschalten. Vergleichen und Zusammenführen einer einzelnen Datei Wahrscheinlich bevorzugen Sie, eine Datei einfach mittels Doppelklick zu vergleichen. Dennoch gibt es im "Verzeichnis"-Menü auch einen entsprechenden Menüeintrag. Sie können eine einzelne Datei auch direkt zusammenführen, ohne erst das Ordnerzusammenführen starten zu müssen. Dazu benutzen Sie die Funktion "Aktuelle Datei Zusammenführen" aus dem "Zusammenführen"-Menü. Sobald Sie das Ergebnis speichern, wird der Status auf "Erledigt" gesetzt und die Datei wird nicht nochmals zusammengeführt wenn Sie das Ordnerzusammenführen starten. Dieser Status geht allerdings verloren, wenn Sie das Verzeichnis erneut einlesen: "Verzeichnis"-Menü: "Neu einlesen"
Verschiedene Themen Netzwerktransparenz via KIO KIO-Slaves KDE unterstützt Netzwerktransparenz mit Hilfe von KIO-Slaves. KDiff3 benutzt dies zum Einlesen von Dateien und Ordnern. Auf diese Weise können Sie Dateien und Ordner zum Öffnen angeben, die sich auf lokalen oder entfernten Rechnern befinden. Beispiel: kdiff3 test.cpp ftp://ftp.weitweg.org/test.cpp kdiff3 tar:/home/hacker/archiv.tar.gz/ordner ./ordner Die erste Kommandozeile vergleicht eine lokale Datei mit einer auf einem FTP-Server. Die zweite Kommandozeile vergleicht einen Ordner innerhalb eines komprimierten Archivs mit einem lokalen Ordner. Weitere interessante KIO-Slaves sind: Dateien aus dem WWW (http:), Dateien von FTP (ftp:), Verschlüsselte Dateiübertragung (fish:, sftp:), Windows-Ressourcen (smb:), Lokale Dateien (file:), Desweiteren wäre möglich (wenn auch weniger nützlich): Man-Pages (man:), Info-Seiten (info:), Wie man eine URL schreibt Eine URL hat eine andere Syntax als lokale Dateien und Ordner. Ein paar Dinge sollten Sie beachten: Ein Pfad kann relativ sein und "." oder ".." enthalten. Das ist mit URLs nicht möglich, diese sind immer absolut. Sonderzeichen müssen maskiert werden. ("#"->"%23", Leerzeichen->"%20", u.s.w.). Zum Beispiel hat eine Datei mit dem Namen "/#foo#" die URL "file:/%23foo%23". Wenn eine URL nicht wie erwartet funktioniert, versuchen Sie erstmal, diese im Konqueror zu öffnen. Fähigkeiten von KIO-Slaves Netzwerktransparenz hat auch einen Nachteil: Nicht alle Ressourcen haben die gleichen Fähigkeiten. Manchmal aufgrund des Dateisystems auf dem Server, manchmal durch das verwendete Protokoll. Es folgt eine kurze Liste der Einschränkungen: Teilweise werden keine Links unterstützt. Oder es kann nicht unterschieden werden, ob ein Link auf eine Datei oder einen Ordner zeigt. Dann wird immer eine Datei als Link-Ziel angenommen. (ftp:, sftp:). Die Dateigröße kann nicht immer ermittelt werden. Eingeschränkte Unterstützung für Berechtigungen. Es gibt keine Möglichkeit, Berechtigungen oder Veränderungsdatum zu bearbeiten. Daher weichen die Berechtigungen oder das Veränderungsdatum vom Original ab. (Beachten Sie hierzu die Option "Vertraue der Größe".) (Dies ist nur bei lokalen Dateien möglich.) &kdiff3; als KPart benutzen &kdiff3; ist ein KPart. Zur Zeit ist die KParts::ReadOnlyPart-Schnittstelle eingebaut. Der hauptsächliche Verwendungszweck ist zur Zeit als Unterschiede-Betrachter in KDevelop. KDevelop startet zuerst immer den eingebauten Unterschiede-Betrachter. Um KDiff3 zu starten, drücken Sie die rechte Maustaste über dem Unterschiede-Betrachter und wählen dann "In KDiff3Part anzeigen" aus dem Kontextmenü. Normalerweise benötigt &kdiff3; zwei vollständige Eingabedateien. Wenn es allerdings als KPart angewendet wird, nimmt &kdiff3; an, dass die Eingabedatei eine Patch-Datei im unified-Format ist. Dann entnimmt &kdiff3; die Namen der Originaldateien aus der Patch-Datei. Mindestens eine der beiden Dateien muss existieren. Dann startet &kdiff3; das Programm patch um die fehlende Datei wiederherzustellen. Im Konqueror können Sie auf eine Patch-Datei klicken und aus dem Kontextmenü "Vorschau in"-"KDiff3Part" auswählen. Beachten Sie bitte, dass das nicht funktioniert wenn keine der Originaldateien existiert. Ausserdem ist dies unzuverlässig, wenn sich die Originaldateien seit Erzeugung der Patch-Datei verändert haben. Wenn &kdiff3; als Part ausgeführt wird, unterstützt es nur das Vergleichen von zwei Dateien, eine sehr kleine Werkzeugleiste und Menü. Das Zusammenführen oder das Vergleichen von Ordnern wird im KPart-Modus nicht unterstützt. Fragen und Antworten &reporting.bugs; &updating.documentation; Warum heisst das Programm "KDiff3"? Werkzeuge mit dem Namen "KDiff" und "KDiff2" (nun heist es "Kompare") gibt es bereits. Ausserdem weist der Name "KDiff3" bereits darauf hin, dass es Zusammenführen kann wie das Programm "diff3" aus der Diff-Tool-Sammlung. Warum wurde KDiff3 unter der GPL lizenziert? Ich verwende GPL-Programme schon sehr lange und habe viel gelernt indem ich in die Quellen anderer Programme geschaut habe. Dies ist mein "Dankeschön" an alle Programmierer die diesen Weg gegangen sind oder ihn mal so gehen werden. Einige Knöpfe und Funktionen fehlen. Was ist passiert? Sie haben das Programm aus den Quellen kompiliert und dem configure-Skript vermutlich nicht den richtigen Prefix zu KDE mitgeteilt. In der Voreinstellung installiert configure in /usr/local, aber dann kann KDE die Ressourcen für die Benutzerschnittstellen nicht finden (z. B. kdiff3ui.rc). In der README-Datei finden Sie nähere Informationen zu diesem Thema. Häufig werden ähnliche, aber nicht identische Zeilen nebeneinander angezeigt, und manchmal nicht. Warum? Wenn nur die Anzahl an "weißen" Zeichen unterschiedlich ist, werden diese Zeilen erstmal als "identisch" behandelt; wenn jedoch auch nur ein "nicht-weißes" Zeichen unterschiedlich ist, wird die Zeile als "nicht identisch" behandelt. If similar lines appear next to each other, this actually is coincidence but this fortunately is often the case. Warum müssen alle Konflikte gelöst sein, bevor das Ergebnis gespeichert werden kann? Der Editor merkt sich für jeden Unterschied in den Dateien wo er beginnt und wo er endet. Das ist nötig, um einen Konflikt einfach durch das Klicken in den Quelltext und Auswählen des Knopfes A/B/C lösen zu können. Diese wichtige Information geht allerdings verloren, wenn das Ergebnis einfach als Textdatei gespeichert wird und es ist zuviel Aufwand, extra ein eigenes Dateiformat zu entwerfen, das diese Informationen speichern könnte. Warum hat der Editor im Ergebnisfenster einer Zusammenführung keine "Rückgängig"-Funktion? Der Aufwand dafür war bisher zu groß. Sie können eine bestimmte Version immer durch das Auswählen einer Quelle A/B/C wiederherstellen. Um grössere Mengen an Text zu bearbeiten sollte ein anderer Editor verwendet werden. Nach dem entfernen von Text ist plötzlich "<No src line>" erschienen und der Text lässt sich nicht löschen. Was bedeutet das und wie kann das entfernt werden? Der Editor merkt sich für jede gleiche und unterschiedliche Sektion wo sie beginnt und wo sie aufhört. "<No src line>" bedeutet, dass in dieser Sektion nichts mehr existiert, nocht nicht mal mehr das Zeichen für den Zeilenvorschub. Soetwas kann beim automatischen Zusammenführen oder beim Editieren passieren und ist kein Problem, denn der Text erscheint nicht in der gespeicherten Datei. Wenn Sie den Originaltext wiederhaben möchten, klicken Sie in die Sektion und wählen die korrekte Quelle A/B/C aus. Warum unterstützt KDiff3 keine Syntax-Hervorhebung? KDiff3 benutzt bereits viele Farben zum hervorheben von Unterschieden. Noch mehr Hervorhebung wäre verwirrend und verfehlt den Zweck. Benutzen Sie dafür bitte einen anderen Editor. Wird Ihre Frage hier nicht beantwortet? Bitte senden Sie mir Ihre Frage zu. Ich bin dankbar für jeden Kommentar. Dank und Lizenz &kdiff3; - Ein Programm zum vergleichen und zusammenführen von Dateien und Ordnern Programm-Copyright 2002-2005 Joachim Eibl joachim.eibl at gmx.de Viele gute Ideen und Fehlerberichte kamen von Kollegen und vielen Leuten aus dem "Wild Wild Web". Vielen Dank! Dokumentations-Copyright © 2002-2005 Joachim Eibl joachim.eibl at gmx.de Deutsche Übersetzung: Thomas Reitelbach tr@erdfunkstelle.de &underFDL; &underGPL; Installation Wie Sie &kdiff3; bekommen können Sie können die neueste Version von KDiff3 von der Homepage http://kdiff3.sourceforge.net herunterladen. Kdiff3 gibt es auch für andere Plattformen. Besuchen Sie für Details bitte die Homepage. Voraussetzungen Um alle Funktionen von &kdiff3; nutzen zu können, benötigen Sie &kde; 3.1 oder neuer. Informationen, wie Sie KDiff3 auf anderen Plattformen ohne KDE benutzen können finden Sie auf der Homepage. Eine Liste der letzten Änderungen finden Sie unter http://kdiff3.sourceforge.net/ChangeLog oder in der Datei "ChangeLog" im Quell-Paket. Kompilieren und Installation Um &kdiff3; auf einem System mit &kde; zu kompilieren und installieren, benutzen Sie folgendes Kommando im Basisordner der &kdiff3;-Distribution: % ./configure --prefix=kde-dir % make % make install kde-dir gibt den Ordner in Ihrem System an, in dem KDE installiert ist. Wenn Sie unsicher sind, finden Sie weitere Details in der README-Datei. Da &kdiff3; autoconf und automake verwendet, sollten Sie keine Probleme beim Kompilieren haben. Sollten dennoch Schwierigkeiten auftreten, berichten Sie bitte auf den &kde;-Mailinglisten davon. &documentation.index;
kdiff3-0.9.97/doc/de/CMakeLists.txt0000644000175100001440000000013511626145652016224 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/de SUBDIR kdiff3) kdiff3-0.9.97/doc/nl/0000755000175100001440000000000011626145654013510 5ustar joachimuserskdiff3-0.9.97/doc/nl/index.docbook0000644000175100001440000026304411626145652016170 0ustar joachimusers KDiff3"> ]> Het handboek van &kdiff3; Joachim Eibl
joachim.eibl at gmx.de
&Sander.Koning; 2002-2005 Joachim Eibl &FDLNotice; 2005-01-30 0.9.87 &kdiff3; is een hulpmiddel om bestanden en mappen te vergelijken en samen te voegen dat twee of drie tekstbestanden of mappen vergelijkt en samenvoegt, de verschillen regel-voor-regel en teken-voor-teken(!) aangeeft, een automatische samenvoegfunctie biedt, een editor heeft voor het comfortabel oplossen van samenvoegconflicten, netwerktransparantie via KIO biedt, opties heeft voor het accentueren of verbergen van wijzigingen in witruimte of commentaar, Unicode, UTF-8 en andere bestandscoderingen ondersteunt. Dit document beschrijft KDiff3 versie 0.9.87. KDE kdeextragear kdiff3 verschil samenvoegen CVS drievoudig verschil vergelijken bestanden mappen versiebeheer drievoudig samenvoegen verschillen in regels synchroniseren kpart kio netwerktransparant editor witruimte commentaar
Inleiding Alweer een front-end voor diff? Er bestaan diverse grafische hulpmiddelen voor diff. Waarom KDiff3 gebruiken? Laat me uitleggen waarom ik het geschreven heb. KDiff3 begon omdat ik een moeilijke samenvoegoperatie moest doen. Samenvoegen is nodig als diverse mensen aan dezelfde bestanden in een project werken. Een samenvoeging kan enigszins geautomatiseerd worden, als het samenvoeghulpmiddel daartoe niet alleen de nieuwe, gewijzigde bestanden heeft ("takken") maar ook het originele bestand ("basis"). Het samenvoeghulpmiddel kiest automatisch een verandering die alleen in één tak is gedaan. Als diverse mensen dezelfde regels veranderen, detecteert het samenvoeghulpmiddel een conflict dat handmatig opgelost moet worden. De samenvoeging was moeilijk omdat één van de helpers veel dingen had gewijzigd en de insprong op veel plaatsen had verbeterd. Een andere helper had ook veel tekst in hetzelfde bestand veranderd, hetgeen in diverse samenvoegconflicten resulteerde. Het hulpmiddel dat ik toen gebruikte toonde alleen de gewijzigde regels, maar niet wat er in die regels was gewijzigd. En er was geen informatie over of alleen de insprong gewijzigd was. Het samenvoegen was een kleine ramp. Dus dat was het begin. De eerste versie kon verschillen binnen een regel en verschillen in witruimte tonen. Later werden veel andere mogelijkheden toegevoegd om het nut te vergroten. Als u bijvoorbeeld snel wat tekst wilt vergelijken, kunt u het naar het klembord kopiëren en in een van de vergelijkingsvensters plakken. Een optie die veel werk vereiste was het vergelijken en samenvoegen van mappen, dat het programma bijna in een bestandsverkenner veranderde. Ik hoop dat KDiff3 ook voor u werkt. Veel plezier! Joachim Eibl (2003) Schermafdrukken en mogelijkheden Deze schermafdruk toont het verschil tussen twee tekstbestanden (met een vroege versie van KDiff3): 3-voudig samenvoegen wordt volledig ondersteunt. Dit is nuttig als twee mensen code onafhankelijk wijzigen. Het originele bestand (de basis) wordt gebruikt om KDiff3 te helpen bij het automatisch selecteren van de goede wijzigingen. In de samenvoeg-editor onder de verschillenvensters kunt u conflicten oplossen, terwijl u de uitvoer ziet die dat oplevert. U kunt zelfs de uitvoer wijzigen. Deze schermafdruk toont het samenvoegen van drie invoerbestanden: KDiff3 helpt u ook bij het vergelijken en samenvoegen van complete mappen. Deze schermafdruk toont KDiff3 gedurende het samenvoegen van een map. Meer mogelijkheden Verschillen regel-voor-regel en teken-voor-teken tonen Door de mogelijkheden van een grafisch kleurenbeeldscherm te gebruiken toont KDiff3 u precies wat het verschil is. U zult dit prettig vinden als u veel code moet doornemen. Verschillen in witruimte in één oogopslag zien Spaties en tabs die verschillen worden getoond. Als regels alleen in de hoeveelheid witruimte verschillen kunt u dit in één oogopslag zien in de overzichtskolom aan de linkerkant. (Geen zorgen meer als mensen de insprong veranderen.) Drievoudig verschil Drie bestanden analyseren en zien waar ze verschillen. De vensters links, midden en rechts heten A, B en C en zijn respectievelijk blauw, groen en magenta gekleurd. Als één bestand hetzelfde is en één bestand verschilt op een regel geeft de kleur aan welk bestand verschilt. De rode kleur geeft aan dat beide andere bestanden verschillen. Comfortabel samenvoegen van twee of meer invoerbestanden U kunt KDiff3 gebruiken om twee of drie invoerbestanden samen te voegen en het samenvoegen zo veel mogelijk automatisch te laten verlopen. Het resultaat wordt getoond in een bewerkbaar venster waarin de meeste conflicten met een enkele muisklik opgelost kunnen worden: kies de knoppen A/B/C uit de knoppenbalk om de bron te kiezen die gebruikt moet worden. U kunt hier ook meer dan één bron kiezen. Aangezien dit uitvoervenster een editor is, kunnen ook conflicten die verdere correctie vereisen hier uitgevoerd worden zonder een extra hulpmiddel. En... Snelle navigatie via knoppen. Een muisklik in een samenvattingskolom synchroniseert alle vensters om dezelfde positie te laten zien. Selecteer en kopieer vanuit elk venster en plak het in het samengevoegde resultaatvenster. Een overzichtskolom die toont waar de wijzigingen en conflicten zijn. De kleuren zijn aan te passen aan uw specifieke voorkeuren. Aanpasbare tabgrootte. Een optie om spaties in plaats van tabs in te voegen. Bestanden comfortabel openen via een dialoogvenster of bestanden opgeven op de opdrachtregel. Zoeken naar tekenreeksen in alle tekstvensters. Zoek (Ctrl-F) en Volgende zoeken (F3). De regelnummers voor elke regel tonen. Het klembord plakken of tekst in een verschil-invoervenster slepen. Netwerktransparantie via KIO. Kan gebruikt worden als verschillentoner in KDevelop 3. Regelafbreking voor lange regels. Ondersteuning voor Unicode, UTF-8 en andere coderingen. Ondersteuning voor talen die rechts-naar-links schrijven. ... Documentatie voor bestandsvergelijking en -samenvoeging Opdrachtregel-opties 2 bestanden vergelijken: kdiff3 bestand1 bestand2 2 bestanden samenvoegen: kdiff3 bestand1 bestand2 -m kdiff3 bestand1 bestand2 -o uitvoerbestand 3 bestanden vergelijken: kdiff3 bestand1 bestand2 bestand3 3 bestanden samenvoegen: kdiff3 bestand1 bestand2 bestand3 -m kdiff3 bestand1 bestand2 bestand3 -o uitvoerbestand Merk op dat bestand1 als basisbestand voor bestand2 en bestand3 gebruikt zal worden. Speciaal geval: bestanden met dezelfde naam Als alle bestanden dezelfde naam hebben maar zich in verschillende mappen bevinden, kunt u typewerk besparen door de bestandsnaam alleen voor het eerste bestand op te geven. Bijvoorbeeld: kdiff3 map1/bestandsnaam map2 map3 Opdrachtregel voor het vergelijken of samenvoegen van mappen: Dit lijkt er erg op, maar gaat nu over mappen. kdiff3 map1 map2 kdiff3 map1 map2 -o doelmap kdiff3 map1 map2 map3 kdiff3 map1 map2 map3 -o doelmap Voor het vergelijken en samenvoegen van mappen kunt u hier verder lezen. Voor meer informatie over opdrachtregel-opties gebruikt u: kdiff3 --help Opties: -m, --merge De invoer samenvoegen. -b, --base bestand Expliciet basisbestand (voor compatibiliteit). -o, --output bestand Uitvoerbestand. Impliceert -m. Bijv: -o nieuw.txt --out bestand Uitvoerbestand. Voor compatibiliteit met bepaalde programma's.) --auto Geen GUI als alle conflicten automatisch te doen zijn. (Vereist -o) --qall Los conflicten niet automatisch op. (Voor compatibiliteit...) --L1 alias1 Zichtbare naamvervanging voor invoerbestand1 (basis). --L2 alias2 Zichtbare naamvervanging voor invoerbestand 2. --L3 alias3 Zichtbare naamvervanging voor invoerbestand 3. -L, --fname alias Alternatieve zichtbare naamvervanging. Eenmaal voor elke invoer opgeven.. -u Geen effect. Voor compatibiliteit met bepaalde programma's. Het venster "Openen" Aangezien veel bestanden geselecteerd moeten kunnen worden, heeft het programma een speciaal dialoogvenster hiervoor: In dit dialoogvenster kunt u de bestandsnamen met de hand wijzigen, een bestand via de bladeraar kiezen ("Bestand...") of recente bestanden via de afrolmenu's kiezen. Als u het dialoogvenster opnieuw opent, blijven de huidige bestandsnamen staan. Het derde invoerbestand is niet verplicht. Als het item bij "C" leeg blijft, wordt slechts een verschillenanalyse op twee bestanden uitgevoerd. U kunt ook een map kiezen met "Map...". Als voor A een map opgegeven is wordt een vergelijking/samenvoeging op mappen gestart. Als A een bestand opgeeft maar B, C of de uitvoer een map opgeeft, gebruikt KDiff3 de bestandsnaam van A in de opgegeven mappen. Als "Samenvoegen" geselecteerd is, kunt u de regel "Uitvoer" bewerken. Maar het is niet nodig om direct de uitvoerbestandsnaam op te geven. U kunt hiermee ook wachten tot bij het opslaan. De knop "Instellen..." opent het optievenster, waarmee u de opties kunt instellen voordat de analyse gestart wordt. Invoer plakken en slepen Soms wilt u tekstdelen die niet in een eigen bestand staan vergelijken. KDiff3 biedt u ook de mogelijkheid tekst vanaf het klembord in een vergelijkingsvenster te plakken. De vergelijkingsanalyse begint dan direct. In het venster "Openen" hoeft u dan geen bestanden op te geven, sluit dit gewoon met "Annuleren". U kunt ook slepen en neerzetten: Sleep een bestand uit een bestandsbeheerder of geselecteerde tekst uit een editor en zet deze neer in een verschillenvenster. Wat is het idee? Soms bevat een bestand twee gelijksoortige functies, maar bekijken hoe gelijk ze werkelijk zijn is een grote moeite als u eerst twee bestanden moet maken en deze dan moet laden. Nu kunt u eenvoudigweg de relevante secties kopiëren, plakken, en vergelijken. Merk op: Momenteel kunt u niets uit KDiff3 slepen. Alleen slepen naar de vergelijkingsinvoer wordt ondersteund. Waarschuwing: Sommige editors interpreteren slepen en neerzetten in een ander programma nog steeds als knippen (in plaats van kopiëren) en plakken. Uw originele gegevens kunnen daardoor verloren gaan. De informatie in de invoervensters interpreteren Bovenaan elk tekstvenster staat de "inforegel". De inforegels van de invoervensters bevatten een letter "A", "B" of "C", de bestandsnaam en het regelnummer van de eerste zichtbare regel in het venster. (Merk op dat venster "C" optioneel is.) Elke inforegel verschijnt in een aparte kleur. (Als de paden te lang zijn om te passen, kunt u de muis op de inforegel plaatsen voor een hulpballon die de complete naam toont.) De drie invoervensters krijgen de letters "A", "B" en "C". "A" heeft de kleur blauw, "B" is groen en "C" is magenta. (Dit zijn de standaardkleuren, u kunt ze wijzigen via het menu Instellingen.) Als er een verschil opgemerkt wordt, toont de kleur welk invoerbestand er verschilt. Als beide andere invoerbestanden verschillen is de kleur die dit aangeeft standaard rood ("Conflictkleur" in Instellingen). Dit kleurenschema is vooral handig in het geval van drie invoerbestanden, hetgeen u zult zien in de volgende sectie (Samenvoegen). Links van elke tekst staat een "samenvattingskolom". Als er verschillen op een regel opgetreden zijn geeft deze kolom de respectievelijke kleur aan. Voor een verschil alleen in witruimte is de samenvatting geblokt. Voor programmeertalen waar witruimte niet zo belangrijk is, is dit nuttig om te zien of er iets belangrijks veranderd is. (In C/C++ is witruimte alleen interessant binnen tekenreeksen, commentaar, voor de preprocessor, en sommige zeer uitzonderlijke situaties.) De verticale lijn die de overzichtskolom en de tekst scheidt wordt onderbroken als het invoerbestand daar geen regels heeft. Als regelafbreking ingeschakeld is, wordt deze lijn gestippeld voor afgebroken regels. Aan de rechterkant is een "overzichts"-kolom zichtbaar links van de verticale schuifbalk. Deze toont gecomprimeerd de samenvattingskolom van invoer "A". Alle verschillen en conflicten zijn in één oogopslag zichtbaar. Als er slechts twee invoervensters gebruikt worden, verschijnen alle verschillen in rood omdat elk verschil dan een conflict is. Een zwarte rechtoek omrandt het zichbare deel van de invoer. Voor zeer lange invoerbestanden, waarbij het aantal regels groter is dan de hoogte van de overzichtskolom in pixesl, delen diverse invoerregels één overzichtsregel. Een conflict heeft dan topprioriteit boven eenvoudige verschillen, die prioriteit hebben boven geen wijziging, zodat geen verschil of conflict verloren gaat. Door in deze overzichtskolom te klikken wordt de bijbehorende tekst getoond. Samenvoegen en het editorvenster voor samenvoegingsuitvoer Het editorvenster voor de samenvoegingsuitvoer (onder de verschil-invoervensters) heeft ook een inforegel bovenaan met "Uitvoer:", de bestandsnaam en "[gewijzigd]" als u iets bewerkt hebt. Meestal bevat dit wat tekst door de automatische samenvoegingsfunctie, maar vaak ook conflicten. !!! Opslaan is niet mogelijk todat alle conflicten opgelost zijn !!! (Gebruik de knoppen "Ga naar vorig/volgend onopgelost conflict" om de overgebleven conflicten te vinden.) Met maar twee invoerbestanden is elk verschil ook een conflict dat handmatig opgelost moet worden. Met drie invoerbestanden wordt het eerste bestand als basis gebruikt, en het tweede en derde bestand bevatten wijzigingen. Als op een bepaalde regel alleen invoer B of C gewijzigd is, maar niet beide, wordt de veranderde bron gekozen. Alleen als B en C op dezelfde regel veranderd zijn, detecteert het hulpmiddel een conflict dat handmatig opgelost moet worden. Als B en C hetzelfde zijn, maar niet hetzelfde als A, wordt C gekozen. Het editorvenster voor samenvoegingsuitvoer heeft ook links een samenvattingskolom. Deze toont de letter van de invoer waaruit een regel geselecteerd is of niets als alledrie de bronnen gelijk waren op die regel. Bij conflicten wordt een vraagteken "?" getoond en de regel toont dan "<Samenvoegconflict>", het geheel in rood. Omdat conflicten regel voor regel oplossen erg lang duurt, worden de regels gegroepeerd in groepen die dezelfde verschil- en conflictkenmerken hebben, Alleen-witruimte-conflicten worden gescheiden van niet-witruimte-conflicten om het samenvoegen van bestanden waarin de insprong gewijzigd is, gemakkelijker te maken. Als u met de linkermuisknop in een samenvattingskolom klikt, wordt de groep die bij die regel hoort geselelecteerd in alle vensters en wordt het begin van de groep getoond. (Dit kan een plaatsveranderind in de vensters veroorzaken als het begin van de groep niet zichtbaar is.) Deze groep wordt dan de "huidige groep", en wordt geaccentueerd met de achtergrond voor "Huidig bereik". Verder verschijnt een zwarte balk links van de tekst. Merk op dat de invoerselector de letters "A", "B" en "C" in de knoppenbalk bevat. Als u op een knop in de invoerselector klikt, worden de regels van die invoer toegevoegd aan het eind van de geselecteerde groep als de groep die bron nog niet bevatte. Anders worden de regels uit die invoer verwijderd. Daarnaast kunt u direct elke regel bewerken. De samenvattingskolom toont een "m" voor elke regel die gewijzigd is. Soms verschijnt de tekst "<Geen regel in de bron>" in een regel als die ofwel door automatisch samenvoegen ofwel door bewerken verwijderd is, en er geen andere regels in die groep overblijven. Dit is een plaatshouder voor de groep voor als u zich bedenkt en weer een bron aangeeft. De tekst verschijnt niet in het opgeslagen bestand of in gekopieerde of geplakte selecties. De tekst " Samenvoegconflict<" verschijnt in het klembord als u tekst met zo'n regel kopieert en plakt. Maar wees alsnog voorzichtig. < Het normale samenvoegen begint door het automatisch oplossen van eenvoudige conflicten. Maar het menu "Samenvoegen" biedt wat acties voor andere veelvoorkomende zaken. Als u dezelfde bron voor de meeste conflicten wilt gebruiken, kunt u "A", "B" of "C" overal kiezen, of alleen voor de overgebleven niet-opgeloste conflicten, of voor de niet-opgeloste witruimteconflicten. Als u elk apart onderscheid zelf wilt bepalen, kunt u "Elk onderscheid maken bij conflicten" instellen. Of als u terug wilt gaan naar de automatische keuzes van KDiff3 kiest u "Eenvoudige conflicten automatisch oplossen". KDiff3 herstart het samenvoegen dan. Voor acties die uw vorige wijzigingen aanpassen vraagt KDiff3 om uw instemming alvorens door te gaan. Merk op: als u één van de bronnen voor onopgeloste witruimte-conflicten kiest, en de optie "Getallen negeren" of "C/C++ commentaar negeren" is gekozen, dan worden wijzigingen in getallen respectievelijk commentaar ook als witruimte behandeld. Navigatie en bewerken Veel navigatie doet u met de schuifbalken en de muis maar u kunt ook met de toetsen navigeren. Als u in een venster klikt, kunt u de pijltoesen links, rechts, omhoog en omlaag en Page Up, Page Down, Home, End, Ctrl-Home en Ctrl-End gebruiken als in andere programma's. De overzichtskolom naast de verticale schuifbalk van de invoerbestanden kan ook voor navigatie gebruikt worden door erin te klikken. U kunt ook een wielmuis gebruiken om omhoog en omlaag te bladeren. In de uitvoereditor kunt u ook de andere toetsen gebruiken om de tekst te bewerken. U kunt tussen invoeg- en overschrijfmodus wisselen met de toets Insert. (Standaard is invoegmodus.) Een klik met de linker muisknop in een samenvattingskolom synchroniseert alle vensters zodat ze het begin van dezelfde groep regels tonen (zoals uitgelegd in de sectie Samenvoegen). De knoppenbalk heeft ook zeven navigatieknoppen waarmee u naar het huidige/eerste/laatste verschil kunt springen, naar het volgende/vorige verschil (Ctrl-omlaag/Ctrl-omhoog), naar het volgende/vorige conflict (Ctrl-PageDown/Ctrl-PageUp), of naar het volgende/vorige onopgeloste conflict. Merk op dat voor KDiff3 een "conflict" dat niet automatisch werd opgelost bij het begin van het samenvoegen een "conflict" blijft, zelfs als het wordt opgelost. Vandaar de noodzaak om "onopgeloste conflicten" te onderscheiden. Er is ook een knop "Automatisch naar het volgende onopgeloste conflict gaan" (Automatisch doorgaan). Als u dit inschakelt, springt KDiff3 automatisch naar het volgende onopgeloste conflict, zodra u een bron hebt geselecteerd. Dit kan helpen als u altijd slechts één bron wilt kiezen. Als u beide bronnen nodig hebt, of als u na het kiezen nog wilt wijzigen, wilt u deze optie waarschijnlijk uitschakelen. Voordat u naar het volgende onopgeloste conflict gaat, toont KDiff3 u korte tijd het effect van uw keuze. Deze tijd is instelbaar in de Verschil- en samenvoeginstellingen: de tijd voor "Automatisch doorgaan" is instelbaar in milliseconden tussen 0 en 2000. Tip: Niet te veel klikken? Kies een korte tijdsduur voor Automatisch doorgaan en de sneltoetsen Ctrl-1/2/3 om A/B/C voor conflicten te selecteren. Selecteren, kopiëren en plakken De invoervensters tonen geen cursor, dus selecteren moet gedaan worden met de muis door met de linkermuisknop aan het begin te klikken, de muisknop ingedrukt te houden en naar het eind te bewegen, waar u de muisknop weer loslaat. U kunt ook een woord selecteren door erop te dubbelklikken. In de samenvoegeditor kunt u ook met het toetsenbord selecteren met Shift en de pijltoetsen. Om naar het klembord te kopiëren moet u de knop "Kopiëren" kiezen (Ctrl-C of Ctrl-Insert). Maar er bestaat een optie "Selectie automatisch kopiëren". Als deze is ingeschakeld, wordt geselecteerde tekst direct naar het klembord gekopieerd. Let er hierbij wel op dat bestaande inhoud van uw klembord niet per ongeluk ongewenst verwijderd wordt. "Knippen" (Ctrl-X of Shift-Delete) kopieert de geselecteerde tekst naar het klembord en verwijdert deze; "Plakken" (Ctrl-V of Shift-Insert) voegt de tekst op het klembord in op de cursorpositie of over de huidige selectie. Opslaan Opslaan is alleen toegestaan als alle conflicten opgelost zijn. Als het bestand al bestaat en de optie "Reservekopie" ingeschakeld is, wordt het bestaande bestand hernoemd met een extensie ".orig", een bestaande reservekopie wordt hierbij overschreven. Als u afsluit of een andere verschillenanalyse start en de gegevens nog niet zijn opgeslagen, vraagt KDiff3 u of u wilt opslaan, annuleren of doorgaan zonder opslaan. (KDiff3 vangt geen signalen. Dus als u KDiff3 "kill"t gaan uw gegevens verloren.) Regeleindes worden opgeslagen volgens de normale methode op het onderliggende besturingssysteem. Voor Unix-systemen eindigt elke regel met een 'linefeed' "\n", terwijl op Win32-systemen elke regel met een 'carriage return' en een 'linefeed' eindigt "\r\n". KDiff3 bewaart de regeleindes van de invoerbestanden niet, hetgeen ook betekent dat u KDiff3 niet met binaire bestanden moet gebruiken. Tekenreeksen zoeken U kunt naar tekenreeksen zoeken in elk tekstvenster van KDiff3. De opdracht "Zoeken..." (Ctrl-F) in het menu Bewerken opent een venster waarin u de te zoeken tekenreeks kunt opgeven. U kunt ook de vensters opgeven waarin gezocht moet worden. Zoeken begint altijd bovenaan. Gebruik de opdracht "Volgende zoeken" (F3) om naar het volgende voorkomen door te gaan. Als u meerdere vensters opgeeft om in te zoeken wordt het eerste venster van boven naar beneden doorzocht, voordat het volgende venster weer van bovenaf wordt doorzocht, enzovoort. Opties Opties en de recente-bestandenlijst worden opgeslagen als u het programma afsluit, en opnieuw ingelezen als u het start. (Instellingen -> KDiff3 instellen...) Lettertype Kies een lettertype met vaste breedte. (Op sommige systemen toont dit dialoogvenster ook lettertypes met variabele breedte, maar die dient u liever niet te gebruiken.) Cursief lettertype voor onderscheiden:Als u dit kiest, worden tekstverschillen getoond met de cursieve versie van het geselecteerde lettertype. Als het lettertype geen cursief ondersteunt, doet dit niets. Kleuren Voorgrondkleur:Gewoonlijk zwart. Achtergrondkleur:Gewoonlijk wit. Achtergrondkleur bij verschillen:Gewoonlijk lichtgrijs. Kleur voor A:Gewoonlijk donkerblauw. Kleur voor B:Gewoonlijk donkergroen. Kleur voor C:Gewoonlijk donkermagenta. Kleur voor conflicten:Gewoonlijk rood. Achtergrondkleur voor huidig bereik:Gewoonlijk lichtgeel. Achtergrondkleur voor verschillen in huidig bereik:Gewoonlijk donkergeel. Op systemen met slechts 16 of 256 kleuren zijn sommige kleuren niet beschikbaar in pure vorm. Op zulke systemen zorgt de knop "Standaard" voor een pure kleur. Editor-instellingen Tab voegt spaties in:Als dit uitgeschakeld is en u de toets Tab indrukt, wordt een tab-teken ingevoegd, anders het aangegeven aantal spaties. Tabgrootte:Kan ingesteld worden voor uw specifieke wensen. Standaard is 8. Automatisch inspringen:Als u Enter drukt wordt de insprong van de vorige regel gebruikt voor de nieuwe. Automatische kopieerselectie:Elke selectie wordt automatisch naar het klembord gekopieerd, u hoeft niet expliciet te kopiëren. Regeleinde:Bij het opslaan kunt u opgeven welk regeleinde u verkiest. De standaardinstelling is de gebruikelijke keuze voor het gebruikte besturingssysteem. Locale-codering gebruiken:Voor het weergeven van buitenlandse lettertekens. Probeer dit te wijzigen als sommige lettertekens in uw taal niet goed getoond worden. Instellingen voor vergelijking & samenvoeging Bij het vergelijken van bestanden, probeert KDiff3 eerst regels te vinden die gelijk zijn in alle invoerbestanden. Alleen gedurende deze stap wordt witruimte mogelijk genegeerd. De tweede stap vergelijkt elke regel. In deze stap wordt witruimte niet genegeerd. Ook gedurende het samenvoegen wordt witruimte niet genegeerd. 'Carriage return' behouden:Sommige editors (op sommige systemen) slaan 'carriage returns' ('\r') en 'linefeeds' ('\n') op aan het einde van een regel, terwijl andere alleen de 'linefeed' ('\n') opslaan. Normaal gesproken negeert KDiff3 de 'carriage return', maar dan kunnen bestanden niet dezelfde grootte hebben maar wel gelijk lijken. Als deze optie ingeschakeld is, worden de 'carriage returns' zichtbaar gemaakt en behandeld als witruimte. Bij samenvoegen moet deze optie uit staan. Standaard staat deze optie uit. Getallen negeren:Standaard uit. Getaltekens ('0'-'9', '.', '-') worden genegeerd in het eerste deel van de analyse waarin regels worden vergeleken. In het resultaat worden de verschillen wel getoond, maar behandeld als witruimte. C/C++ commentaar negeren:Standaard uit. Wijzigingen in commentaar worden behandeld als wijzigingen in witruimte. Geen onderscheid hoofd-/kleine letters:Standaard uit. Verschillen in hoofd-/kleine letters ('A' en 'a') worden behandeld als verschillen in witruimte. Preprocessorcommando:Zie de volgende sectie. Preprocessor-commando alleen voor regelcontroles:Zie de volgende sectie. Grondig zoeken:Doe veel moeite om kleinere onderscheiden te vinden (standaard aan). Dit is waarschijnlijk effectief voor gecompliceerde, grote bestanden. En langzaam voor erg grote bestanden. Vertraging voor automatisch doorgaan (ms):Bij het automatisch doorgaan bepaalt deze instelling hoe lang het resultaat van de selectie getoond wordt voordat er naar het volgende onopgeloste conflict gesprongen wordt. Standaardsamenvoeging van witruimtes bij 2/3 bestanden:Automatisch alle witruimteconflicten oplossen door een gespecificeerd bestand te kiezen. (Standaard is handmatige keuze.) Nuttig als witruimte in veel bestanden niet belangrijk is. Als u dit alleen af en toe nodig hebt kunt u beter "A/B/C voor alle onopgeloste conflicten kiezen" in het menu Samenvoegen kiezen. Merk op dat als u "Getallen negeren" of "C/C++ commentaar negeren" hebt ingeschakeld, deze automatische keuze ook voor conflicten in getallen of commentaar geldt. Mapsamenvoeging Deze opties gaan over het doorzoeken van de map en de afhandeling van het samenvoegen: zie Mapvergelijking/samenvoeging voor details. Er is hier echter één optie die ook relevant is voor het opslaan van enkele bestanden: Reservekopiebestanden:Als een bestand wordt opgeslagen en er al een oudere versie bestaat, wordt het oude bestand hernoemd met een extensie ".orig". Als een oud reservekopiebestand met de extensie ".orig" al bestaat, wordt deze zonder reservekopie verwijderd. Regio- en taalinstellingen Taal:Past de taal van de gebruikersinterface aan. Het wijzigen van deze optie heeft geen invloed op het huidige programma. U dient KDiff3 af te sluiten en te herstarten om de taal te veranderen. (Deze optie is niet beschikbaar in de KDE-versie van KDiff3 omdat de taal in te stellen is in de globale instellingen van KDE.) Dezelfde codering gebruiken voor alles:De volgende coderingsopties kunnen apart aangepast worden voor elk item. Als deze optie is ingeschakeld nemen alle waarden deze over. Lokale codering:Boven de coderings-selectors komt een opmerking die u vertelt wat de lokale codering is. (Dit is niet aan te passen, maar wordt aangegeven als u uw lokale codering niet weet, maar wel wilt kiezen.) Bestandscodering voor A/B/C:Pas de bestandscodering voor invoerbestanden aan. Dit heeft effect op hoe speciale tekens geïnterpreteerd worden. Aangezien u elke codering apart kunt instellen, kunt u zelfs bestanden vergelijken en samenvoegen die met verschillende coderingen zijn opgeslagen. Bestandscodering voor samenvoeguitvoer en opslag:Als u een bestand hebt bewerkt, kunt op aanpassen met welke codering het weer op schijf wordt opgeslagen. Bestandscodering voor preprocessorbestanden:Als u preprocessors opgeeft kunnen deze misschien niet met uw codering werken (bijvoorbeeld: uw bestanden zijn 16-bits unicode en uw preprocessor kan alleen met 8-bits ascii overweg). Met deze optie kunt u de codering van preprocessor-uitvoer opgeven. Rechts-naar-links-taalSommige talen worden van rechts naar links geschreven. Als ieze optie is ingeschakeld, tekent KDiff3 de tekst van rechs naar links in de verschillenvensters en in het uitvoervenster. Merk op dat, aals u KDiff3 met de opdrachtregeloptie "--reverse" start, alle schermopmaak ook van rechts naar links gedaan wordt. (Dit is een optie die door Qt aangeboden wordt.) Deze documentatie is geschreven met de aanname dat "Rechts-naar-links-taal" of omgekeerde indeling uitgeschakeld zijn. Sommige verwijzingen naar "links" en "rechts" moeten dus omgedraaid worden als u die opties gebruikt. Diverse (Deze opties en acties zijn in menu's of in de knoppenbalk beschikbaar.) Regelnummering tonen:U kunt kiezen of regelnummers voor de invoerbestanden getoond moeten worden. Spaties & tabulator-tekens in verschillen tonen:Soms zijn de zichtbare spaties en tabs storend. U kunt dit uitschakelen. Witruimte tonen:Schakel dit uit om accentuering van alleen-witruimte-veranderingen in de tekst of overzichtskolommen uit te schakelen. (Merk op dat dit ook van toepassing is op wijzigingen in getallen of commentaar als de opties "Getallen negeren" of "C/C++ commentaar negeren" actief zijn.) Overzichtsopties:Deze keuzes zijn alleen beschikbaar als u drie bestanden vergelijkt. In normale modus worden alle verschillen getoond in één kleurgecodeerde overzichtskolom. Maar soms bent u speciaal geïnteresseerd in de verschillen tussen slechts twee van deze drie bestanden. Door "A vs B", "A vs C" of "B vs C" te kiezen wordt er een tweede overzichtskolom met de vereiste informatie getoond naast het normale overzicht. Regels afbreken in vensters met verschillen:Regels afbreken als hun lengte de breedte van een venster zou overschrijden. Venster A/B/C tonen:Soms wilt u de ruimte op het scherm beter gebruiken voor lange regels. Verberg dan de vensters die niet belangrijk zijn. (In het menu Venster.) Splitsen van vensters omschakelen:Wisselen tussen weergave van verschilvensters naast elkaar (A links van B links van C) of boven elkaar (A boven B boven C). Dit moet ook voor lange regels helpen. (In het menu Venster). Samenvoegen snel starten:Soms bekijkt u de onderscheiden en besluit u te willen samenvoegen. "Huidig bestand samenvoegen" in het menu Map werkt ook als u slechts twee bestanden vergelijkt. Een enkele klik start het samenvoegen en gebruikt de bestandsnaam van het laatste invoerbestand als het standaard uitvoerbestand. (Als dit gebruikt wordt om een samenvoeging te herstarten, wordt de uitvoerbestandsnaam behouden.) Sneltoetsen instellen Momenteel ondersteunt alleen de KDE-versie gebruikergedefinieerde sneltoetsen (Menu Instellingen -> Sneltoetsen instellen...) Preprocessor-opdrachten KDiff3 ondersteunt twee preprocessor-opties. Preprocessorcommando:Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. De uitvoer van deze opdracht is dan zichtbaar in plaats van het originele bestand. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Gebruik dit om storende delen van het bestand weg te halen, of automatisch de insprong te verbeteren, enzovoort. Preprocessor-commando alleen voor regelcontroles:Als een bestand gelezen is, wordt het door deze externe opdracht gesluisd. Als een preprocessor-opdracht (zie boven) ook opgegeven wordt, wordt de uitvoer van de preprocessor de invoer van de preprocessor voor regelovereenkomsten. De uitvoer wordt dan alleen gebruikt bij de regelvergelijkingsfase van de analyse. U kunt uw eigen preprocessor schrijven om uw specifieke wensen te vervullen. Elke invoerregel moet een overeenkomende uitvoerregel hebben. Het idee is om de gebruiker grotere flexibiliteit te geven bij het instellen van het resultaat. Maar dit vereist een extern programma, en veel gebruikers willen dat niet zelf schrijven. Het goede nieuws is dat sed of perl vaak voldoende is. Voorbeeld: een eenvoudig testgeval: Beschouw het bestand a.txt (6 regels): aa ba ca da ea fa en het bestand b.txt (3 regels): cg dg eg Zonder preprocessor zouden de volgende regels naast elkaar geplaatst worden: aa - cg ba - dg ca - eg da ea fa Dit is waarschijnlijk niet gewenst omdat de eerste letter de feitelijk interessante informatie bevat. Om het zoekalgoritme te helpen bij het negeren van de tweede letter kunnen we een preprocessor-opdracht voor regelovereenkomsten gebruiken, die 'g' door 'a' vervangt: sed 's/g/a/' Met deze opdracht wordt het resultaat van de vergelijking: aa ba ca - cg da - dg ea - eg fa Intern wordt het zoeken van bij elkaar passende regels na het uitvoeren van de preprocessor voor regelovereenkomsten gedaan, maar op het scherm is het bestand ongewijzigd. (De normale preprocessor verandert de gegevens ook op het scherm.) De basis van <command >sed</command > Deze sectie geeft alleen een inleiding op een paar basismogelijkheden van sed. Zie voor meer informatie info:/sed of http://www.gnu.org/software/sed/manual/html_mono/sed.html. Een voorgecompileerde versie voor Windows kunt u vinden op http://unxutils.sourceforge.net. Merk op dat de volgende voorbeelden ervan uitgaan dat de opdracht sed in een map in uw omgevingsvariabele PATH staat. Als dit niet het geval is, dient u het volledige absolute pad voor de opdracht te gebruiken. Merk ook op dat de volgende voorbeelden het enkelvoudige aanhalingsteken (') gebruiken dat niet in Windows werkt. Op Windows dient u in plaats daarvan dubbele aanhalingstekens (") te gebruiken. In deze context wordt alleen de vervangingsopdracht van sed gebruikt: sed 's/REGEXP/VERVANGING/VLAGGEN' Voordat u een nieuwe opdracht in KDiff3 gebruikt, zou u deze eerst in een console moeten testen. Hiervoor is de opdracht echo nuttig. Voorbeeld: echo abrakadabra | sed 's/a/o/' -> obrakadabra Dit voorbeeld toont een zeer eenvoudige sed-opdracht die het eerste voorkomen van "a" door "o" vervangt. Als u alle voorkomens wilt vervangen, hebt u de vlag "g" nodig: echo abrakadabra | sed 's/a/o/g' -> obrokodobro Het symbool "|" is de doorsluisopdracht die de uitvoer van de vorige opdracht naar de invoer van de volgende opdracht doorgeeft. Als u dit wilt uitproberen met een langer bestand kunt u op Unix-systemencat gebruiken en type op Windows-systemen. sed voert de vervanging op elke regel uit. cat bestand | sed opties Voorbeelden voor het gebruik van <command >sed</command > in KDiff3 Andere soorten commentaar negeren Momenteel begrijpt KDiff3 alleen C/C++ commentaar. Met de preprocessoropdracht voor regelovereenkomsten kunt u ook andere soorten commentaar negeren, door ze in C/C++ commentaar om te zetten. Voorbeeld: om commentaar dat met "#" begint te negeren, wilt u deze omzetten naar "//". Merk op dat u hiervoor ook de optie "C/C++ commentaar negeren" moet inschakelen om effect te krijgen. Een goede preprocessoropdracht voor regelovereenkomsten zou dan zijn: sed 's/#/\/\//' Omdat in sed het teken "/" een aparte betekenis heeft, is het nodig om het teken "\" voor elke "/" in de vervangende tekenreeks te plaatsen. Soms is de "\" ook nodig om een teken een speciale betekenis te geven of deze juist weg te halen. De enkele aanhalingstekens (') voor en na de vervangingsopdracht zijn nu belangrijk, omdat de shell anders zal proberen sommige speciale tekens als '#', '$' of '\' te interpreteren voordat deze aan sed worden doorgegeven. Merk op dat u op Windows hier de dubbele aanhalingstekens (") nodig hebt. Windows vervangt andere tekens als '%', dus u moet hier misschien wat experimenteren. Niet-hoofdlettergevoelige verschillen Gebruik de volgende preprocessoropdracht voor regelovereenkomsten om alle invoer naar hoofdletters om te zetten: sed 's/\(.*\)/\U\1/' Hier is de ".*" een reguliere expressie die met elke tekenreeks overeenkomt en in deze context met alle lettertekens op de regel overeenkomt. De "\1" in de vervangende tekenreeks verwijst naar de overeenkomende tekst binnen het eerste paar "\(" en "\)". De "\U" zet de ingevoegde tekst om in hoofdletters. Versiebeheer-trefwoorden negeren CVS en andere versiebeheersystemen gebruiken diverse trefwoorden om automatisch gegenereerde tekenreeksen in te voegen (info:/cvs/Trefwoordvervanging. Deze volgen allemaal het patroon "$TREFWOORD gegenereerde tekst$". We hebben nu een preprocessoropdracht voor regelovereenkomsten nodig die alleen de gegenereerde tekst verwijdert: sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/' De "\|" scheidt de mogelijke trefwoorden. U wilt deze lijst misschien aan uw eigen wensen aanpassen. De "\" voor de "$" is nodig omdat anders de "$" met het einde van de regel overeenkomt. Terwijl u experimenteert met sed gaat u wellicht deze reguliere expressies begrijpen en op prijs stellen. Ze zijn nuttig omdat er veel andere programma's zijn die soortgelijke dingen ondersteunen. Getallen negeren Getallen negeren is in feite een ingebouwde optie. Maar als een ander voorbeeld is dit de preprocessoropdracht voor regelovereenkomsten: sed 's/[0123456789.-]//g' Elk teken tussen '[' en ']' komt overeen en wordt vervangen door niets. Bepaalde kolommen negeren Soms is een tekst erg strict opgebouwd, en bevat deze kolommen die u altijd wilt negeren, terwijl er andere kolommen zijn die u voor analyse wilt bewaren. In het volgende voorbeeld worden de eerste vijf kolommen (lettertekens) genegeerd, de volgende tien worden bewaard, dan worden er weer vijf genegeerd en de rest van de regel wordt bewaard. sed 's/.....\(..........\).....\(.*\)/\1\2/' Elke punt '.' komt overeen met een willekeurig teken. De "\1" en "\2" in de vervangende tekenreeks verwijzen naar de overeenkomende tekst in het eerste en tweede paar "\(" en "\)" die de tekst aangeven die bewaard moet worden. Diverse vervangingen combineren Soms wilt u diverse vervangingen tegelijk uitvoeren. U kunt dan de puntkomma ';' gebruiken om deze van elkaar te scheiden. Voorbeeld: echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO <command >perl</command > in plaats van <command >sed</command > gebruiken In plaats van sed wilt u wellicht iets anders gebruiken zoals perl. perl -p -e 's/REGEXP/VERVANGING/VLAGGEN' Maar sommige details zijn anders in perl. Merk op waar sed "\(" en "\)" vereist, perl de eenvoudigere "(" en ")" zonder voorafgaande '\' vereist. Voorbeeld: sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/' Uitvoervolgorde van preprocessors De data wordt doorgesluisd door alle interne en externe preprocessors, in deze volgorde: Normale preprocessor. Preprocessor voor regelovereenkomsten. Hoofdletterongevoelig (conversie naar hoofdletters). Opsporen van C/C++ commentaar. Getallen negeren. Witruimte negeren. De gegevens zoals die na de normale preprocessor zijn worden bewaard voor weergave en samenvoeging. De andere handelingen wijzigen alleen de gegevens die het verschillenalgoritme voor regelovereenkomsten ziet. Merk op dat, in de zeldzame gevallen waar u een normale preprocessor gebruikt, de preprocessor voor regelovereenkomsten de uitvoer van de normale preprocessor als invoer ziet. Waarschuwing De preprocessor-opdrachten zijn vaak erg nuttig, maar net zoals elke andere optie die automatisch uw teksten wijzigt of bepaalde verschillen verbergt, kunt u per ongeluk bepaalde verschillen over het hoofd zien en in het ergste geval belangrijke gegevens vernietigen. Om deze reden vertelt KDiff3 u het als er een normale preprocessor-opdracht wordt gebruikt bij het samenvoegen, en wordt u gevraagd of deze uitgeschakeld moet worden of niet. Maar u wordt niet gewaarschuwd als er een preprocessoropdracht voor regelovereenkomsten actief is. Het samenvoegen is niet voltooid totdat alle conflicten opgelost zijn. Als u "Witruimte tonen" uitgeschakeld hebt, zijn de verschillen die met de preprocessoropdracht voor regelovereenkomsten verwijderd zijn, ook onzichtbaar. Als de knop "Opslaan" inactief blijft tijdens het samenvoegen (door overblijvende conflicten), schakel dan "Witruimte tonen" in. Als u deze minder belangrijke verschillen niet handmatig wilt samenvoegen kunt u "[A|B|C] voor alle onopgeloste witruimteconflicten gebruiken" kiezen uit het menu "Samenvoegen". Mappen vergelijken en samenvoegen met KDiff3 Inleiding Programmeurs moeten vaak veel bestanden in een map veranderen om hun doel te bereiken. Hierom laat KDiff3 u ook hele mappen recursief vergelijken en samenvoegen! Hoewel het vergelijken en samenvoegen van mappen nogal duidelijk lijkt, zijn er aan paar details die u moet kennen. Het belangrijkste is natuurlijk het feit dat nu door elke handeling veel bestanden gewijzigd kunnen worden. Als u geen reservekopieën van uw originele gegevens hebt, kan het erg moeilijk of zelfs onmogelijk zijn om naar de originele staat terug te keren. Dus voordat u een samenvoeging start, zorg ervoor dat uw gegevens veilig zijn en dat u terug kunt keren. Of u een archief maakt of een versiebeheersysteem gebruikt is uw keuze, maar zelfs ervaren programmeurs en integrators hebben zo nu en dan de oude broncodes nodig. En merk op dat ik (de auteur van KDiff3) mijn best doe, kan ik niet garanderen dat er geen bugs zijn. Volgens de GNU-GPL is er GEEN WAARBORG op welke manier dan ook voor dit programma. Dus wees bescheiden en onthoud:
Vergissen is menselijk, maar om dingen echt te verknoeien hebt u een computer nodig.
Dus dit kan dit programma voor u doen: KDiff3 ... ... leest en vergelijkt twee of drie mappen recursief, ... houdt speciaal rekening met symbolische koppelingen, ... laat u door bestanden bladeren door te dubbelklikken, ... stelt voor elk item een samenvoegingsoperatie voor, die u kunt wijzigen voordat het samenvoegen van de mappen begint, ... laat u het samenvoegen simuleren en geeft de acties aan die plaats zouden vinden, zonder ze uit te voeren, ... laat u het samenvoegen doen, en geeft u de mogelijkheid in te springen als er menselijke interactie nodig is, ... laat u de geselecteerde handling op alle items (F7) of alleen het geselecteerde item (F6) uitvoeren, ... laat u het samenvoegen voortzetten na handmatige interactie met F7, ... maakt optioneel reservekopieën met de extensie ".orig", ...
Mappen vergelijken of samenvoegen Dit lijkt erg op het vergelijken en samenvoegen van een enkel bestand. U hoeft slechts mappen op de opdrachtregel of in het venster "Openen" te kiezen. Twee mappen vergelijken/samenvoegen: kdiff3 map1 map2 kdiff3 map1 map2 -o doelmap Als er geen doelmap wordt opgegeven, gebruikt KDiff3 map2. Drie mappen vergelijken/samenvoegen kdiff3 map1 map2 map3 kdiff3 map1 map2 map3 -o doelmap Bij het samenvoegen van drie mappen wordt map1 als basis voor het samenvoegen gebruikt. Als er geen doelmap wordt opgegeven, gebruikt KDiff3 map3 als doelmap voor het samenvoegen.doelmpa Merk op dat alleen het vergelijken automatisch start, niet het samenvoegen. Hiervoor dient u eerst een menu-item of de toets F7 te gebruiken. (Meer details later.) Zichtbare informatie Terwijl de mappen worden gelezen verschijnt een melding die u over de voortgang informeert. Als u het inlezen van de mappen annuleert, worden alleen bestanden getoond die tot dan toe zijn vergeleken. Als het inlezen van de mappen klaar is, toont KDiff3 een lijst met de resultaten links ... ... en details over het geselecteerde item rechts. De kolom "Naam" Elk bestand en elke map die tijdens het inlezen gevonden is, wordt hier in een boomstructuur getoond. U kunt een item selecteren door er éénmaal met de muis op te klikken. Standaard zijn de mappen ingeklapt. U kunt ze uitklappen en weer inklappen door op de "+"/"-" te klikken of door op het item te dubbelklikken, of door de linker en rechter pijltoetsen te gebruiken. Het menu "Map" bevat ook twee acties "Alle submappen invouwen" en "Alle submappen uitvouwen" waarmee u alle mappen in één keer kunt inklappen of uitklappen. Als u op een bestand dubbelklikt wordt de bestandsvergelijking gestart en verschijnt het verschillenvenster. De afbeelding in de naamkolom geeft het bestandstype in de eerste map ("A") aan. Dit kan zijn: Normaal bestand Normale map (map-afbeelding) Koppeling naar een bestand (bestandsafbeelding met pijl) Koppeling naar een map (mapafbeelding met pijl) Als het bestandstype anders is in de andere mappen, is dit zichtbaar in de kolommen A/B/C en in het venster dat de details over het geselecteerde item toont. Merk op dat het samenvoegen in zo'n geval niet automatisch gedaan kan worden. Als u het samenvoegen start, wordt u geïnformeerd over zulke problemen. De kolommen A/B/C en het kleurenschema Zoals in de afbeelding te zien is, worden de kleuren rood, groen, geel en zwart gebruikt in de kolommen A/B/C. Zwart: Dit item bestaat niet in deze map Groen: Nieuwste item. Geel: Ouder dan groen, nieuwer dan rood. Rood: Oudste item. Maar voor items die hetzelfde waren in de vergelijking, is ook de kleur hetzelfde, ook al zijn ze niet even oud. Mappen worden als gelijk beschouwd als alle items die ze bevatten hetzelfde zijn. Dan hebben ze ook dezelfde kleur. De leeftijd van een map wordt niet gebruikt bij het bepalen van de kleur. Het idee voor dit kleurenschema kreeg ik bij dirdiff. De kleuren stellen een blad voor dat groen is als het nieuw is, later geel wordt, en rood wordt als het oud is. De kolom "Operatie" Na het vergelijken van mappen maakt KDiff3 ook een voorstel voor een samenvoegingsoperatie. Dit wordt getoond in de kolom "Operatie". U kunt een operatie wijzigen door erop te klikken. Er verschijnt dan een klein menu waarmee u de operatie voor dat item kunt kiezen. (U kunt ook de meestgebruikte operaties met het toetsenbord kiezen. Ctrl+1/2/3/4/Del kiest respectievelijkg A/B/C/Samenvoegen/Verwijderen.) Deze operatie wordt dan bij het samenvoegen uitgevoerd. Afhankelijk van de item en de samenvoegmodus zijn er andere operaties beschikbaar. De samenvoegmodus kan zijn: Samenvoegen van drie mappen ("A" wordt als oudere basis van beide beschouwd) Samenvoegen van twee mappen Synchroniseren van twee mappen (via de optie "Mappen synchroniseren") Bij het samenvoegen van drie mappen is het voorstel voor de operatie: Als voor een item ... ... alledrie de mappen gelijk zijn: kopiëren vanuit C ... A en C gelijk zijn maar B niet: Kopiëren vanuit B (of als B niet bestaat, de bestemming verwijderen als deze bestaat) ... A en B gelijk zijn maar C niet: Kopiëren vanuit C (of als C niet bestaat, de bestemming verwijderen als deze bestaat) ... B en C gelijk zijn maar A niet: Kopiëren vanuit C (of als C niet bestaat, de bestemming verwijderen als deze bestaat) ... alleen A bestaat: De bestemming verwijderen (als deze bestaat) ... alleen B bestaat: Vanuit B kopiëren ... alleen C bestaat: Vanuit C kopiëren ... A, B en C niet gelijk zijn: Samenvoegen ... A, B en C niet hetzelfde bestandstype hebben (bijvoorbeeld, A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen. Bij het samenvoegen van twee mappen is het voorstel voor de operatie: Als voor een item... ... beide mappen gelijk zijn: Kopiëren vanaf B ... A bestaat, maar B niet: Kopiëren vanaf A ... B bestaat, maar A niet: Kopiëren vanaf B ... A en B bestaan maar niet gelijk zijn: Samenvoegen ... A en B niet hetzelfde bestandstype hebben (bijvoorbeeld, A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen. Synchronisatiemodus is actief als er slechts twee mappen en geen expliciet doel zijn opgegeven, en als de optie "Mappen synchroniseren" actief is. KDiff3 kiest dan een standaard operatie zodanig dat beide mappen naderhand hetzelfde zijn. Als voor een item ... ... beide mappen gelijk zijn: Niets. ... A bestaat, maar B niet: A naar B kopiëren ... B bestaat, maar A niet: B naar A kopiëren ... A en B bestaan, maar niet gelijk zijn: samenvoegen en het resultaat in beide mappen opslaan. (Voor de gebruiker is de zichtbare naam B, maar KDiff3 kopieert dan B naar A.) ... A en B niet hetzelfde bestandstype hebben (bijvoorbeeld, A is een map en B een bestand): "Fout: Conflicterende bestandstypen". Zolang zulke items bestaan kan het samenvoegen van de mappen niet beginnen. Als twee mappen samengevoegd worden en de optie "Nieuwere kopiëren in plaats van samenvoegen" geselecteerd is, kijkt KDiff3 naar de datums en stelt dan voor om het nieuwere bestand te kiezen. Als de bestanden niet gelijk zijn maar wel gelijke datums hebben, bevat de operatie "Fout: Datums zijn gelijk maar bestanden niet." Zolang zulke items bestaan kan het samenvoegen niet beginnen. De statuskolom Gedurende het samenvoegen wordt het ene bestand na het andere verwerkt. De statuskolom toont "Gereed" bij items waar het samenvoegen is afgerond, en andere teksten als er iets onverwachts gebeurd is. Als het samenvoegen klaar is, dient u een laatste controle te doen om te zien of de status van alle items goed is. Statistiekkolommen Als de bestandsvergelijkingsmodus "Volledige analyse" ingeschakeld is in de opties, toont KDiff3 extra kolommen met het aantal onopgeloste en opgeloste conflicten en het aantal (niet-)witruimteconflicten. (De kolom met het aantal apgeloste conflicten wordt alleen getoond bij het vergelijken of samenvoegen van drie mappen.) Een samenvoeging doen U kunt het geselecteerde item (bestand of map) samenvoegen, of alle items. Als u alle keuzes voor de operaties hebt gemaakt (ook in alle submappen) kunt u het samenvoegen starten. Wees erop bedacht dat, als u niet expliciet een doelmap heeft opgegeven, de doelmap "C" is bij het behandelen van drie mappen, "B" bij het samenvoegen van twee mappen, en "A" en/of "B" in sychronisatiemodus. Controleer ook als u een doelmap hebt opgegeven of alle items die zich in de uitvoer zouden moeten bevinden, daadwerkelijk in de boomstructuur staan. Er zijn enkele opties die ervoor zorgen dat bepaalde items uit het vergelijken en samenvoegen van mappen worden weggelaten. Controleer deze opties om onplezierige verrassingen te voorkomen: "Recursieve mappen": Als dit uitgeschakeld is, worden items in submappen niet gevonden. "Patroon"/"Anti-patroon": Overeenkomende items al dan niet invoegen "Verborgen bestanden uitsluiten" "Alleen onderscheid tonen": Bestanden die in alle mappn overeenkomen, verschijnen niet in de boomstructuur, en dus ook niet in de bestemming. (In de huidige versie dient u de map handmatig opnieuw in te laten lezen door "Map"->"Opnieuw inlezen" te kiezen, nadat u opties hebt gewijzigd die van invloed zijn op het inlezen van mappen.) Als u tot hier tevreden bent, is de rest eenvoudig. Om alle items samen te voegen: kies "Mapsamenvoeging starten/voortzetten" in het menu "Map" of druk op F7 (sneltoets). Om alleen het huidige item samen te voegen: kies "Operatie uitvoeren voor huidig item" of druk op F6. Als er door conflicterende bestandstypes nog bestanden zijn met ongeldige operaties, verschijnt er een melding, worden die items aangewezen en kunt u een geldige operatie voor die items kiezen. Als u alle items samenvoegt, verschijnt er een dialoogvenster met de opties "Starten", "Simuleren" en "Annuleren". Kies "Simuleren" als u wilt zien wat er gedaan zou worden, zonder dit werkelijk te doen. Er wordt een uitgebreide lijst van alle operaties getoond. Kies anders "Doorgaan" om het samenvoegen echt te starten. KDiff3 voert dan de gekozen operatie uit op alle items. Als u handmatige actie moet ondernemen (samenvoegen van een enkel bestand) verschijnt er een samenvoegvenster (zie de grote schermafdruk). Als u klaar bent met een bestand, kiest u opnieuw "Samenvoegen starten/voortzetten" of drukt u op F7. Als u nog niet hebt opgeslagen, wordt er een dialoogvenster getoond dat u vraagt om dat te doen. KDiff3 gaat dan verder met het volgende item. Als KDiff3 een fout tegenkomt, meldt het dit en wordt de uitgebreide stautsinformatie getoond. Ondaraan deze lijst zullen er wat foutmeldingen staan die u zouden moeten helpen bij het begrijpen van de oorzaak van het probleem. Als u doorgaat met samenvoegen (F7) geeft KDiff3 u de keuze tussen opnieuw proberen of het item overslaan dat het probleem veroorzaakte. Dit betekent dat u, voordat u doorgaat, een andere operatie kunt kiezen of het probleem door andere middelen kunt oplossen. Als het samenvoegen voltooid is, niformeert KDiff3 u hierover via een berichtvenster. Als sommige items afzonderlijk samengevoegd zijn, onthoudt KDiff3 dit (tijdens de samenvoegsessie) en worden deze niet opnieuw samengevoegd als later het samenvoegen voor alle items gestart wordt. Zelfs als het samenvoegen overgeslagen is of er niets is opgeslagen, tellen deze items als voltooid. Alleen als u de samenvoegoperatie wijzigt, wordt het item opnieuw samengevoegd. Opties voor het vergelijken en samenvoegen van mappen De voorkeuren van KDiff3 (menu "Instellingen"->"KDiff3 instellen") bevatten nu een sectie "Mappen samenvoegen" met deze opties: Recursieve mappen:Kies of mappen recursief doorzocht moeten worden. Bestandspatroon(en):Alleen bestanden die hier met een patroon overeenkomen worden in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?' (bijvoorbeeld "*.cpp;*.h"). Standaard is "*". Mappen hoeven niet aan dit patroon te voldoen. Anti-patroon(en):Bestanden en mappen die hier met een patroon overeenkomen worden niet in de boom geplaatst. U kunt hier meer dan één patroon opgeven door een puntkomma ";" als scheidingsteken te gebruiken. Geldige jokertekens: '*' en '?'. Standaard is "*.orig;*.o". CVS-ignore gebruiken:Negeer bestanden en mappen die ook door CVS genegeerd zouden worden. Veel automatisch gegenereerde bestanden worden genegeerd door CVS. Het grote voordeel hiervan is dat dit mapspecifiek opgegeven kan worden via een bestand ".cvsignore". (Zie info:/cvs/cvsignore.) Verborgen bestanden en mappen zoeken:Op sommige bestandssystemen hebben bestanden een attribuut "verborgen". Op andere systemen zorgt een punt "." aan het begin van ene bestandnaam ervoor dat het bestand verborgen is. Met deze optie kunt u deze bestanden al dan niet in de boom laten opnemen. Standaard is aan. Bestandskoppelingen volgen:Voor koppelingen naar bestanden: Als dit uitgeschakeld is, worden de koppelingen vergeleken. Als dit ingeschakeld is, worden de bestanden achter de koppelingen vergeleken. Standaard is uit. Mapkoppelingen volgen:Voor koppelingen naar mappen: Als dit uitgeschakeld is, worden de symbolische koppelingen vergeleken. Als dit ingeschakeld is, worden de koppelingen beschouwd als mappen en recursief ingelezen. (Merk op dat het programmme niet controleert of de koppeling "recursief" is. Dus bijvoorbeeld een map die een koppeling naar zichzelf bevat, zorgt voor een oneindige lus, en na enige tijd, als de "stack" overloopt of al het geheugen op is, voor ene crash van het programma.) Standaard is uit. Alleen onderscheid tonen:Alleen de items die niet in alle invoermappen gelijk zijn worden getoond en alleen de gewijzigde bestanden zijn zichtbaar. Bestanden die in alle mappen gelijk zijn werden dus niet gekopieerd tijdens het samenvoegen en als de doelmap de bestanden vóór het samenvoegen niet bevat, mist u wellicht later bestanden. (Deze optie wordt in een volgende versie waarschijnlijk gewijzigd.) Standaard is uit. Bestandsvergelijkingsmodus: Binaire vergelijking:Dit is de standaard vergelijkingsmodus. Volledige analyse:Doe een volledige analyse van elk bestand en toon de kolommen met statistische informatie. (Aantal opgeloste en onopgeloste, niet-witruimte- en witruimteconflicten.) De volledige analyse is langzamer dan een eenvoudige binaire analyse, en veel langzamer bij bestanden die geen tekst bevatten. (Geef de van toepassing zijnde bestandsantipatronen op.) Wijzigingsdatum vertrouwen:Als u grote mappen over een langzaam netwerk vergelijkt, kan het sneller om alleen de wijzigingsdatums en bestandsgroottes te vergelijken. Deze snelheidsverbetering brengt echter wat onzekerheid met zich mee. Wees voorzichtig bij het gebruiken van deze optie. Standaard is uit. Grootte vertrouwen:Vergelijkbaar met het vertrouwen van de wijzigingsdatum. Er vindt geen echte vergelijking plaats. Twee bestanden worden als gelijk beschouwd als ze dezelfde grootte hebben. Dit is nuttig als de kopieeroperatie de wijzigingsdatum niet intact heeft gehouden. Wees voorzichtig bij het gebruiken van deze optie. Standaard is uit. Mappen synchroniseren:Activeert de "synchronisatiemodus" als twee mappen vergeleken worden en er geen expliciete doelmap is opgegeven. In deze modus worden de voorgestelde operaties dusdanig gekezen dat beide bronmappen na de synchronisatie gelijk zijn. Het resultaat van het samenvoegen wordt ook naar beide mappen geschreven. Standaard is uit. Nieuwere bestanden kopiëren in plaats van samenvoegen:In plaats van het uitvoeren van de voorlgestelde operatie wordt het nieuwere bestand gekopieerd als er wijzigingen zijn opgetreden. (Dit wordt als onveilig beschouwd, want het veronderstelt dat u weet dat het andere bestand niet ook gewijzigd is. Controleer dit in elk geval.) Standaard is uit. Reservekopiebestanden:Als een bestand of gehele map door een andere wordt vervangen of verwijderd vordt, wordt de originele versie hernoemd met de extensie ".orig". Als een oud reservekopiebestand met de extensie ".orig" al bestaat, wordt dit zonder reservekopie verwijderd. Dit beïnvloedt ook het normale samenvoegen van enkele bestanden, niet alleen bij het samenvoegen van mappen. Standaard is aan. Andere functies Splitsen / Volledig-scherm-modus Normaal gesproken blijft de lijstweergave voor het samenvoegen van mappen zichtbaar als er een enkel bestand wordt vergeleken of samengevoegd. Met de muis kunt u de splitsbalk verplaatsen die de bestandenlijst van de verschillenvensters scheidt. Als u dat niet wilt, kunt u "Vensters splitsen" in het menu "Map" uitschakelen. U kunt dan "Weergave omschakelen" in het menu "Map" kiezen om tussen de bestandenlijst en de verschillenweergave over te schakelen, die dan het volledige scherm in beslag nemen. Een enkel bestand vergelijken of samenvoegen U dubbelklikt waarschijnlijk het liefst op een bestand om het te vergelijken. Desalniettemin is er hiervoor ook een item in het menu "Map". U kunt ook direct een enkel bestand samenvoegen, zonder de mapsamenvoeging te starten, met "Enkel bestand samenvoegen" in het menu "Map". Als u het resultaat opslaat, wordt de status op "voltooid" gezet, en wordt het bestand niet opnieuw samengevoegd als er een mapsamenvoeging wordt gestart. Merk op dat deze statusinformatie verloren gaat als u de map opnieum inleest (menu "Map", item "Opnieuw inlezen")
Diverse onderwerpen Netwerktransparantie via KIO KIO-slaves KDE biedt netwerktransparantie via KIO-slaves. KDiff3 gebruikt dit om invoerbestanden en mappen te lezen. Dit betekent dat u bestanden en mappen op lokale en externe bronnen kunt opgeven via URL-adressen. Voorbeeld: kdiff3 test.cpp ftp://ftp.verweg.org/test.cpp kdiff3 tar:/home/hacker/archief.tar.gz/map ./map De eerste regel vergelijkt een lokaal bestand met een bestand op een FTP-server. De tweede regel vergelijkt een map binnen een gecomprimeerd archief met een lokale map. Andere interessante KIO-slaves zijn: Bestanden op het www (http:), Bestanden op ftp (ftp:), Versleutelde bestandsoverdracht (fish:, sftp:), Windows-bronnen (smb:), Lokale bestanden (file:). Andere (waarschijnlijk minder nuttige) mogelijkheden zijn: Man-pagina's (man:), info-pagina's (info:). Hoe URL-adressen te schrijven Een URL heeft een andere syntaxis vergeleken met paden naar lokale bestanden en mappen. U dient met een aantal zaken rekening te houden: Een pad kan relatief zijn en "." of ".." bevatten. Dit kan niet met URL-adressen, die altijd absoluut zijn. Speciale tekens dienen omgezet te worden. ("#"->"%23", spatie->"%20", enz.) Een bestand met de naam "/#foo#" wordt bijvoorbeeldhet URL-adres "file:/%23foo%23". Als URL-adressen niet werken zoals u verwacht, probeer ze dan eerst in Konqueror te openen. Mogelijkheden van KIO-slaves Netwerktransparantie heeft één nadeel: niet alle bronnen hebben dezelfde mogelijkheden. Soms ligt dit aan het bestandssysteem van de server, soms aan het protocol. Een korte lijst van beperkingen: Er is soms geen ondersteuning voor koppelingen. Of er is geen manier om te onderscheiden of een koppeling naar een map of een bestand verwijst, er wordt dan altijd van bestanden uitgegaan (ftp:, sftp:). De bestandsgrootte kan niet altijd bepaald worden. Beperkte ondersteuning voor permissies. Geen mogelijkheden om permissies of wijzigingsdatums te veranderen, zodat de permissies of tijd van een kopie verschillen van het origineel. (Zie de optie "Grootte vertrouwen"). (Permissies of wijzigingsdatum veranderen is alleen mogelijk bij lokale bestanden.) &kdiff3; als een KPart gebruiken &kdiff3; is een KPart. Het implementeert momenteel de interface KParts::ReadOnlyPart. Het belangrijkste gebruik is als een verschillentoner in KDevelop. KDevelop start altijd eerst de interne verschillentoner. Om KDiff3 op te starten klikt u met de rechtermuisknop op het verschilvenster en kiest u "In KDiff3Part tonen" uit het contextmenu. Kdiff3 vereist normaal gesproken twee complete bestanden als invoer. Als het als een KPart gebruikt wordt, neemt KDiff3 aan dat het invoerbestand een patch-bestand in het standaard formaat is. KDiff3 haalt dan de twee bestandsnamen op uit het patch-bestand. Minstens één van de twee bestanden moet beschikbaar zijn. KDiff3 roept dan patch aan om het andere bestand opnieuw te maken. In Konqueror kunt u een patch-bestand selecteren en "Tonen in"-"KDiff3Part" uit het contextmenu kiezen. Merk op dat dit niet werkt als geen van de originele bestanden beschikbaar is, en dat het niet betrouwbaar is als een origineel bestand gewijzigd is sinds het patch-bestand gegenereerd is. Als het als een KPart gestart wordt, biedt KDiff3 alleen een verschillenmodus voor twee bestanden, een kleine werkbalk en een menu. Samenvoegen of mappen vergelijken worden dan niet ondersteund. Vraag en antwoord &reporting.bugs; &updating.documentation; Waarom heet het "KDiff3"? Hulpmiddelen met de naam "KDiff" en "KDiff2" (nu "Kompare") bestaan al. "KDiff3" moet ook suggereren dat het kan samenvoegen, net als het programma "diff3". Waarom heb ik het onder GPL uitgegeven? Ik gebruik al heel lang GPL-programma's en heb veel geleerd door de vele broncodes te bekijken. Dit is daarom mijn dankbetuiging aan alle programmeurs die hetzelfde hebben gedaan of zullen doen. Sommige knoppen en functies ontbreken. Wat is er mis? U hebt waarschijnlijk vanuit de broncode gecompileerd zonder het juiste KDE-prefix in "configure" op te geven. Standaard wil "configure" in de map /usr/local installeren, maar KDE kan het bronbestand voor de gebruikersinterface dan niet vinden (kdiff3ui.rc). Het bestand README bevat meer informatie over de goede prefix. Regels die op elkaar lijken maar niet hetzelfde zijn, verschijnen vaak naast elkaar, maar soms niet. Waarom? Regels waar alleen de hoeveelheid witruimte verschillend is worden in eerste instantie als "gelijk" beschouwd, terwijl slechts één verschillend niet-witruimte-teken ervoor zorgt dat de regels "verschillend" zijn. Als op elkaar lijkende regels naast elkaar verschijnen is dit slechts toeval, maar dit is gelukkig vaak het geval. Waarom moeten alle conflicten opgelost worden voordat het resultaat opgeslagen kan worden? Voor elke gelijke of verschillende sectie onthoudt de editor in het resultaatvenster waar deze begint en eindigt. Dit is nodig omdat dan conflicten handmatig opgelost kunnen worden door op de knop van de broncode (A, B of C) te drukken. Deze informatie is opgelost bij het opslaan als tekst en het is te veel werk om een speciaal bestandsformaat te maken waarmee alle benodigde informatie opgeslagen en ingelezen kan worden. Waarom heeft de editor in het resultaatvenster geen functie "ongedaan maken"? Dit was tot nu toe te veel werk. U kunt altijd een versie vanuit ene bron (A, B of C) herstellen daar op de overeenkomstige knop te klikken. Voor grote wijzigingen wordt het gebruik van een andere editor sowieso aanbevolen. Toen ik wat tekst verwijderde, verscheen plotseling "<Geen regel in de bron>" en ik kon dit niet verwijderen. Wat betekent dit en hoe kan ik dit verwijderen? Voor elke gelijke of verschillende sectie onthoudt de editor in het resultaatvenster waar deze begint en eindigt. "<Geen regel in de bron>" betekent dat er niets over is in de sectie (zelfs geen regeleinde). Dit kan tijdens automatisch samenvoegen of tijdens bewerken gebeuren. Dit is geen probleem, want de aanwijzing verschijnt niet in het opgeslagen bestand. Als u de originele bron terug wilt, selecteert u de sectie (klik op de linker overzichtkolom) en klikt u op de knop van de bron met de gewenste inhoud (A, B of C). Waarom ondersteunt KDiff3 geen syntaxis-accentuering? KDiff3 gebruikt al veel kleuren voor het accentueren van verschillen. Meer accentuering zou verwarrend worden, gebruik daar een andere editor voor. Er staat hier zo veel informatie, maar uw vraag is nog niet beantwoord? Stuur me uw vraag. Ik stel alle opmerkingen op prijs. Dankbetuigingen en licentie &kdiff3; - Hulpmiddel voor vergelijken en samenvoegen van bestanden en mappen Programma copyright 2002-2005 Joachim Eibl joachim.eibl at gmx.de Diverse gave ideeën en bugrapporten van collega's en veel mensen op het Wilde Wilde Web. Bedankt! Documentatie copyright © 2002-2005 Joachim Eibl joachim.eibl at gmx.de &meld.fouten;&vertaling.sander; &underFDL; &underGPL; Installatie &kdiff3; verkrijgen U kunt de laatste versie van KDiff3 downloaden vanaf de webpagina http://kdiff3.sourceforge.net. KDiff3 is ook beschikbaar vaar andere platformen. Zie de website voor details. Vereisten Om alle mogelijkheden van &kdiff3; goed te gebruiken, hebt u &kde; >3.1 nodig. Voor informatie over het draaien van KDiff3 op andere platformen zonder KDE, kijkt u op de homepage. Een lijst met wijzigingen kunt u vinden op http://kdiff3.sourceforge.net/ChangeLogof in het bestand "ChangeLog" uit het bronpakket. Compileren en installeren Om &kdiff3; op een systeem met KDE te installeren, typt u het volgende in de basismap van de &kdiff3;-distributie: % ./configure --prefix=kde-map % make % make install kde-mapgeeft de map op uw systeem aan waarin KDE zich bevindt. Als u niet zeker bent, kijk dan in het bestand README. Omdat &kdiff3; autoconf enautomake gebruikt, zou u geen problemen mogen hebben met compileren. Als u problemen hebt, meld die dan op de mailinglijsten van &kde;. &documentation.index;
kdiff3-0.9.97/doc/nl/CMakeLists.txt0000644000175100001440000000013511626145652016245 0ustar joachimuserskde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/nl SUBDIR kdiff3) kdiff3-0.9.97/COPYING0000644000175100001440000004312511626145604013365 0ustar joachimusers GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. kdiff3-0.9.97/test/0000755000175100001440000000000012010302577013274 5ustar joachimuserskdiff3-0.9.97/test/fakekdiff3_part.cpp0000644000175100001440000000011411770534106017026 0ustar joachimusersextern "C" { void* init_libkdiff3part() { return 0; } } kdiff3-0.9.97/test/fakeprogressproxy.cpp0000644000175100001440000000234511770534106017610 0ustar joachimusers#include #include "progress.h" void ProgressDialog::delayedHide() { } void ProgressDialog::slotAbort() { } void ProgressDialog::reject() { } void ProgressDialog::timerEvent(QTimerEvent*) { } ProgressProxy::ProgressProxy() { } ProgressProxy::~ProgressProxy() { } void ProgressProxy::setInformation( const QString& info, bool bRedrawUpdate ) { /* Suppress warning about unused parameters */ (void)info; (void)bRedrawUpdate; } void ProgressProxy::setInformation( const QString& info, double dCurrent, bool bRedrawUpdate ) { /* Suppress warning about unused parameters */ (void)info; (void)dCurrent; (void)bRedrawUpdate; } void ProgressProxy::setCurrent( double dCurrent, bool bRedrawUpdate ) { /* Suppress warning about unused parameters */ (void)dCurrent; (void)bRedrawUpdate; } void ProgressProxy::step( bool bRedrawUpdate ) { /* Suppress warning about unused parameters */ (void)bRedrawUpdate; } bool ProgressProxy::wasCancelled() { return false; } void ProgressProxy::exitEventLoop() { } void ProgressProxy::enterEventLoop( KJob* pJob, const QString& jobInfo ) { /* Suppress warning about unused parameters */ (void)pJob; (void)jobInfo; } QDialog *ProgressProxy::getDialog() { return NULL; } kdiff3-0.9.97/test/fakefileaccess.cpp0000644000175100001440000000423211770534106016740 0ustar joachimusers#include #include "fileaccess.h" FileAccess::FileAccess() { } FileAccess::FileAccess(const QString& name, bool bWantToWrite) { assert(!bWantToWrite); m_name = name; } FileAccess::~FileAccess() { } // FileAccess( const QString& name, bool bWantToWrite=false ); // name: local file or dirname or url (when supported) // void setFile( const QString& name, bool bWantToWrite=false ); // bool FileAccess::isValid() const { return m_name.length() != 0; } // bool isFile() const; // bool isDir() const; // bool isSymLink() const; bool FileAccess::exists() const { assert(FALSE); } qint64 FileAccess::size() const { assert(FALSE); } qint64 FileAccess::sizeForReading() { assert(FALSE); } // bool isReadable() const; // bool isWritable() const; // bool isExecutable() const; // bool isHidden() const; // QString readLink() const; // // QDateTime created() const; // QDateTime lastModified() const; // QDateTime lastRead() const; // // QString fileName() const; // Just the name-part of the path, without parent directories // QString filePath() const; // The path-string that was used during construction QString FileAccess::prettyAbsPath() const { assert(FALSE); } // KUrl url() const; QString FileAccess::absoluteFilePath() const { return ""; } bool FileAccess::isLocal() const { return true; } bool FileAccess::readFile(void* pDestBuffer, unsigned long maxLength ) { assert(FALSE); } bool FileAccess::writeFile(const void* pSrcBuffer, unsigned long length ) { assert(FALSE); } // bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, // const QString& filePattern, const QString& fileAntiPattern, // const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore ); bool FileAccess::copyFile( const QString& destUrl ) { assert(FALSE); } // bool createBackup( const QString& bakExtension ); // QString FileAccess::tempFileName() { assert(FALSE); } bool FileAccess::removeTempFile( const QString& ) { assert(FALSE); } /*bool FileAccess::removeFile() { assert(FALSE); }*/ bool FileAccess::removeFile( const QString& ) { assert(FALSE); } kdiff3-0.9.97/test/tests.pro0000644000175100001440000000134711770534106015174 0ustar joachimusersTEMPLATE = app CONFIG += qt warn_on thread precompile_header debug HEADERS = ../src-QT4/kreplacements/kreplacements.h \ ../src-QT4/fileaccess.h \ ../src-QT4/progress.h SOURCES = alignmenttest.cpp \ ../src-QT4/common.cpp \ ../src-QT4/diff.cpp \ ../src-QT4/fileaccess.cpp \ ../src-QT4/gnudiff_analyze.cpp \ ../src-QT4/gnudiff_io.cpp \ ../src-QT4/gnudiff_xmalloc.cpp \ ../src-QT4/kreplacements/kreplacements.cpp \ fakekdiff3_part.cpp \ fakeprogressproxy.cpp TARGET = alignmenttest INCLUDEPATH += ../src-QT4 ../src-QT4/kreplacements QMAKE_EXTRA_TARGETS = check check.depends = alignmenttest check.commands = ./alignmenttest kdiff3-0.9.97/test/testdata/0000755000175100001440000000000012010302577015105 5ustar joachimuserskdiff3-0.9.97/test/testdata/1_simpletest_base.txt0000644000175100001440000000002111770534106021251 0ustar joachimuserssame everywhere kdiff3-0.9.97/test/testdata/1_simpletest_contrib2.txt0000644000175100001440000000013111770534106022063 0ustar joachimuserssame in b and c again same in b and c same in b and c except for space same everywhere kdiff3-0.9.97/test/testdata/README0000644000175100001440000000232511770534106015776 0ustar joachimusersAdding test cases ----------------- Each test case consists of 4 files: three files with input data and one file that contains the expected vertical alignment chosen by kdiff3. Test data files should follow this naming convention: *_base.* *_contrib1.* *_contrib2.* *_expected_result.* The test automatically detects files that follow this convention and executes the test on these sets of files in alphabetical order. Specifying expected alignment ----------------------------- Each line in the alignment file corresponds to a line in the diff view of kdiff3 and consists of the three line numbers from files A, B and C that are put on that line in the diff view. So for instance if file A contains two lines, file B is empty and file C contains one line that is the same as the second line in A, kdiff3 may align them like this in the diff view: A: B: C: something something else something else An alignment file for this alignment would look like this: 1 -1 -1 2 -1 1 As you can see -1 is used to indicate that a line in the diff view does not contain a line from the input file. -- Maurice van der Pot griffon26@kfk4ever.com kdiff3-0.9.97/test/testdata/1_simpletest_expected_result.txt0000644000175100001440000000005711770534106023547 0ustar joachimusers-1 0 0 -1 1 -1 -1 2 1 -1 3 2 0 4 3 1 5 4 2 6 5 kdiff3-0.9.97/test/testdata/1_simpletest_contrib1.txt0000644000175100001440000000014211770534106022064 0ustar joachimuserssame in b and c only in b again same in b and c same in b and c except for space same everywhere kdiff3-0.9.97/test/fakeoptiondialog.cpp0000644000175100001440000000003411770534106017323 0ustar joachimusers#include "optiondialog.h" kdiff3-0.9.97/test/alignmenttest.cpp0000644000175100001440000002256311770534106016675 0ustar joachimusers// vim:sw=3:ts=3:expandtab #include #include #include #include #include #include "diff.h" #include "gnudiff_diff.h" #include "options.h" #include "progress.h" #define i18n(s) s Options *m_pOptions = NULL; ManualDiffHelpList m_manualDiffHelpList; bool g_bIgnoreWhiteSpace = true; bool g_bIgnoreTrivialMatches = true; void determineFileAlignment(SourceData &m_sd1, SourceData &m_sd2, SourceData &m_sd3, Diff3LineList &m_diff3LineList) { DiffList m_diffList12; DiffList m_diffList23; DiffList m_diffList13; m_diff3LineList.clear(); // Run the diff. if ( m_sd3.isEmpty() ) { runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2, &m_manualDiffHelpList, m_pOptions); calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList ); fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() ); } else { runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2, &m_manualDiffHelpList, m_pOptions); runDiff( m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList23,2,3, &m_manualDiffHelpList, m_pOptions); runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList13,1,3, &m_manualDiffHelpList, m_pOptions); calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList ); calcDiff3LineListUsingAC( &m_diffList13, m_diff3LineList ); correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList ); calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList ); if ( m_pOptions->m_bDiff3AlignBC ) { calcDiff3LineListUsingBC( &m_diffList23, m_diff3LineList ); correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList ); calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList ); } fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() ); fineDiff( m_diff3LineList, 2, m_sd2.getLineDataForDisplay(), m_sd3.getLineDataForDisplay() ); fineDiff( m_diff3LineList, 3, m_sd3.getLineDataForDisplay(), m_sd1.getLineDataForDisplay() ); } calcWhiteDiff3Lines( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff() ); } void printDiffList(const Diff3LineList &diff3LineList, const SourceData &sd1, const SourceData &sd2, const SourceData &sd3) { const int columnsize = 30; const int linenumsize = 6; Diff3LineList::const_iterator i; for ( i=diff3LineList.begin(); i!=diff3LineList.end(); ++i ) { QTextStream out(stdout); QString lineAText; QString lineBText; QString lineCText; const Diff3Line& d3l = *i; if(d3l.lineA != -1) { const LineData *pLineData = &sd1.getLineDataForDiff()[d3l.lineA]; lineAText = QString(pLineData->pLine, pLineData->size); lineAText = QString("%1 %2").arg(d3l.lineA, linenumsize).arg(lineAText.left(columnsize - linenumsize - 1)); } if(d3l.lineB != -1) { const LineData *pLineData = &sd2.getLineDataForDiff()[d3l.lineB]; lineBText = QString(pLineData->pLine, pLineData->size); lineBText = QString("%1 %2").arg(d3l.lineB, linenumsize).arg(lineBText.left(columnsize - linenumsize - 1)); } if(d3l.lineC != -1) { const LineData *pLineData = &sd3.getLineDataForDiff()[d3l.lineC]; lineCText = QString(pLineData->pLine, pLineData->size); lineCText = QString("%1 %2").arg(d3l.lineC, linenumsize).arg(lineCText.left(columnsize - linenumsize - 1)); } out << QString("%1 %2 %3").arg(lineAText, -columnsize) .arg(lineBText, -columnsize) .arg(lineCText, -columnsize) + "\n"; } } void loadExpectedAlignmentFile(QString expectedResultFileName, Diff3LineList &expectedDiff3LineList) { Diff3Line d3l; expectedDiff3LineList.clear(); QFile file(expectedResultFileName); QString line; if ( file.open(QIODevice::ReadOnly) ) { QTextStream t( &file ); while ( !t.atEnd() ) { QStringList lst = t.readLine().split(QRegExp("\\s+")); d3l.lineA = lst.at(0).toInt(); d3l.lineB = lst.at(1).toInt(); d3l.lineC = lst.at(2).toInt(); expectedDiff3LineList.push_back( d3l ); } file.close(); } } void writeActualAlignmentFile(QString actualResultFileName, const Diff3LineList &actualDiff3LineList) { Diff3LineList::const_iterator p_d3l; QFile file(actualResultFileName); if ( file.open(QIODevice::WriteOnly) ) { { QTextStream t( &file ); for(p_d3l = actualDiff3LineList.begin(); p_d3l != actualDiff3LineList.end(); p_d3l++) { t << p_d3l->lineA << " " << p_d3l->lineB << " " << p_d3l->lineC << endl; } } file.close(); } } bool runTest(QString file1, QString file2, QString file3, QString expectedResultFile, QString actualResultFile, int maxLength) { Options options; Diff3LineList actualDiff3LineList, expectedDiff3LineList; QTextCodec *p_codec = QTextCodec::codecForName("UTF-8"); QTextStream out(stdout); options.m_bIgnoreCase = false; options.m_bDiff3AlignBC = true; m_pOptions = &options; SourceData m_sd1, m_sd2, m_sd3; QString msgprefix = "Running test with "; QString filepattern = QString(file1).replace("_base.", "_*."); QString msgsuffix = QString("...%1").arg("", maxLength - filepattern.length()); out << msgprefix << filepattern << msgsuffix; out.flush(); m_sd1.setOptions(&options); m_sd1.setFilename(file1); m_sd1.readAndPreprocess(p_codec, false); m_sd2.setOptions(&options); m_sd2.setFilename(file2); m_sd2.readAndPreprocess(p_codec, false); m_sd3.setOptions(&options); m_sd3.setFilename(file3); m_sd3.readAndPreprocess(p_codec, false); determineFileAlignment(m_sd1, m_sd2, m_sd3, actualDiff3LineList); loadExpectedAlignmentFile(expectedResultFile, expectedDiff3LineList); Diff3LineList::iterator p_actual = actualDiff3LineList.begin(); Diff3LineList::iterator p_expected = expectedDiff3LineList.begin(); bool equal = true; equal = (actualDiff3LineList.size() == expectedDiff3LineList.size()); while(equal && (p_actual != actualDiff3LineList.end())) { equal = (p_actual->lineA == p_expected->lineA) && (p_actual->lineB == p_expected->lineB) && (p_actual->lineC == p_expected->lineC); p_actual++; p_expected++; } if(equal) { out << "OK" << endl; } else { out << "NOK" << endl; writeActualAlignmentFile(actualResultFile, actualDiff3LineList); out << "Actual result (written to " << actualResultFile << "):" << endl; out << "----------------------------------------------------------------------------------------------" << endl; printDiffList(actualDiff3LineList, m_sd1, m_sd2, m_sd3); out << "----------------------------------------------------------------------------------------------" << endl; out << "Expected result:" << endl; out << "----------------------------------------------------------------------------------------------" << endl; printDiffList(expectedDiff3LineList, m_sd1, m_sd2, m_sd3); out << "----------------------------------------------------------------------------------------------" << endl; } return equal; } int main() { bool allOk = true; int maxLength = 0; QTextStream out(stdout); QDir testdatadir("testdata"); QStringList nameFilter; nameFilter << "*_base.*"; QStringList baseFiles = testdatadir.entryList(nameFilter, QDir::Files, QDir::Name); QListIterator it(baseFiles); for (int i = 0; i < baseFiles.size(); i++) { maxLength = std::max(baseFiles.at(i).length(), maxLength); } maxLength += testdatadir.path().length() + 1; while (it.hasNext()) { QString fileName = testdatadir.path() + QDir::separator() + it.next(); QRegExp baseFileRegExp("(.*)_base\\.(.*)"); baseFileRegExp.exactMatch(fileName); QString prefix = baseFileRegExp.cap(1); QString suffix = baseFileRegExp.cap(2); QString contrib1FileName(prefix + "_contrib1." + suffix); QString contrib2FileName(prefix + "_contrib2." + suffix); QString expectedResultFileName(prefix + "_expected_result." + suffix); QString actualResultFileName(prefix + "_actual_result." + suffix); if(QFile(contrib1FileName).exists() && QFile(contrib2FileName).exists() && QFile(expectedResultFileName).exists()) { bool ok = runTest(fileName, contrib1FileName, contrib2FileName, expectedResultFileName, actualResultFileName, maxLength); allOk = allOk && ok; } else { out << "Skipping " << fileName << " " << contrib1FileName << " " << contrib2FileName << " " << expectedResultFileName << " " << endl; } } return allOk ? 0 : -1; } kdiff3-0.9.97/kdiff3plugin-QT4/0000755000175100001440000000000011630417540015314 5ustar joachimuserskdiff3-0.9.97/kdiff3plugin-QT4/kdiff3plugin.cpp0000644000175100001440000002253611557340744020426 0ustar joachimusers/* This file is part of the KDiff3 project Copyright (C) 2008 Joachim Eibl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "kdiff3plugin.h" #include #include #include #include #include #include #include #include #include #include #include #include //#include static QStringList* s_pHistory=0; class KDiff3PluginFactory : public KGenericFactory < KDiff3Plugin, KonqPopupMenu > { KConfig* m_pConfig; KConfigGroup* m_pConfigGroup; public: KDiff3PluginFactory( const char* instanceName = 0 ) : KGenericFactory< KDiff3Plugin, KonqPopupMenu >( instanceName ) { m_pConfig = 0; if (s_pHistory==0) { //std::cout << "New History: " << instanceName << std::endl; s_pHistory = new QStringList; m_pConfig = new KConfig( "kdiff3pluginrc", KConfig::SimpleConfig ); m_pConfigGroup = new KConfigGroup( m_pConfig, "KDiff3Plugin" ); *s_pHistory = m_pConfigGroup->readEntry("HistoryStack", QStringList() ); } } ~KDiff3PluginFactory() { //std::cout << "Delete History" << std::endl; if ( s_pHistory && m_pConfigGroup ) m_pConfigGroup->writeEntry("HistoryStack",*s_pHistory); delete s_pHistory; delete m_pConfigGroup; delete m_pConfig; s_pHistory = 0; m_pConfig = 0; } }; K_EXPORT_COMPONENT_FACTORY (libkdiff3plugin, KDiff3PluginFactory ("kdiff3plugin")) KDiff3Plugin::KDiff3Plugin( KonqPopupMenu* pPopupMenu, const QStringList & /* list */ ) :KonqPopupMenuPlugin(pPopupMenu) { KGlobal::locale()->insertCatalog("kdiff3plugin"); m_pPopupMenu = pPopupMenu; m_pParentWidget = pPopupMenu->parentWidget(); } void KDiff3Plugin::setup( KActionCollection* actionCollection, const KonqPopupMenuInformation& popupMenuInfo, QMenu* pMenu ) { if (KStandardDirs::findExe("kdiff3").isNull ()) return; // remember currently selected files (copy to a QStringList) KFileItemList itemList = popupMenuInfo.items(); foreach ( const KFileItem& item, itemList ) { //m_urlList.append( item.url() ); m_list.append( item.url().url() ); } /* Menu structure: KDiff3 -> (1 File selected): Save 'selection' for later comparison (push onto history stack) Compare 'selection' with first file on history stack. Compare 'selection' with -> choice from history stack Merge 'selection' with first file on history stack. Merge 'selection' with last two files on history stack. (2 Files selected): Compare 's1' with 's2' Merge 's1' with 's2' (3 Files selected): Compare 's1', 's2' and 's3' */ KActionMenu* pActionMenu = new KActionMenu (i18n ("KDiff3"), actionCollection ); KAction* pAction = 0; QString s; if(m_list.count() == 1) { int historyCount = s_pHistory ? s_pHistory->count() : 0; s = i18n("Compare with %1", (historyCount>0 ? s_pHistory->front() : QString()) ); pAction = new KAction ( s, actionCollection ); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWith())); pAction->setEnabled( m_list.count()>0 && historyCount>0 ); pActionMenu->addAction(pAction); s = i18n("Merge with %1", historyCount>0 ? s_pHistory->front() : QString() ); pAction = new KAction( s, actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeWith())); pAction->setEnabled( m_list.count()>0 && historyCount>0 ); pActionMenu->addAction (pAction); s = i18n("Save '%1' for later", ( m_list.front() ) ); pAction = new KAction ( s, actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotSaveForLater())); pAction->setEnabled( m_list.count()>0 ); pActionMenu->addAction(pAction); pAction = new KAction (i18n("3-way merge with base"), actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeThreeWay())); pAction->setEnabled( m_list.count()>0 && historyCount>=2 ); pActionMenu->addAction (pAction); if ( s_pHistory && !s_pHistory->empty() ) { KActionMenu* pHistoryMenu = new KActionMenu( i18n("Compare with ..."), actionCollection ); pHistoryMenu->setEnabled( m_list.count()>0 && historyCount>0 ); pActionMenu->addAction(pHistoryMenu); for (QStringList::iterator i = s_pHistory->begin(); i!=s_pHistory->end(); ++i) { pAction = new KAction( *i, actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWithHistoryItem())); pHistoryMenu->addAction (pAction); } pAction = new KAction (i18n("Clear list"), actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotClearList())); pActionMenu->addAction (pAction); pAction->setEnabled( historyCount>0 ); } } else if(m_list.count() == 2) { pAction = new KAction (i18n("Compare"), actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareTwoFiles())); pActionMenu->addAction (pAction); } else if ( m_list.count() == 3 ) { pAction = new KAction (i18n("3 way comparison"), actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareThreeFiles())); pActionMenu->addAction (pAction); } pAction = new KAction (i18n("About KDiff3 menu plugin ..."), actionCollection); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotAbout())); pActionMenu->addAction (pAction); pMenu->addSeparator(); pMenu->addAction( pActionMenu ); pMenu->addSeparator(); } KDiff3Plugin::~KDiff3Plugin () { } void KDiff3Plugin::slotCompareWith() { if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() ) { QStringList args; args << s_pHistory->front(); args << m_list.front(); KProcess::startDetached("kdiff3", args); } } void KDiff3Plugin::slotCompareWithHistoryItem() { const KAction* pAction = dynamic_cast( sender() ); if ( m_list.count() > 0 && pAction ) { QStringList args; args << pAction->text(); args << m_list.front(); KProcess::startDetached ("kdiff3", args); } } void KDiff3Plugin::slotCompareTwoFiles() { if ( m_list.count() == 2 ) { QStringList args; args << m_list.front(); args << m_list.back(); KProcess::startDetached ("kdiff3", args); } } void KDiff3Plugin::slotCompareThreeFiles() { if ( m_list.count() == 3 ) { QStringList args; args << m_list[0]; args << m_list[1]; args << m_list[2]; KProcess::startDetached ("kdiff3", args); } } void KDiff3Plugin::slotMergeWith() { if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() ) { QStringList args; args << s_pHistory->front(); args << m_list.front(); args << ( "-o" + m_list.front() ); KProcess::startDetached ("kdiff3", args); } } void KDiff3Plugin::slotMergeThreeWay() { if ( m_list.count() > 0 && s_pHistory && s_pHistory->count()>=2 ) { QStringList args; args << (*s_pHistory)[1]; args << (*s_pHistory)[0]; args << m_list.front(); args << ("-o" + m_list.front()); KProcess::startDetached ("kdiff3", args); } } void KDiff3Plugin::slotSaveForLater() { if ( !m_list.isEmpty() && s_pHistory ) { while ( s_pHistory->count()>=10 ) s_pHistory->pop_back(); s_pHistory->push_front( m_list.front() ); } } void KDiff3Plugin::slotClearList() { if ( s_pHistory ) s_pHistory->clear(); } void KDiff3Plugin::slotAbout() { QString s = i18n("KDiff3 Menu Plugin: Copyright (C) 2008 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n\n"); s += i18n("Using the context menu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else, \"Save\" the first file for later, " "and it will appear in the \"Compare With ...\" submenu. " "Then, use \"Compare With\" on the second file.\n" "For a 3-way merge first, \"Save\" the base file, then the branch to merge, and " "then \"3-way merge with base\" on the other branch which will be used as the destination.\n" "The same also applies to directory comparison and merge."); KMessageBox::information(m_pParentWidget, s, i18n("About KDiff3 Menu Plugin") ); } kdiff3-0.9.97/kdiff3plugin-QT4/kdiff3plugin.h0000644000175100001440000000321711626145654020066 0ustar joachimusers/* This file is part of the KDiff3 project Copyright (C) 2008 Joachim Eibl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _KDIFF3PLUGIN_H_ #define _KDIFF3PLUGIN_H_ #include #include #include class QStringList; class KDiff3Plugin : public KonqPopupMenuPlugin { Q_OBJECT public: KDiff3Plugin (KonqPopupMenu *, const QStringList & list); virtual ~KDiff3Plugin(); // implement pure virtual method from KonqPopupMenuPlugin virtual void setup( KActionCollection* actionCollection, const KonqPopupMenuInformation& popupMenuInfo, QMenu* menu ); private slots: void slotCompareWith(); void slotCompareTwoFiles(); void slotCompareThreeFiles(); void slotMergeWith(); void slotMergeThreeWay(); void slotSaveForLater(); void slotClearList(); void slotCompareWithHistoryItem(); void slotAbout(); private: QStringList m_list; QWidget* m_pParentWidget; KonqPopupMenu* m_pPopupMenu; }; #endif kdiff3-0.9.97/kdiff3plugin-QT4/CMakeLists.txt0000644000175100001440000000103211626145654020061 0ustar joachimusers########### kdiff3 plugin ############### find_package(LibKonq REQUIRED) set(kdiff3plugin_SRCS kdiff3plugin.cpp ) kde4_add_plugin(kdiff3plugin WITH_PREFIX ${kdiff3plugin_SRCS}) target_link_libraries(kdiff3plugin ${KDE4_KDECORE_LIBS} ${KDE4_KPARTS_LIBS} konq ) #${KDE4_KDECORE_LIBRARY} ${KDE4_KDEUI_LIBRARY} ${KDE4_KIO_LIBRARY} QtGui QtCore konq ) install(TARGETS kdiff3plugin DESTINATION ${PLUGIN_INSTALL_DIR} ) ########## install files ############### install( FILES kdiff3_plugin.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) kdiff3-0.9.97/kdiff3plugin-QT4/kdiff3plugin.desktop0000644000175100001440000000565511627514673021322 0ustar joachimusers[Desktop Entry] Encoding=UTF-8 Type=Service Name=Compare/Merge Files/Directories with KDiff3 Name[bg]=Сравняване/Сливане на файлове/директории с KDiff3 Name[bs]=Poredi/Spoji datoteke/Direktorije sa KDiff3 Name[ca]=Compara/fusiona fitxers/directoris amb KDiff3 Name[ca@valencia]=Compara/fusiona fitxers/directoris amb KDiff3 Name[cs]=Porovnat/spojit soubory/adresáře pomocí KDiff3 Name[da]=Sammenlign/sammenflet filer/mapper med KDiff3 Name[de]=Dateien und Ordner vergleichen und zusammenführen mit KDiff3 Name[el]=Σύγκριση/Συγχώνευση αρχείων/καταλόγων με το KDiff3 Name[en_GB]=Compare/Merge Files/Directories with KDiff3 Name[es]=Comparar/fusionar archivos/directorios con KDiff3 Name[et]=Failide/kataloogide võrdlemine/liitmine KDiff3-ga Name[fr]=Comparaison / Fusion de fichiers / de dossiers à l'aide de KDiff3 Name[ga]=Cuir Comhaid/Comhadlanna i gComparáid agus Cumaisc iad le KDiff3 Name[gl]=Compara e fusionar ficheiros e cartafoles con KDiff3 Name[hi]=केडिफ़३ के साथ तुलना करें/मिलाएं फ़ाइलें/डिरेक्ट्रीज़ Name[hne]=केडिफ३ के साथ तुलना करव/मिलाव फाइल/डिरेक्टरीज मन ल Name[hu]=Fájlok/Könyvtárat KDiff3-mal való összehasonlítása/egyesítése Name[it]=Confronta o fondi file e cartelle con KDiff3 Name[ja]=KDiff3 でファイルやディレクトリを比較/マージ Name[km]=ប្រៀបធៀប/បញ្ចូល​ឯកសារ​ចូល​គ្នា/ថត​ជាមួយ KDiff3 Name[ko]=KDiff3으로 파일과 디렉터리를 비교하거나 병합합니다 Name[ml]=ഫയലുകള്‍/അറകള്‍ താരതമ്യം ചെയ്യുക/കെഡിഫ്3 ഉപയോഗിച്ചു് ലയിപ്പിക്കുക Name[nb]=Samenlikne/flette filer/mapper med KDiff3 Name[nds]=Verglieken Tosamenföhren vun Dateien/Ornern mit KDiff3 Name[nl]=Bestanden/mappen vergelijken/samenvoegen met KDiff3 Name[nn]=Samanlikn/flett filer og mapper med KDiff3 Name[pl]=Porównaj/Scal pliki/katalogi przy pomocy KDiff3 Name[pt]=Comparar/Juntar os Ficheiros/Pastas com o KDiff3 Name[pt_BR]=Comparar/Mesclar arquivos/pastas com o KDiff3 Name[ro]=Compară/unește fișiere/directoare cu KDiff3 Name[ru]=Сравнение и объединение файлов и каталогов в KDiff3 Name[sv]=Jämför, sammanfoga filer, kataloger med Kdiff3 Name[tr]=KDiff3 ile Dosyaları/Klasörleri Karşılaştır/Birleştir Name[uk]=Порівнюйте або з’єднуйте файли або теки з KDiff3 Name[x-test]=xxCompare/Merge Files/Directories with KDiff3xx Name[zh_CN]=使用 KDiff3 比较/合并 文件/目录 Name[zh_TW]=用 KDiff3 比較/合併檔案與目錄 Icon=kdiff3 #X-KDE-ParentApp=konqueror #DocPath=konq-plugins/kdiff3plugin/index.html NoDisplay=true kdiff3-0.9.97/kdiff3plugin-QT4/Messages.sh0000644000175100001440000000015111626145654017425 0ustar joachimusers#! /usr/bin/env bash $XGETTEXT -kaliasLocal `find -name \*.cpp -o -name \*.h` -o $podir/kdiff3plugin.pot kdiff3-0.9.97/kdiff3plugin-QT4/kdiff3_plugin.desktop0000644000175100001440000000456311627514673021456 0ustar joachimusers[Desktop Entry] Encoding=UTF-8 Type=Service Name=Compare/Merge Files/Directories Name[bg]=Сравняване/Сливане на файлове/директории Name[bs]=Poredi/Spoji datoteke/Direktorije Name[ca]=Compara/fusiona fitxers/directoris Name[ca@valencia]=Compara/fusiona fitxers/directoris Name[cs]=Porovnat/spojit soubory/adresáře Name[da]=Sammenlign/sammenflet filer/mapper Name[de]=Dateien und Ordner vergleichen und zusammenführen Name[el]=Σύγκριση/Συγχώνευση αρχείων/καταλόγων Name[en_GB]=Compare/Merge Files/Directories Name[es]=Comparar/fusionar archivos/directorios Name[et]=Failide/kataloogide võrdlemine/liitmine Name[fr]=Comparaison / Fusion de fichiers / de dossiers Name[ga]=Cuir Comhaid/Comhadlanna i gComparáid agus Cumaisc iad Name[gl]=Comparar e fusionar ficheiros e cartafoles Name[hi]=तुलना करें/मिलाएं फ़ाइलें/डिरेक्ट्रीज़ Name[hne]=फाइल/डिरेक्टरीज मन ल तुलना करव / मिलाव Name[hu]=Fájlok/Könyvtárak összehasonlítása/egyesítése Name[it]=Confronta o fondi file e cartelle Name[ja]=ファイルやディレクトリを比較/マージ Name[km]=ប្រៀបធៀប/បញ្ចូល​ឯកសារ​ចូល​គ្នា/ថត Name[ko]=파일과 디렉터리를 비교하거나 병합 Name[ml]=ഫയലുകള്‍/അറകള്‍ താരതമ്യം ചെയ്യുക/ലയിപ്പിക്കുക Name[nb]=Samenlikne/flette filer/mapper Name[nds]=Verglieken/Tosamenföhren Dateien Ornern Name[nl]=Bestanden/mappen vergelijken/samenvoegen Name[nn]=Samanlikn/flett filer og mapper Name[pl]=Porównanie/Łączenie plików i katalogów Name[pt]=Comparar/Juntar os Ficheiros/Pastas Name[pt_BR]=Comparar/Mesclar arquivos/pastas Name[ro]=Compară/unește fișiere/directoare Name[ru]=Сравнение и объединение файлов и каталогов Name[sv]=Jämför, sammanfoga filer, kataloger Name[tr]=Dosyaları/Klasörleri Karşılaştır/Birleştir Name[uk]=Порівняння/З’єднання Файлів/Тек Name[x-test]=xxCompare/Merge Files/Directoriesxx Name[zh_CN]=比较/合并 文件/目录 Name[zh_TW]=比較/合併檔案與目錄 X-KDE-Library=libkdiff3plugin ServiceTypes=KonqPopupMenu/Plugin,application/octet-stream,inode/directory kdiff3-0.9.97/ChangeLog0000644000175100001440000006710112011301350014061 0ustar joachimusersVersion 0.9.97 - 2012-08-10 =========================== - Memory usage optimized for comparison of large directories. (ca. 1/5 needed) - On Windows use config file .kdiff3rc next to kdiff3.exe if exists. - In overwiev for two way diff show if only one side contains text. - Fix for Fedora by Neal Becker in src-QT4/kdiff3part.desktop. - When word wrap is active toggling line numbers now recalculates the word wrap. - Removed confusing "For compatibility ..." hint from option -qall - Fixed mouse wheel problem. (Patch by David Hay) - Change an encoding in diff text window via click on encoding label. (Patch by Alexey Kostromin) - Fix for tab-key moving focus instead of adding a tab character in MergeResultWindow. - Workaround for git on Cygwin that allows KDiff3 to find files in a Cygwin "/tmp" directory when environment variable "CYGWIN_BIN" is set. (Patch by Nigel Stewart) - Removed iostream dependency (Patch by Nigel Stewart) - Regression test framework (by Maurice van der Pot) - Documentation patch (by Burkard Lueck) - Select text in Find dialog (by Eike Sauer) - If text is selected in either input or output window use that in Find dialog. - Added default directory anti patterns ".hg" and ".git" and file anti patterns ".rej" and ".bak" for better mercurial and git integration. - Command line option --cs doesn't change the config value permanently anymore. - On KDE: Not creating a KDiff3Part anymore. - Windows (Vista or Win 7): Shell context menu in directory comparison view now again displays text. - Windows 64 bit: Diff-Ext-for-KDiff3 context menu now installed as 32 bit and 64 bit versions to allow other 32 bit programs to use it too. - Windows 64 bit specific installer. Version 0.9.96 - 2011-09-02 =========================== - KDiff3FileItemActionPlugin : Context menu that also works in dolphin (for KDE>=4.6) - Parser for preprocessor commands. (Allows single apostrophs ') - On Windows if the preprocessor command is "sed" try to use a "bin\sed.exe" next to the kdiff3.exe, if available. - Warn if conversion errors appear (Invalid characters) - Fix crash on A/B-overview (infinite recursion) - Fix clearcase temp files not deleted problem on windows - KDiff3 plugin: When launching KDiff3 konqueror isn't blocked anymore - String corrections (Frederik Schwarzer) - Fixed writing to KIO. - OS2-Port (Patch by Silvan Scherrer) - Fixed problem where destination directory would be renamed or deleted during copy operation. Now if the destination directory exists only the files inside will be copied. - In merge: Separate lines where the automatic choice would be the same but for different reasons. - Fixed some problems with huge files in directory comparison mode (>2GB) (but direct comparison is still not possible) - Fixed documentation compile errors with KDE>=4.5 - Fixed white space merge default options - Fixed regexp test tool. - Exclude printing code if Qt was compiled without printing support. - For Windows: Fixed handling of unicode characters in command line parameters. - Improved "old mac" lineendstyle handling: Break lines. - Detect encoding specified in xml header or html "meta" tag. Version 0.9.95 - 2009/03/03 =========================== - Show line end style for each file. - Updated message translations. - Fixed permissions when writing executable file. (Un*x only) - Fixed IgnorableCmdLineOptions (important for SVNs '-u'-option) - Directory merge: Error when either B or C is changed and the other is deleted. (User choice required.) - Qt-only Un*x-version looks for translations in /usr/share/locale//LC_MESSAGES/kdiff3.qm (for Debian, by Eike Sauer) - New script: po/create_qm_files: To create and install translations for Qt-only version. Version 0.9.94 - 2009/01/17 =========================== - Fix for hidden text windows with --auto-flag. - Fix for pasting clipboard truncated text if it contained characters that needed more than one byte in UTF-8 encoding. - Fix for horizontal scrolling if word wrap is enabled. - Directory tree: files hidden due to options (e.g. patterns etc.) don't affect folder equality any more. - KDE: KIO-progress dialog is now hidden. (KDiff3 has its own progress dialog.) - Directory merge: Default op for change in either B or C and delete in the other is now merge (previously copy). - Directory merge: Not preserving merge operation after reload, because it might have changed. Version 0.9.93 - 2009/01/06 =========================== - Support for KDE4 (with much porting help from Valentin Rusu) - Fix for diff_ext_for_kdiff3 (by Sergey Zorin) - Win32-Installation: SendTo-integration fixed for Vista. - Optional auto detection of line end style for saving. - Option to close on ESC (default is off) - Option to align B and C for 3 input files (default is off which is usually better for merging). Version 0.9.92 - 2007/04/15 =========================== - Windows installer now allows to install KDiff3 as Clearcase Diff and Merge Tool - Windows installer "SVN Merge tool" corrected: Not creating $AppData\Subversion\config subdir anymore. - KDE-Konqueror plugin: Launch KDiff3 from Konqueror. (Similar to Diff-Ext on Windows.) - Qt4-version - Printing crash fixed - Compilation issue for Mac fixed - Dir Rescan keeps settings for Show identical files etc. - Bugfix: Empty file and not existing file were detected as binary equal. - Temp file names use the process id in file name to allow several instances. - Suppress flicker during startup. (Don't show status info window on creation.) - New File comparison mode: Trust the size and date, but use binary comparison if date doesn't match (unsafe) - After explicitely selecting files any file of the selected may be right clicked for context menu. - Open dialog also shows current directories in directory comparison mode. - Writing a file via --auto option didn't work for relative files. (Reported by Guilhem Bichot) - New option for history merge: Max number of history entries - New option "Auto save and quit on merge without conflicts" - Directory Merge with Case sensitivity disabled: Correct destination filename chosen for merge. Version 0.9.91 - 2006/10/29 =========================== - Encoding auto detection - Fix for crash after double click below last line - Saving of maximized window-state (Patch by Robert Vock) - Separated Merge-options in own tab because "Diff and Merge"-options tab got too big. - When pasting multiple lines into openfile dialog only first line is kept - Drawing in directory view fixed. - When specifying a separate output dir then for equal files a copy operation will also be offered. - Windows specific: - Windows installer problems fixed for users without admin-rights - Fix for slow startup problem on Windows (Patch by Manfred Koehler) - New: diff-ext-for-kdiff3 - Shell extension (originally by Sergey Zorin) - Qt4-version: - Saving of merge-result didn't work. - Start external processes directly without cmd.exe-window - Rewrote everything requiring Qt3-support Version 0.9.90 - 2006/05/14 =========================== - Fixed KIO-problems of type "File exists" with tempfiles (introduced in 0.9.89) - Fix for manual alignment with 3 files which caused crash (new feature in 0.9.89) - Fix for Alt-Left caused crash for leftmost window on windows (due to changed compiler) - Use of WResizeNoErase|WRepaintNoErase instead of WNoAutoErase (fix for compiler error with Qt3.1) - Removed #include which is (currently) unneeded and required extra dependencies. - Removed "Save/Load Directory Merge State ..." in directory menu. (These aren't working yet.) - Fixed crash when used as Diff-part with KDevelop. - Preserve executable bit when overwriting an existing file. Version 0.9.89 - 2006/04/09 =========================== New features: - Version control history auto merge plus sorting - Auto merge regular expression - Splitting and joining differences for merging - Manual Diff Alignment tool - Printing of differences - Colorsettings for Dir-Colors - Dir-show identical/different/A-only/B-only/C-only files with immediate effect (instead of option "List only deltas") - Filename-edit above DiffInputWindows - Windows-Context Menu in A/B/C-columns for dir-comparison (Windows only) - Edit Menu: Select All (Ctrl-A) - New commandline options: --config filename: Select an individual config file. (Now also available for Windows and Qt-only version.) --cs config: Change one specific setting via the command line. (For settings that were previously adjustable via GUI only.) --confighelp: Show available config items and their current values. - Dircomp: "Compare/Merge explicitly selected files" (Select files/dirs by clicking icons in columns A/B/C) - User definable ignored command line options. - Ability to swap pathnames in open dialog - "Ignore"-button in error dialog when option not understood (Windows only) - Quadratical scroll speedup during selection when mouse moves out of the diff input window. Bugfixes, redesign: - Preparations for Qt4-Port + some redesign - GNU-Diff algorithm improved to be independent of line endings (needed for manual diff alignment) - Avoid restoring a window where it is almost invisible (if moved almost out of the screen area) - Go to next delta honors special "A vs. B", "A vs. C" or "B vs. C" overview when active. (Patch by Vladan Bato) - DirectoryMergeWindow: File/Antifile and DirPattern changes will update immediately without rescan. - Blue toolbar icons (for better visibility of disabled state) - Bugfix: Crash when merging and selecting "Choose A/B/C for all unsolved conflicts" and one of the solved conflicts contained no lines in chosen input. - Fix: With --auto option, GUI stays invisible if not necessary - Fixed odd ProgressDialog-behaviour when continuing after an error or abort. - Directory merge: Fixed FollowFileLinks. (Didn't work when copying a file.) - Initial position now (x=0,y=22). This solves a problem on some Macs. - Better alignment of B and C in 3-file comparison - Correctly updating the selection when scrolling via keys and mouse is pressed - Horizontal scrolling in right-to-left language caused vertical lines - fixed. Version 0.9.88 - 2005/25/02 =========================== - Fixed crash that occurred in Directory Comparison mode "Full-Analysis". - Fix for Windows: Didn't save encoding correctly. - Many translations updated. Version 0.9.87 - 2005/30/01 =========================== - Unicode16 and UTF8 support (Internal data format is now QString (Unicode16). Conversion during save and load.) - Directory "Full Analysis": Equality-Coloring for files with only whitespace differences. (Michael Denio) - Support for right to left languages. - In MergeResultWindow show "" for whitespace-only conflicts - Statusbar shows the number of remaining conflicts and whitespace conflicts. - Go Next/Prev Difference/Conflict now have improved tooltips informing about "Show White Space"-disabled-behaviour. Version 0.9.86 - 2004/06/14 =========================== - Double click on any file in directory merge would close the directory merge window. (Regression in 0.9.85) Version 0.9.85 - 2004/06/14 =========================== - When solving a conflict KDiff3 reports the number of remaining unsolved conflicts in the status bar. Bugfixes: - Fix for MergeResultWindow-contextmenu: All items were disabled always. (new in 0.9.84) - Fix for problem when opening files specified relative to current directory. (new in 0.9.84, qt-only-version) - Fix for compilation with older gcc (2.9x) - Several Word-wrap problems fixed: - Find string with word wrap active didn't work if found text was not in first wrap-line. - overview-position was not updated when toggling word wrap - horizontal scrollbar was not updated when toggling word wrap - current selection was lost when toggling word wrap - selecting a conflict in the diff-text-window didn't work right with word wrap. - Qt-only: Bold attribute for fonts was not persistent - Qt-only: Toolbar position was not persistent - Qt-only: Language-choice shows also the full language name. - Cursor and windows-boundary-lines were always black instead of having the foreground color - Starting KDiff3 with two not existing files showed a dialog saying that files are binary equal. - Errors while starting a directory comparison now also reopens the open-dialog. - Speedup during directory comparison by avoiding unnecessary redraws. (These always creep in again :-() - On KDE: When resetting to default options (or first start) now the default KDE-fixed font will be used. - Mergeresultwindow: Improved behaviour after automatic merge operation. Version 0.9.84 - 2004/05/29 ============================ New Features: - Word Wrap for DiffTextWindow - Directory-Comparison: Option "Full Analysis" allows to show the number of solved vs. unsolved conflicts or deltas vs. whitespace-changes in the directory tree. - Diff-Menu for Diff-view specific entries - Docs now contain a new chapter for uses of preprocessor and line-matching-preprocessor. - Added several credits which now are also visible in the Qt-only version. - The Qt-only version now also shows all command-line options. Under windows a dialog shows them. - Command line options -u and -L for Subversion-support. - Command line options --L1/2/3 for specifying alias names. - In the Qt-only-version the user-interface-language can be set via the regional-settings (only effective after a restart). - ProgressDialog redesign for recursive use. - Overview now allows to show the delta between two other files in triplediff-mode. - Option to ignore case which treats case-changes like white space (instead of conversion to upcase). Bugfixes: - Dir-Comp: When one file exists, but the other doesn't then instead the latest used other file was displayed. - Open dialog: When previously a file C was used, but should be empty now, it reappeared unbidden. - Several bugs for 64-bit systems fixed. - Fixed crash when one file ended with a newline and the other did not. - Windows: Case insensitive filename-pattern matching. - Corrected behaviour for files with size 0. - Fix for crash due to a race-condition (Patch by Eike Sauer) - Windows: Scrolling didn't work right when another window was in front. - Mergeresultwindow didn't show correct position when starting a second or later merge. - Fix for problem where sometimes the A/B/C-buttons were in wrong state. - Pasting from selection via the middle mousebutton. Version 0.9.83 - 2004/03/06 =========================== - Reading directorys fixed for Win95/98 - Caseinsensitive filename matching for windows. - Autocopy to selection for systems that support this. (Patch by Stefan Partheymueller) - Drawing during recalc suppressed in merge result editor. - Cursor could go beyond last line in merge result editor. (Corrected NrOfLine-counting.) - Windows: Start with invalid cmd-line-options brings up a messagebox with the list of options. - Corrected encoding when copying to or pasting from clipboard. - Corrected char-by-char-diff at beginning of line. ("012345 12345 xyz" <-> "012345 xyz") - Warning when merging with preprocessor or upcase-conversion enabled. - Rewrite of preprocessing code should fix several problems. E.g.: - Ignore C/C++-comments only worked with a preprocessor active. - Preprocessor output now is input of line-matching preprocessor. - Paste to diff-window, didn't work if LMPP or Ignore C/C++-Comments was set. Version 0.9.82 - 2004/02/02 =========================== - DirectoryMerge: Running merge op for last item in a folder, performed the merge op for all following items in following folders. (Possible data loss!) - Fix: Preprocessors and "Ignore Comments" didn't work at the same time. - Fix: Preprocessors crashed with remote files. - Open-Dialog: When either input is changed, then reset the output to be empty. (To avoid accidental overwrites.) - Icon for "Highlight white space differences." - Editor-Option: Line End Style for saving: Dos/Windows "\r\n" vs. Unix "\n" - Merge output editor: Corrected wrong encoding for output-filename and user-typed characters. - Speedup for reading directories under Windows. - Enhanced progress dialog responsiveness during local file copy. - Fix for non-KDE-version: No URL-encoding when dropping files in open dialog. Version 0.9.81 - 2004/01/08 =========================== - Allow to compile with --enable-final - Bugfix for 3 file-compare (and A or B don't exist, crashed) - Bugfix for crash when second directory is merged - Some keyboard-shortcuts for selection of merge-operation didn't work correctly. - Shortcuts Ctrl-1/2/3 are possible in textmergewindow and in dirmergewindow, depending on the focus. - First steps towards internationalisation - Manpage doc/en/kdiff3.1 by Eike Sauer (for Debian) - Directory rescan shortcut SHIFT-F5 Version 0.9.80 - 2003/12/08 =========================== New Text Diff/Merge Features: - Now using GNU-diff algorithms internally. (Option "External Diff" removed.) - Option for treating C/C++ comments as whitespace during diff. - Bugfix for locale character encoding (+ new option "Use string encoding") - Option for suppressing highlighting in white-space changes. (Also suppresses highlighting in comments and numbers when the respective options are active.) - Merge-menu: Choose A/B/C for all unsolved conflicts. Choose A/B/C for all unsolved whitespace conflicts. - Options to automatically choose a certain source for whitespace conflicts. - Shorcut F5 now used to reload the current file. New Directory-Comparison/Merge Features: - Option to trust filesize. (Some directory services don't copy the date/time correctly.) - Shortcut F7 now starts complete directory merge (previously F5). - Do the selected merge operation for the selected file/dir only "Run Operation For Current Item" (F6). - Shortcuts for selecting the merge operation for the selected item. Ctrl-1/2/3/4/Del select A/B/C/Merge/Delete respectively. Other Improvements: - Several i18n-corrections (by Stephan Binner) - Bugfix for option CVS-ignore: Didn't work correctly in subdirectories. - Bugfix for remote operations: Operation can now be aborted, when KIO-slaves doesn't respond. - Cancel-Button in progress bar. - Default diff-view now again side by side instead of one above the other. Version 0.9.71 - 2003/10/17 =========================== - Windows-Installer by Sebastien Fricker. - Bugfixes for Windows. (Problems with setFont() in paintEvent().) - Default font for Windows now "Courier New" (instead of Courier) - Fix for compilation with gcc 2.95 - Support for Ctrl-Tab under Windows. - Fix for finding documentation. - Fix for problem with directory-sync-mode (new in 0.9.70). - Fix for several subsequent CR-characters in input file. Version 0.9.70 - 2003/09/28 =========================== - Transparent access to URLs via KIO (KDE only): Compare files and directories on ftp, fish, smb, tar etc. ressources. - Workaround for a Win32-bug (Crashed sometimes during selections) - When the merge flag is selected in the open dialog, the directory-tool always starts a merge by default for each file. Without the flag only a diff will be started by default. - Immediately showing progress bar in dir scan. - Showing progress bar for file comparison too. - Directory-menu: Fold/Unfold all subdirs - Bugfix for 3-way auto-merge: A line deleted from the base in B and C resulted in a empty line instead of being completely removed. - Improved locale support - KDiff3 is now a KPart - in KDevelop3 it can be used to compare the current text with the last saved version, or the current version on disk with the last cvs version. - in Konqueror it can be used to look at a unified *.patch-file if one complete version is available too. - Documentation is now in docbook-format. - "Toggle Split Orientation" for Diff-Input windows. (Good for long lines.) - When "Dir and Text Split-Screen-View" is off: Now "Focus Next/Prev Window" also toggles between dir and text-windows. Selecting a file via double click switches to text-screen. - KDiff3 displays a warning when trying to read a dir without the permission. - Directory-Diff-Option "Use CVS-Ignore" to ignore files like CVS does. - Displaying a status message at the end of the directory-comparison. - Cursor in MergeResultWindow is automatically placed at current difference when a jump occurred. (But not when something was selected.) - Fix for cursor blinking in the topline of the MergeResultWindow. Version 0.9.61 - 2003/06/07 =========================== - Compilation problem fixed. - Directory merge: Preserving file attributes and times during copy. (now also for Win32) - Crash fixed, when directory comparison from the command-line was started. Version 0.9.60 - 2003/06/01 =========================== New features: - New ways to select input for the diff window: - Pasting clipboard text into a diff window. - Drag and drop a file from a filemanager (e.g. konqueror) onto a diff window. - Drag and drop text from an editor (e.g. kate) onto a diff window. Reanalysis starts immediately if no merge is in progress. (This should help you to compare similar parts in the same file.) - New/Deleted white lines are now also considered as white deltas. - Configurable keyboard shortcuts for most actions (KDE version only). - The overview now also distinguishes whitespace deltas. New preprocessor options: - You can now define your own external Preprocessor and LineMatchingPreprocessor: - "Convert to upper case", - "Ignore numbers" Fixed bugs: - Directory merge: Preserving file attributes and times during copy. (not for Win32 yet) Source-tree-structure: - Switch to KDevelop3 (Gideon): Renamed subdir "kdiff3" to "src". - xpm-files in xpm-subdirectory. Version 0.9.51 - 2003/04/14 =========================== - Compilation fix for gcc 2.95. Version 0.9.50 - 2003/03/30 =========================== Fixed bugs: - Auto-Advance setting was lost when entering the settings-dialog. - Windows specific: Keys with AltGr-Combination didn't work. - Windows 95/98/ME: Fixed crash when KDiff3 is called used without parameters, and corrected support for external diff. New Features: - Search-function: Search for a string in all open text windows. - Special background colors for current region. - Button to toggle showing of whitespace in differences. - Buttons to go to next/prev unsolved (!) conflict. - While auto-advance waits, no more choices are allowed. - New setting: Auto-advance-delay. (Note that with delay 0 fast clicks might be detected as double clicks and the second click does nothing. My advice: Prefer the keyboard-shortcuts Ctrl-1/2/3) - Functions to Show/Hide Diff Window A, B or C. The other windows then have more space. - Merge editor: The right mouse button selects the current region and lets you choose A, B or C via a popup menu. - Commandline option --auto: No GUI if all conflicts are auto-solvable. - When equal files are compared, then a message box informs you. - Merge current file: When comparing two or three files, the merge can be started with a single click. - Option dialog: Warning for "Defaults" added, because it resets all options. - A warning is given, when the user tries to merge binary files. (i.e. files that contain '\0'-bytes) Changed behaviour: - 3 file automerge: When for a line B==C (and A!=B) then C will be selected. (In older versions this was a conflict. I was convinced that this is no problem.) - Auto-Advance now jumps to next unsolved (!) conflict. - On 256-color-displays KDiff3 uses them. (Previously KDiff3 only used 16 colors.) - On 16-color-displays the Defaults-button in the options dialog selects special colors. Version 0.941 - 2003/02/09 ========================== Fixed bugs: - Qt-only-version: Compile problem corrected. - Documentation: Formatting for tables corrected. Version 0.94 - 2003/02/09 ========================= New features: - Option to use external GNU-diff for line matching. (Sometimes GNU-diff is better, sometimes not: You may choose now.) - In diff-windows a tooltip shows the full path if you move the mouse on the filename. - Speedup of directory-merge operations without user interaction. (Not every item in the tree is made visible anymore. This took too long.) - When opening a file for comparison or merge KDiff3 immediately shows the first difference. - "Go To Top/Bottom"-action have been changed to "Go To First/Last Delta". - Font-Option "Italic For Deltas" added. - Many icons and actions will only be enabled, when the operation is possible. - Icon for merge of current file in directory merge mode added. - New action "Go to Current Delta". - Conflicts where some lines contained only-white-space-changes are now separated from other non-white-space-conflicts. - Experimental: Use as replacement for ClearCase-cleardiffmrg.exe (under Windows only). See main.cpp for details. Fixed bugs: - If files were different, but had the same dates, the "not existant"-icon was shown for one file. Now a error message will be shown if the option "Copy newer instead of merging" is used. - Documentation: Section "The Operation Column" corrected. - Qt-only-version: Fontsize wasn't correctly restored. - Keyboard accelerators didn't work for ToggleActions. Version 0.931 - 2003/01/19 ========================== Fix for compilation problems with gcc version < 3. Version 0.93 - 2003/01/16 ========================= New features: - Directory comparison and merge. (More than 3000 new lines of code only here!!!) - Open-Dialog: Filename specification: If no previous filename is there then start directory is taken from another file. - Message about number of found and automatically solved conflicts. - Support for wheelmouse based scrolling. - New option in Diff-tab: Preserve Carriage Return Characters Fixed bugs: - Save button disabled until all conflicts are solved. - Copy-operation conserves conflict messages "". - Paste operation created pseudo conflicts when the clipboard contained empty lines. - W95/98/ME specific program crash removed. Version 0.92 - 2002/11/04 ========================= Severe bug corrected: - Merge menu: Choose A/B/C Everywhere sometimes lost data. (introduced in 0.9) Version 0.91 - 2002/11/03 ========================= Speed improvements for very big/complicated files: - Faster analysis because of limited search range (can be adjusted). - Faster scrolling and editor behaviour. Fixed bugs: - Compilation problem with gcc 3.2 fixed. - When comparing two lines, matching spaces often were undetected. - Merge editor appended extra empty line when saving. - Sometimes the next diff/conflict wasn't made visible. - The Auto-Advance setting is saved now. - When doing a merge the application now has modified-state, even without further input. (The old method wasn't safe.) - File selection now always in directory of respective file. Version 0.9 - 2002/10/16 ======================== New features: - Qt-only support. Allows compilation under KDE2, Gnome, Mac, Windows, ... Note that KDE3 still gets special treatment. - For Mergers: Auto-Advance after selection, Choose A/B/C everwhere, ... - Commandline: If files with same name in different directories are compared, only the first parameter needs the filename. - Shift-Del, Ctrl-Ins, Shift-Ins supported for Cut/Copy/Paste Fixed bugs: - Make failed on some systems because of missing "minmax.h". - Files where opened for reading, but not closed afterwards. - Vertical scrollbar sometimes didn't work correctly. Version 0.81 - 2002/08/18 ========================= New features: - Now KDE3 is also supported. Previously only KDE2 was supported. - Navigation via click into the overview column now supported. Fixed bugs: - Some input files caused a crash in the diff-algorithm. - The meaning of option "Ignore trivial matches" was inverted. - When selecting a text in one window, this deselects any previously active selection in the same or another window. Version 0.8 - 2002/07/28 ======================== This is the first version to be released. kdiff3-0.9.97/src-QT4/0000755000175100001440000000000012011572153013512 5ustar joachimuserskdiff3-0.9.97/src-QT4/mergeresultwindow.cpp0000644000175100001440000031024012010274323020001 0ustar joachimusers/*************************************************************************** mergeresultwindow.cpp - description ------------------- begin : Sun Apr 14 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "mergeresultwindow.h" #include "options.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //Added by qt3to4: #include #include #include #include #include #include #include #include #include #include #include #include int g_bAutoSolve = true; #undef leftInfoWidth #define leftInfoWidth 3 MergeResultWindow::MergeResultWindow( QWidget* pParent, Options* pOptions, QStatusBar* pStatusBar ) : QWidget( pParent ) { setObjectName( "MergeResultWindow" ); setFocusPolicy( Qt::ClickFocus ); m_firstLine = 0; m_firstColumn = 0; m_nofColumns = 0; m_nofLines = 0; m_totalSize = 0; m_bMyUpdate = false; m_bInsertMode = true; m_scrollDeltaX = 0; m_scrollDeltaY = 0; m_bModified = false; m_eOverviewMode=Overview::eOMNormal; m_pldA = 0; m_pldB = 0; m_pldC = 0; m_sizeA = 0; m_sizeB = 0; m_sizeC = 0; m_pDiff3LineList = 0; m_pTotalDiffStatus = 0; m_pStatusBar = pStatusBar; m_pOptions = pOptions; m_bPaintingAllowed = false; m_delayedDrawTimer = 0; m_cursorXPos=0; m_cursorOldXPos=0; m_cursorYPos=0; m_bCursorOn = true; m_bCursorUpdate = false; connect( &m_cursorTimer, SIGNAL(timeout()), this, SLOT( slotCursorUpdate() ) ); m_cursorTimer.setSingleShot(true); m_cursorTimer.start( 500 /*ms*/ ); m_selection.reset(); setMinimumSize( QSize(20,20) ); setFont( m_pOptions->m_font ); } void MergeResultWindow::init( const LineData* pLineDataA, int sizeA, const LineData* pLineDataB, int sizeB, const LineData* pLineDataC, int sizeC, const Diff3LineList* pDiff3LineList, TotalDiffStatus* pTotalDiffStatus ) { m_firstLine = 0; m_firstColumn = 0; m_nofColumns = 0; m_nofLines = 0; m_bMyUpdate = false; m_bInsertMode = true; m_scrollDeltaX = 0; m_scrollDeltaY = 0; setModified( false ); m_pldA = pLineDataA; m_pldB = pLineDataB; m_pldC = pLineDataC; m_sizeA = sizeA; m_sizeB = sizeB; m_sizeC = sizeC; m_pDiff3LineList = pDiff3LineList; m_pTotalDiffStatus = pTotalDiffStatus; m_selection.reset(); m_cursorXPos=0; m_cursorOldXPos=0; m_cursorYPos=0; merge( g_bAutoSolve, -1 ); g_bAutoSolve = true; update(); updateSourceMask(); int wsc; int nofUnsolved = getNrOfUnsolvedConflicts(&wsc); if (m_pStatusBar) m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" ,nofUnsolved,wsc) ); } void MergeResultWindow::reset() { m_pDiff3LineList = 0; m_pTotalDiffStatus = 0; m_pldA = 0; m_pldB = 0; m_pldC = 0; } // Calculate the merge information for the given Diff3Line. // Results will be stored in mergeDetails, bConflict, bLineRemoved and src. void mergeOneLine( const Diff3Line& d, e_MergeDetails& mergeDetails, bool& bConflict, bool& bLineRemoved, int& src, bool bTwoInputs ) { mergeDetails = eDefault; bConflict = false; bLineRemoved = false; src = 0; if ( bTwoInputs ) // Only two input files { if ( d.lineA!=-1 && d.lineB!=-1 ) { if ( d.pFineAB == 0 ) { mergeDetails = eNoChange; src = A; } else { mergeDetails = eBChanged; bConflict = true; } } else { if ( d.lineA!=-1 && d.lineB==-1 ) { mergeDetails = eBDeleted; bConflict = true; } else if ( d.lineA==-1 && d.lineB!=-1 ) { mergeDetails = eBDeleted; bConflict = true; } } return; } // A is base. if ( d.lineA!=-1 && d.lineB!=-1 && d.lineC!=-1 ) { if ( d.pFineAB == 0 && d.pFineBC == 0 && d.pFineCA == 0) { mergeDetails = eNoChange; src = A; } else if( d.pFineAB == 0 && d.pFineBC != 0 && d.pFineCA != 0 ) { mergeDetails = eCChanged; src = C; } else if( d.pFineAB != 0 && d.pFineBC != 0 && d.pFineCA == 0 ) { mergeDetails = eBChanged; src = B; } else if( d.pFineAB != 0 && d.pFineBC == 0 && d.pFineCA != 0 ) { mergeDetails = eBCChangedAndEqual; src = C; } else if( d.pFineAB != 0 && d.pFineBC != 0 && d.pFineCA != 0 ) { mergeDetails = eBCChanged; bConflict = true; } else assert(false); } else if ( d.lineA!=-1 && d.lineB!=-1 && d.lineC==-1 ) { if( d.pFineAB != 0 ) { mergeDetails = eBChanged_CDeleted; bConflict = true; } else { mergeDetails = eCDeleted; bLineRemoved = true; src = C; } } else if ( d.lineA!=-1 && d.lineB==-1 && d.lineC!=-1 ) { if( d.pFineCA != 0 ) { mergeDetails = eCChanged_BDeleted; bConflict = true; } else { mergeDetails = eBDeleted; bLineRemoved = true; src = B; } } else if ( d.lineA==-1 && d.lineB!=-1 && d.lineC!=-1 ) { if( d.pFineBC != 0 ) { mergeDetails = eBCAdded; bConflict = true; } else // B==C { mergeDetails = eBCAddedAndEqual; src = C; } } else if ( d.lineA==-1 && d.lineB==-1 && d.lineC!= -1 ) { mergeDetails = eCAdded; src = C; } else if ( d.lineA==-1 && d.lineB!=-1 && d.lineC== -1 ) { mergeDetails = eBAdded; src = B; } else if ( d.lineA!=-1 && d.lineB==-1 && d.lineC==-1 ) { mergeDetails = eBCDeleted; bLineRemoved = true; src = C; } else assert(false); } bool MergeResultWindow::sameKindCheck( const MergeLine& ml1, const MergeLine& ml2 ) { if ( ml1.bConflict && ml2.bConflict ) { // Both lines have conflicts: If one is only a white space conflict and // the other one is a real conflict, then this line returns false. return ml1.id3l->bAEqC == ml2.id3l->bAEqC && ml1.id3l->bAEqB == ml2.id3l->bAEqB; } else return ( ( !ml1.bConflict && !ml2.bConflict && ml1.bDelta && ml2.bDelta && ml1.srcSelect == ml2.srcSelect && (ml1.mergeDetails==ml2.mergeDetails || (ml1.mergeDetails!=eBCAddedAndEqual && ml2.mergeDetails!=eBCAddedAndEqual) ) ) || (!ml1.bDelta && !ml2.bDelta) ); } void MergeResultWindow::merge(bool bAutoSolve, int defaultSelector, bool bConflictsOnly, bool bWhiteSpaceOnly ) { if ( !bConflictsOnly ) { if(m_bModified) { int result = KMessageBox::warningYesNo(this, i18n("The output has been modified.\n" "If you continue your changes will be lost."), i18n("Warning"), KStandardGuiItem::cont(), KStandardGuiItem::cancel()); if ( result==KMessageBox::No ) return; } m_mergeLineList.clear(); m_totalSize = 0; int lineIdx = 0; Diff3LineList::const_iterator it; for( it=m_pDiff3LineList->begin(); it!=m_pDiff3LineList->end(); ++it, ++lineIdx ) { const Diff3Line& d = *it; MergeLine ml; bool bLineRemoved; mergeOneLine( d, ml.mergeDetails, ml.bConflict, bLineRemoved, ml.srcSelect, m_pldC==0 ); // Automatic solving for only whitespace changes. if ( ml.bConflict && ( (m_pldC==0 && (d.bAEqB || (d.bWhiteLineA && d.bWhiteLineB))) || (m_pldC!=0 && ((d.bAEqB && d.bAEqC) || (d.bWhiteLineA && d.bWhiteLineB && d.bWhiteLineC) ) ) ) ) { ml.bWhiteSpaceConflict = true; } ml.d3lLineIdx = lineIdx; ml.bDelta = ml.srcSelect != A; ml.id3l = it; ml.srcRangeLength = 1; MergeLine* back = m_mergeLineList.empty() ? 0 : &m_mergeLineList.back(); bool bSame = back!=0 && sameKindCheck( ml, *back ); if( bSame ) { ++back->srcRangeLength; if ( back->bWhiteSpaceConflict && !ml.bWhiteSpaceConflict ) back->bWhiteSpaceConflict = false; } else { ml.mergeEditLineList.setTotalSizePtr(&m_totalSize); m_mergeLineList.push_back( ml ); } if ( ! ml.bConflict ) { MergeLine& tmpBack = m_mergeLineList.back(); MergeEditLine mel(ml.id3l); mel.setSource( ml.srcSelect, bLineRemoved ); tmpBack.mergeEditLineList.push_back(mel); } else if ( back==0 || ! back->bConflict || !bSame ) { MergeLine& tmpBack = m_mergeLineList.back(); MergeEditLine mel(ml.id3l); mel.setConflict(); tmpBack.mergeEditLineList.push_back(mel); } } } bool bSolveWhiteSpaceConflicts = false; if ( bAutoSolve ) // when true, then the other params are not used and we can change them here. (see all invocations of merge()) { if ( m_pldC==0 && m_pOptions->m_whiteSpace2FileMergeDefault != 0 ) // Only two inputs { defaultSelector = m_pOptions->m_whiteSpace2FileMergeDefault; bWhiteSpaceOnly = true; bSolveWhiteSpaceConflicts = true; } else if ( m_pldC!=0 && m_pOptions->m_whiteSpace3FileMergeDefault != 0 ) { defaultSelector = m_pOptions->m_whiteSpace3FileMergeDefault; bWhiteSpaceOnly = true; bSolveWhiteSpaceConflicts = true; } } if ( !bAutoSolve || bSolveWhiteSpaceConflicts ) { // Change all auto selections MergeLineList::iterator mlIt; for( mlIt=m_mergeLineList.begin(); mlIt!=m_mergeLineList.end(); ++mlIt ) { MergeLine& ml = *mlIt; bool bConflict = ml.mergeEditLineList.empty() || ml.mergeEditLineList.begin()->isConflict(); if ( ml.bDelta && ( !bConflictsOnly || bConflict ) && (!bWhiteSpaceOnly || ml.bWhiteSpaceConflict )) { ml.mergeEditLineList.clear(); if ( defaultSelector==-1 && ml.bDelta ) { MergeEditLine mel(ml.id3l);; mel.setConflict(); ml.bConflict = true; ml.mergeEditLineList.push_back(mel); } else { Diff3LineList::const_iterator d3llit=ml.id3l; int j; for( j=0; jlineA : defaultSelector==2 ? d3llit->lineB : defaultSelector==3 ? d3llit->lineC : -1; if ( srcLine != -1 ) { ml.mergeEditLineList.push_back(mel); } ++d3llit; } if ( ml.mergeEditLineList.empty() ) // Make a line nevertheless { MergeEditLine mel(ml.id3l); mel.setRemoved( defaultSelector ); ml.mergeEditLineList.push_back(mel); } } } } } MergeLineList::iterator mlIt; for( mlIt=m_mergeLineList.begin(); mlIt!=m_mergeLineList.end(); ++mlIt ) { MergeLine& ml = *mlIt; // Remove all lines that are empty, because no src lines are there. int oldSrcLine = -1; int oldSrc = -1; MergeEditLineList::iterator melIt; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ) { MergeEditLine& mel = *melIt; int melsrc = mel.src(); int srcLine = mel.isRemoved() ? -1 : melsrc==1 ? mel.id3l()->lineA : melsrc==2 ? mel.id3l()->lineB : melsrc==3 ? mel.id3l()->lineC : -1; // At least one line remains because oldSrc != melsrc for first line in list // Other empty lines will be removed if ( srcLine == -1 && oldSrcLine==-1 && oldSrc == melsrc ) melIt = ml.mergeEditLineList.erase( melIt ); else ++melIt; oldSrcLine = srcLine; oldSrc = melsrc; } } if ( bAutoSolve && !bConflictsOnly ) { if ( m_pOptions->m_bRunHistoryAutoMergeOnMergeStart ) slotMergeHistory(); if ( m_pOptions->m_bRunRegExpAutoMergeOnMergeStart ) slotRegExpAutoMerge(); if ( m_pldC != 0 && ! doRelevantChangesExist() ) emit noRelevantChangesDetected(); } int nrOfSolvedConflicts = 0; int nrOfUnsolvedConflicts = 0; int nrOfWhiteSpaceConflicts = 0; MergeLineList::iterator i; for ( i = m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { if ( i->bConflict ) ++nrOfUnsolvedConflicts; else if ( i->bDelta ) ++nrOfSolvedConflicts; if ( i->bWhiteSpaceConflict ) ++nrOfWhiteSpaceConflicts; } m_pTotalDiffStatus->nofUnsolvedConflicts = nrOfUnsolvedConflicts; m_pTotalDiffStatus->nofSolvedConflicts = nrOfSolvedConflicts; m_pTotalDiffStatus->nofWhitespaceConflicts = nrOfWhiteSpaceConflicts; m_cursorXPos=0; m_cursorOldXPos=0; m_cursorYPos=0; //m_firstLine = 0; // Must not set line/column without scrolling there //m_firstColumn = 0; setModified(false); m_currentMergeLineIt = m_mergeLineList.begin(); slotGoTop(); updateAvailabilities(); update(); } void MergeResultWindow::setFirstLine(int firstLine) { m_firstLine = max2(0,firstLine); update(); } void MergeResultWindow::setFirstColumn(int firstCol) { m_firstColumn = max2(0,firstCol); update(); } int MergeResultWindow::getNofColumns() { return m_nofColumns; } int MergeResultWindow::getNofLines() { return m_totalSize; } int MergeResultWindow::getNofVisibleColumns() { QFontMetrics fm = fontMetrics(); return width()/fm.width('W')-4; } int MergeResultWindow::getNofVisibleLines() { QFontMetrics fm = fontMetrics(); return (height()-3)/fm.height()-2; } void MergeResultWindow::resizeEvent( QResizeEvent* e ) { QWidget::resizeEvent(e); emit resizeSignal(); } Overview::e_OverviewMode MergeResultWindow::getOverviewMode() { return m_eOverviewMode; } void MergeResultWindow::setOverviewMode( Overview::e_OverviewMode eOverviewMode ) { m_eOverviewMode = eOverviewMode; } // Check whether we should ignore current delta when moving to next/previous delta bool MergeResultWindow::checkOverviewIgnore(MergeLineList::iterator &i) { if (m_eOverviewMode == Overview::eOMNormal) return false; if (m_eOverviewMode == Overview::eOMAvsB) return i->mergeDetails == eCAdded || i->mergeDetails == eCDeleted || i->mergeDetails == eCChanged; if (m_eOverviewMode == Overview::eOMAvsC) return i->mergeDetails == eBAdded || i->mergeDetails == eBDeleted || i->mergeDetails == eBChanged; if (m_eOverviewMode == Overview::eOMBvsC) return i->mergeDetails == eBCAddedAndEqual || i->mergeDetails == eBCDeleted || i->mergeDetails == eBCChangedAndEqual; return false; } // Go to prev/next delta/conflict or first/last delta. void MergeResultWindow::go( e_Direction eDir, e_EndPoint eEndPoint ) { assert( eDir==eUp || eDir==eDown ); MergeLineList::iterator i = m_currentMergeLineIt; bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace; if( eEndPoint==eEnd ) { if (eDir==eUp) i = m_mergeLineList.begin(); // first mergeline else i = --m_mergeLineList.end(); // last mergeline while ( isItAtEnd(eDir==eUp, i) && ! i->bDelta ) { if ( eDir==eUp ) ++i; // search downwards else --i; // search upwards } } else if ( eEndPoint == eDelta && isItAtEnd(eDir!=eUp, i) ) { do { if ( eDir==eUp ) --i; else ++i; } while ( isItAtEnd(eDir!=eUp, i) && ( i->bDelta == false || checkOverviewIgnore(i) || (bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) ); } else if ( eEndPoint == eConflict && isItAtEnd(eDir!=eUp, i) ) { do { if ( eDir==eUp ) --i; else ++i; } while ( isItAtEnd(eDir!=eUp, i) && (i->bConflict == false || (bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) ); } else if ( isItAtEnd(eDir!=eUp, i) && eEndPoint == eUnsolvedConflict ) { do { if ( eDir==eUp ) --i; else ++i; } while ( isItAtEnd(eDir!=eUp, i) && ! i->mergeEditLineList.begin()->isConflict() ); } if ( isVisible() ) setFocus(); setFastSelector( i ); } bool MergeResultWindow::isDeltaAboveCurrent() { bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace; if (m_mergeLineList.empty()) return false; MergeLineList::iterator i = m_currentMergeLineIt; if (i == m_mergeLineList.begin()) return false; do { --i; if ( i->bDelta && !checkOverviewIgnore(i) && !( bSkipWhiteConflicts && i->bWhiteSpaceConflict ) ) return true; } while (i!=m_mergeLineList.begin()); return false; } bool MergeResultWindow::isDeltaBelowCurrent() { bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace; if (m_mergeLineList.empty()) return false; MergeLineList::iterator i = m_currentMergeLineIt; if (i!=m_mergeLineList.end()) { ++i; for( ; i!=m_mergeLineList.end(); ++i ) { if ( i->bDelta && !checkOverviewIgnore(i) && !( bSkipWhiteConflicts && i->bWhiteSpaceConflict ) ) return true; } } return false; } bool MergeResultWindow::isConflictAboveCurrent() { if (m_mergeLineList.empty()) return false; MergeLineList::iterator i = m_currentMergeLineIt; if (i == m_mergeLineList.begin()) return false; bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace; do { --i; if ( i->bConflict && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) return true; } while (i!=m_mergeLineList.begin()); return false; } bool MergeResultWindow::isConflictBelowCurrent() { MergeLineList::iterator i = m_currentMergeLineIt; if (m_mergeLineList.empty()) return false; bool bSkipWhiteConflicts = ! m_pOptions->m_bShowWhiteSpace; if (i!=m_mergeLineList.end()) { ++i; for( ; i!=m_mergeLineList.end(); ++i ) { if ( i->bConflict && !(bSkipWhiteConflicts && i->bWhiteSpaceConflict) ) return true; } } return false; } bool MergeResultWindow::isUnsolvedConflictAtCurrent() { if (m_mergeLineList.empty()) return false; MergeLineList::iterator i = m_currentMergeLineIt; return i->mergeEditLineList.begin()->isConflict(); } bool MergeResultWindow::isUnsolvedConflictAboveCurrent() { if (m_mergeLineList.empty()) return false; MergeLineList::iterator i = m_currentMergeLineIt; if (i == m_mergeLineList.begin()) return false; do { --i; if ( i->mergeEditLineList.begin()->isConflict() ) return true; } while (i!=m_mergeLineList.begin()); return false; } bool MergeResultWindow::isUnsolvedConflictBelowCurrent() { MergeLineList::iterator i = m_currentMergeLineIt; if (m_mergeLineList.empty()) return false; if (i!=m_mergeLineList.end()) { ++i; for( ; i!=m_mergeLineList.end(); ++i ) { if ( i->mergeEditLineList.begin()->isConflict() ) return true; } } return false; } void MergeResultWindow::slotGoTop() { go( eUp, eEnd ); } void MergeResultWindow::slotGoCurrent() { setFastSelector( m_currentMergeLineIt ); } void MergeResultWindow::slotGoBottom() { go( eDown, eEnd ); } void MergeResultWindow::slotGoPrevDelta() { go( eUp, eDelta ); } void MergeResultWindow::slotGoNextDelta() { go( eDown, eDelta ); } void MergeResultWindow::slotGoPrevConflict() { go( eUp, eConflict ); } void MergeResultWindow::slotGoNextConflict() { go( eDown, eConflict ); } void MergeResultWindow::slotGoPrevUnsolvedConflict() { go( eUp, eUnsolvedConflict ); } void MergeResultWindow::slotGoNextUnsolvedConflict() { go( eDown, eUnsolvedConflict ); } /** The line is given as a index in the Diff3LineList. The function calculates the corresponding iterator. */ void MergeResultWindow::slotSetFastSelectorLine( int line ) { MergeLineList::iterator i; for ( i = m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { if ( line>=i->d3lLineIdx && line < i->d3lLineIdx + i->srcRangeLength ) { //if ( i->bDelta ) { setFastSelector( i ); } break; } } } int MergeResultWindow::getNrOfUnsolvedConflicts( int* pNrOfWhiteSpaceConflicts ) { int nrOfUnsolvedConflicts = 0; if (pNrOfWhiteSpaceConflicts!=0) *pNrOfWhiteSpaceConflicts = 0; MergeLineList::iterator mlIt = m_mergeLineList.begin(); for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; MergeEditLineList::iterator melIt = ml.mergeEditLineList.begin(); if ( melIt->isConflict() ) { ++nrOfUnsolvedConflicts; if ( ml.bWhiteSpaceConflict && pNrOfWhiteSpaceConflicts!=0 ) ++ *pNrOfWhiteSpaceConflicts; } } return nrOfUnsolvedConflicts; } void MergeResultWindow::showNrOfConflicts() { if (!m_pOptions->m_bShowInfoDialogs) return; int nrOfConflicts = 0; MergeLineList::iterator i; for ( i = m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { if ( i->bConflict || i->bDelta ) ++nrOfConflicts; } QString totalInfo; if ( m_pTotalDiffStatus->bBinaryAEqB && m_pTotalDiffStatus->bBinaryAEqC ) totalInfo += i18n("All input files are binary equal."); else if ( m_pTotalDiffStatus->bTextAEqB && m_pTotalDiffStatus->bTextAEqC ) totalInfo += i18n("All input files contain the same text."); else { if ( m_pTotalDiffStatus->bBinaryAEqB ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("A"),QString("B")); else if ( m_pTotalDiffStatus->bTextAEqB ) totalInfo += i18n("Files %1 and %2 have equal text.\n",QString("A"),QString("B")); if ( m_pTotalDiffStatus->bBinaryAEqC ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("A"),QString("C")); else if ( m_pTotalDiffStatus->bTextAEqC ) totalInfo += i18n("Files %1 and %2 have equal text.\n",QString("A"),QString("C")); if ( m_pTotalDiffStatus->bBinaryBEqC ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("B"),QString("C")); else if ( m_pTotalDiffStatus->bTextBEqC ) totalInfo += i18n("Files %1 and %2 have equal text.\n",QString("B"),QString("C")); } int nrOfUnsolvedConflicts = getNrOfUnsolvedConflicts(); KMessageBox::information( this, i18n("Total number of conflicts: ") + QString::number(nrOfConflicts) + i18n("\nNr of automatically solved conflicts: ") + QString::number(nrOfConflicts-nrOfUnsolvedConflicts) + i18n("\nNr of unsolved conflicts: ") + QString::number(nrOfUnsolvedConflicts) + "\n"+totalInfo, i18n("Conflicts") ); } void MergeResultWindow::setFastSelector(MergeLineList::iterator i) { if ( i==m_mergeLineList.end() ) return; m_currentMergeLineIt = i; emit setFastSelectorRange( i->d3lLineIdx, i->srcRangeLength ); int line1 = 0; MergeLineList::iterator mlIt = m_mergeLineList.begin(); for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { if(mlIt==m_currentMergeLineIt) break; line1 += mlIt->mergeEditLineList.size(); } int nofLines = m_currentMergeLineIt->mergeEditLineList.size(); int newFirstLine = getBestFirstLine( line1, nofLines, m_firstLine, getNofVisibleLines() ); if ( newFirstLine != m_firstLine ) { scroll( 0, newFirstLine - m_firstLine ); } if ( m_selection.isEmpty() ) { m_cursorXPos = 0; m_cursorOldXPos = 0; m_cursorYPos = line1; } update(); updateSourceMask(); emit updateAvailabilities(); } void MergeResultWindow::choose( int selector ) { if ( m_currentMergeLineIt==m_mergeLineList.end() ) return; setModified(); // First find range for which this change works. MergeLine& ml = *m_currentMergeLineIt; MergeEditLineList::iterator melIt; // Now check if selector is active for this range already. bool bActive = false; // Remove unneeded lines in the range. for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ) { MergeEditLine& mel = *melIt; if ( mel.src()==selector ) bActive = true; if ( mel.src()==selector || !mel.isEditableText() || mel.isModified() ) melIt = ml.mergeEditLineList.erase( melIt ); else ++melIt; } if ( !bActive ) // Selected source wasn't active. { // Append the lines from selected source here at rangeEnd. Diff3LineList::const_iterator d3llit=ml.id3l; int j; for( j=0; jlineA : mel.src()==2 ? mel.id3l()->lineB : mel.src()==3 ? mel.id3l()->lineC : -1; if ( srcLine == -1 ) melIt = ml.mergeEditLineList.erase( melIt ); else ++melIt; } } if ( ml.mergeEditLineList.empty() ) { // Insert a dummy line: MergeEditLine mel(ml.id3l); if ( bActive ) mel.setConflict(); // All src entries deleted => conflict else mel.setRemoved(selector); // No lines in corresponding src found. ml.mergeEditLineList.push_back(mel); } if ( m_cursorYPos >= m_totalSize ) { m_cursorYPos = m_totalSize-1; m_cursorXPos = 0; } update(); updateSourceMask(); emit updateAvailabilities(); int wsc; int nofUnsolved = getNrOfUnsolvedConflicts(&wsc); m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" ,nofUnsolved,wsc) ); } // bConflictsOnly: automatically choose for conflicts only (true) or for everywhere (false) void MergeResultWindow::chooseGlobal(int selector, bool bConflictsOnly, bool bWhiteSpaceOnly ) { resetSelection(); merge( false, selector, bConflictsOnly, bWhiteSpaceOnly ); setModified( true ); update(); int wsc; int nofUnsolved = getNrOfUnsolvedConflicts(&wsc); m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" ,nofUnsolved,wsc) ); } void MergeResultWindow::slotAutoSolve() { resetSelection(); merge( true, -1 ); setModified( true ); update(); int wsc; int nofUnsolved = getNrOfUnsolvedConflicts(&wsc); m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" ,nofUnsolved,wsc) ); } void MergeResultWindow::slotUnsolve() { resetSelection(); merge( false, -1 ); setModified( true ); update(); int wsc; int nofUnsolved = getNrOfUnsolvedConflicts(&wsc); m_pStatusBar->showMessage( i18n("Number of remaining unsolved conflicts: %1 (of which %2 are whitespace)" ,nofUnsolved,wsc) ); } static QString calcHistoryLead(const QString& s ) { // Return the start of the line until the first white char after the first non white char. int i; for( i=0; ibegin(), idxBegin=0; iBegin!=pD3LList->end(); ++iBegin, ++idxBegin ) { if ( historyStart.exactMatch( iBegin->getString(A) ) && historyStart.exactMatch( iBegin->getString(B) ) && ( !bThreeFiles || historyStart.exactMatch( iBegin->getString(C) ) ) ) { historyLead = calcHistoryLead( iBegin->getString(A) ); break; } } // Search for end of history for( iEnd = iBegin, idxEnd = idxBegin; iEnd!=pD3LList->end(); ++iEnd, ++idxEnd ) { QString sA = iEnd->getString(A); QString sB = iEnd->getString(B); QString sC = iEnd->getString(C); if ( ! ((sA.isNull() || historyLead == calcHistoryLead(sA) ) && (sB.isNull() || historyLead == calcHistoryLead(sB) ) && (!bThreeFiles || sC.isNull() || historyLead == calcHistoryLead(sC) ) )) { break; // End of the history } } } bool findParenthesesGroups( const QString& s, QStringList& sl ) { sl.clear(); int i=0; std::list startPosStack; int length = s.length(); for( i=0; i(int)parenthesesGroupList.size() ) continue; QString s = matchedRegExpr.cap( groupIdx ); if ( groupIdx == 0 ) { key += s + " "; continue; } QString groupRegExp = parenthesesGroupList[groupIdx-1]; if( groupRegExp.indexOf('|')<0 || groupRegExp.indexOf('(')>=0 ) { bool bOk = false; int i = s.toInt( &bOk ); if ( bOk && i>=0 && i<10000 ) s.sprintf("%04d", i); // This should help for correct sorting of numbers. key += s + " "; } else { // Assume that the groupRegExp consists of something like "Jan|Feb|Mar|Apr" // s is the string that managed to match. // Now we want to know at which position it occurred. e.g. Jan=0, Feb=1, Mar=2, etc. QStringList sl = groupRegExp.split( '|' ); int idx = sl.indexOf( s ); if (idx<0) { // Didn't match } else { QString sIdx; sIdx.sprintf("%02d", idx+1 ); // Up to 99 words in the groupRegExp (more than 12 aren't expected) key += sIdx + " "; } } } return key; } void MergeResultWindow::collectHistoryInformation( int src, Diff3LineList::const_iterator iHistoryBegin, Diff3LineList::const_iterator iHistoryEnd, HistoryMap& historyMap, std::list< HistoryMap::iterator >& hitList // list of iterators ) { std::list< HistoryMap::iterator >::iterator itHitListFront = hitList.begin(); Diff3LineList::const_iterator id3l = iHistoryBegin; QString historyLead; { const LineData* pld = id3l->getLineData(src); QString s( pld->pLine, pld->size ); historyLead = calcHistoryLead(s); } QRegExp historyStart( m_pOptions->m_historyStartRegExp ); if ( id3l == iHistoryEnd ) return; ++id3l; // Skip line with "$Log ... $" QRegExp newHistoryEntry( m_pOptions->m_historyEntryStartRegExp ); QStringList parenthesesGroups; findParenthesesGroups( m_pOptions->m_historyEntryStartRegExp, parenthesesGroups ); QString key; MergeEditLineList melList; bool bPrevLineIsEmpty = true; bool bUseRegExp = !m_pOptions->m_historyEntryStartRegExp.isEmpty(); for(; id3l != iHistoryEnd; ++id3l ) { const LineData* pld = id3l->getLineData(src); if ( !pld ) continue; QString s( pld->pLine, pld->size ); if (historyLead.isNull()) historyLead = calcHistoryLead(s); QString sLine = s.mid(historyLead.length()); if ( ( !bUseRegExp && !sLine.trimmed().isEmpty() && bPrevLineIsEmpty ) || (bUseRegExp && newHistoryEntry.exactMatch( sLine ) ) ) { if ( !key.isEmpty() && !melList.empty() ) { // Only insert new HistoryMapEntry if key not found; in either case p.first is a valid iterator to element key. std::pair p = historyMap.insert(HistoryMap::value_type(key,HistoryMapEntry())); HistoryMapEntry& hme = p.first->second; if ( src==A ) hme.mellA = melList; if ( src==B ) hme.mellB = melList; if ( src==C ) hme.mellC = melList; if ( p.second ) // Not in list yet? { hitList.insert( itHitListFront, p.first ); } } if ( ! bUseRegExp ) key = sLine; else key = calcHistorySortKey(m_pOptions->m_historyEntryStartSortKeyOrder,newHistoryEntry,parenthesesGroups); melList.clear(); melList.push_back( MergeEditLine(id3l,src) ); } else if ( ! historyStart.exactMatch( s ) ) { melList.push_back( MergeEditLine(id3l,src) ); } bPrevLineIsEmpty = sLine.trimmed().isEmpty(); } if ( !key.isEmpty() ) { // Only insert new HistoryMapEntry if key not found; in either case p.first is a valid iterator to element key. std::pair p = historyMap.insert(HistoryMap::value_type(key,HistoryMapEntry())); HistoryMapEntry& hme = p.first->second; if ( src==A ) hme.mellA = melList; if ( src==B ) hme.mellB = melList; if ( src==C ) hme.mellC = melList; if ( p.second ) // Not in list yet? { hitList.insert( itHitListFront, p.first ); } } // End of the history } MergeResultWindow::MergeEditLineList& MergeResultWindow::HistoryMapEntry::choice( bool bThreeInputs ) { if ( !bThreeInputs ) return mellA.empty() ? mellB : mellA; else { if ( mellA.empty() ) return mellC.empty() ? mellB : mellC; // A doesn't exist, return one that exists else if ( ! mellB.empty() && ! mellC.empty() ) { // A, B and C exist return mellA; } else return mellB.empty() ? mellB : mellC; // A exists, return the one that doesn't exist } } bool MergeResultWindow::HistoryMapEntry::staysInPlace( bool bThreeInputs, Diff3LineList::const_iterator& iHistoryEnd ) { // The entry should stay in place if the decision made by the automerger is correct. Diff3LineList::const_iterator& iHistoryLast = iHistoryEnd; --iHistoryLast; if ( !bThreeInputs ) { if ( !mellA.empty() && !mellB.empty() && mellA.begin()->id3l()==mellB.begin()->id3l() && mellA.back().id3l() == iHistoryLast && mellB.back().id3l() == iHistoryLast ) { iHistoryEnd = mellA.begin()->id3l(); return true; } else { return false; } } else { if ( !mellA.empty() && !mellB.empty() && !mellC.empty() && mellA.begin()->id3l()==mellB.begin()->id3l() && mellA.begin()->id3l()==mellC.begin()->id3l() && mellA.back().id3l() == iHistoryLast && mellB.back().id3l() == iHistoryLast && mellC.back().id3l() == iHistoryLast ) { iHistoryEnd = mellA.begin()->id3l(); return true; } else { return false; } } } void MergeResultWindow::slotMergeHistory() { Diff3LineList::const_iterator iD3LHistoryBegin; Diff3LineList::const_iterator iD3LHistoryEnd; int d3lHistoryBeginLineIdx = -1; int d3lHistoryEndLineIdx = -1; // Search for history start, history end in the diff3LineList findHistoryRange( QRegExp(m_pOptions->m_historyStartRegExp), m_pldC!=0, m_pDiff3LineList, iD3LHistoryBegin, iD3LHistoryEnd, d3lHistoryBeginLineIdx, d3lHistoryEndLineIdx ); if ( iD3LHistoryBegin != m_pDiff3LineList->end() ) { // Now collect the historyMap information HistoryMap historyMap; std::list< HistoryMap::iterator > hitList; if (m_pldC==0) { collectHistoryInformation( A, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList ); collectHistoryInformation( B, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList ); } else { collectHistoryInformation( A, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList ); collectHistoryInformation( B, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList ); collectHistoryInformation( C, iD3LHistoryBegin, iD3LHistoryEnd, historyMap, hitList ); } Diff3LineList::const_iterator iD3LHistoryOrigEnd = iD3LHistoryEnd; bool bHistoryMergeSorting = m_pOptions->m_bHistoryMergeSorting && ! m_pOptions->m_historyEntryStartSortKeyOrder.isEmpty() && ! m_pOptions->m_historyEntryStartRegExp.isEmpty(); if ( m_pOptions->m_maxNofHistoryEntries==-1 ) { // Remove parts from the historyMap and hitList that stay in place if ( bHistoryMergeSorting ) { while ( ! historyMap.empty() ) { HistoryMap::iterator hMapIt = historyMap.begin(); if( hMapIt->second.staysInPlace( m_pldC!=0, iD3LHistoryEnd ) ) historyMap.erase(hMapIt); else break; } } else { while ( ! hitList.empty() ) { HistoryMap::iterator hMapIt = hitList.back(); if( hMapIt->second.staysInPlace( m_pldC!=0, iD3LHistoryEnd ) ) hitList.pop_back(); else break; } } while (iD3LHistoryOrigEnd != iD3LHistoryEnd) { --iD3LHistoryOrigEnd; --d3lHistoryEndLineIdx; } } MergeLineList::iterator iMLLStart = splitAtDiff3LineIdx(d3lHistoryBeginLineIdx); MergeLineList::iterator iMLLEnd = splitAtDiff3LineIdx(d3lHistoryEndLineIdx); // Now join all MergeLines in the history MergeLineList::iterator i = iMLLStart; if ( i != iMLLEnd ) { ++i; while ( i!=iMLLEnd ) { iMLLStart->join(*i); i = m_mergeLineList.erase( i ); } } iMLLStart->mergeEditLineList.clear(); // Now insert the complete history into the first MergeLine of the history iMLLStart->mergeEditLineList.push_back( MergeEditLine( iD3LHistoryBegin, m_pldC == 0 ? B : C ) ); QString lead = calcHistoryLead( iD3LHistoryBegin->getString(A) ); MergeEditLine mel( m_pDiff3LineList->end() ); mel.setString( lead ); iMLLStart->mergeEditLineList.push_back(mel); int historyCount = 0; if ( bHistoryMergeSorting ) { // Create a sorted history HistoryMap::reverse_iterator hmit; for ( hmit = historyMap.rbegin(); hmit != historyMap.rend(); ++hmit ) { if ( historyCount==m_pOptions->m_maxNofHistoryEntries ) break; ++historyCount; HistoryMapEntry& hme = hmit->second; MergeEditLineList& mell = hme.choice(m_pldC!=0); if (!mell.empty()) iMLLStart->mergeEditLineList.splice( iMLLStart->mergeEditLineList.end(), mell, mell.begin(), mell.end() ); } } else { // Create history in order of appearance std::list< HistoryMap::iterator >::iterator hlit; for ( hlit = hitList.begin(); hlit != hitList.end(); ++hlit ) { if ( historyCount==m_pOptions->m_maxNofHistoryEntries ) break; ++historyCount; HistoryMapEntry& hme = (*hlit)->second; MergeEditLineList& mell = hme.choice(m_pldC!=0); if (!mell.empty()) iMLLStart->mergeEditLineList.splice( iMLLStart->mergeEditLineList.end(), mell, mell.begin(), mell.end() ); } // If the end of start is empty and the first line at the end is empty remove the last line of start if ( !iMLLStart->mergeEditLineList.empty() && !iMLLEnd->mergeEditLineList.empty() ) { QString lastLineOfStart = iMLLStart->mergeEditLineList.back().getString(this); QString firstLineOfEnd = iMLLEnd->mergeEditLineList.front().getString(this); if ( lastLineOfStart.mid(lead.length()).trimmed().isEmpty() && firstLineOfEnd.mid(lead.length()).trimmed().isEmpty() ) iMLLStart->mergeEditLineList.pop_back(); } } setFastSelector( iMLLStart ); update(); } } void MergeResultWindow::slotRegExpAutoMerge() { if ( m_pOptions->m_autoMergeRegExp.isEmpty() ) return; QRegExp vcsKeywords( m_pOptions->m_autoMergeRegExp ); MergeLineList::iterator i; for ( i=m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { if (i->bConflict ) { Diff3LineList::const_iterator id3l = i->id3l; if ( vcsKeywords.exactMatch( id3l->getString(A) ) && vcsKeywords.exactMatch( id3l->getString(B) ) && (m_pldC==0 || vcsKeywords.exactMatch( id3l->getString(C) ))) { MergeEditLine& mel = *i->mergeEditLineList.begin(); mel.setSource( m_pldC==0 ? B : C, false ); splitAtDiff3LineIdx( i->d3lLineIdx+1 ); } } } update(); } // This doesn't detect user modifications and should only be called after automatic merge // This will only do something for three file merge. // Irrelevant changes are those where all contributions from B are already contained in C. // Also irrelevant are conflicts automatically solved (automerge regexp and history automerge) // Precondition: The VCS-keyword would also be C. bool MergeResultWindow::doRelevantChangesExist() { if ( m_pldC==0 || m_mergeLineList.size() <= 1 ) return true; MergeLineList::iterator i; for ( i=m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { if ( ( i->bConflict && i->mergeEditLineList.begin()->src()!=C ) || i->srcSelect == B ) { return true; } } return false; } // Returns the iterator to the MergeLine after the split MergeResultWindow::MergeLineList::iterator MergeResultWindow::splitAtDiff3LineIdx( int d3lLineIdx ) { MergeLineList::iterator i; for ( i = m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { if ( i->d3lLineIdx==d3lLineIdx ) { // No split needed, this is the beginning of a MergeLine return i; } else if ( i->d3lLineIdx > d3lLineIdx ) { // The split must be in the previous MergeLine --i; MergeLine& ml = *i; MergeLine newML; ml.split(newML,d3lLineIdx); ++i; return m_mergeLineList.insert( i, newML ); } } // The split must be in the previous MergeLine --i; MergeLine& ml = *i; MergeLine newML; ml.split(newML,d3lLineIdx); ++i; return m_mergeLineList.insert( i, newML ); } void MergeResultWindow::slotSplitDiff( int firstD3lLineIdx, int lastD3lLineIdx ) { if (lastD3lLineIdx>=0) splitAtDiff3LineIdx( lastD3lLineIdx + 1 ); setFastSelector( splitAtDiff3LineIdx(firstD3lLineIdx) ); } void MergeResultWindow::slotJoinDiffs( int firstD3lLineIdx, int lastD3lLineIdx ) { MergeLineList::iterator i; MergeLineList::iterator iMLLStart = m_mergeLineList.end(); MergeLineList::iterator iMLLEnd = m_mergeLineList.end(); for ( i=m_mergeLineList.begin(); i!=m_mergeLineList.end(); ++i ) { MergeLine& ml = *i; if ( firstD3lLineIdx >= ml.d3lLineIdx && firstD3lLineIdx < ml.d3lLineIdx + ml.srcRangeLength ) { iMLLStart = i; } if ( lastD3lLineIdx >= ml.d3lLineIdx && lastD3lLineIdx < ml.d3lLineIdx + ml.srcRangeLength ) { iMLLEnd = i; ++iMLLEnd; break; } } bool bJoined = false; for( i=iMLLStart; i!=iMLLEnd && i!=m_mergeLineList.end(); ) { if ( i==iMLLStart ) { ++i; } else { iMLLStart->join(*i); i = m_mergeLineList.erase( i ); bJoined = true; } } if (bJoined) { iMLLStart->mergeEditLineList.clear(); // Insert a conflict line as placeholder iMLLStart->mergeEditLineList.push_back( MergeEditLine( iMLLStart->id3l ) ); } setFastSelector( iMLLStart ); } void MergeResultWindow::myUpdate(int afterMilliSecs) { if ( m_delayedDrawTimer ) killTimer(m_delayedDrawTimer); m_bMyUpdate = true; m_delayedDrawTimer = startTimer( afterMilliSecs ); } void MergeResultWindow::timerEvent(QTimerEvent*) { killTimer(m_delayedDrawTimer); m_delayedDrawTimer = 0; if ( m_bMyUpdate ) { update(); m_bMyUpdate = false; } if ( m_scrollDeltaX != 0 || m_scrollDeltaY != 0 ) { m_selection.end( m_selection.lastLine + m_scrollDeltaY, m_selection.lastPos + m_scrollDeltaX ); emit scroll( m_scrollDeltaX, m_scrollDeltaY ); killTimer(m_delayedDrawTimer); m_delayedDrawTimer = startTimer(50); } } QString MergeResultWindow::MergeEditLine::getString( const MergeResultWindow* mrw ) { if ( isRemoved() ) { return QString(); } if ( ! isModified() ) { int src = m_src; if ( src == 0 ) { return QString(); } const Diff3Line& d3l = *m_id3l; const LineData* pld = 0; assert( src == A || src == B || src == C ); if ( src == A && d3l.lineA!=-1 ) pld = &mrw->m_pldA[ d3l.lineA ]; else if ( src == B && d3l.lineB!=-1 ) pld = &mrw->m_pldB[ d3l.lineB ]; else if ( src == C && d3l.lineC!=-1 ) pld = &mrw->m_pldC[ d3l.lineC ]; if ( pld == 0 ) { // assert(false); This is no error. return QString(); } return QString( pld->pLine, pld->size ); } else { return m_str; } return 0; } /// Converts the cursor-posOnScreen into a text index, considering tabulators. int convertToPosInText( const QString& s, int posOnScreen, int tabSize ) { int localPosOnScreen = 0; int size=s.length(); for ( int i=0; i=posOnScreen ) return i; // All letters except tabulator have width one. int letterWidth = s[i]!='\t' ? 1 : tabber( localPosOnScreen, tabSize ); localPosOnScreen += letterWidth; if ( localPosOnScreen>posOnScreen ) return i; } return size; } /// Converts the index into the text to a cursor-posOnScreen considering tabulators. int convertToPosOnScreen( const QString& p, int posInText, int tabSize ) { int posOnScreen = 0; for ( int i=0; i height() ) return; yOffset += topLineYOffset; QString srcName = " "; if ( bUserModified ) srcName = "m"; else if ( srcSelect == A && mergeDetails != eNoChange ) srcName = "A"; else if ( srcSelect == B ) srcName = "B"; else if ( srcSelect == C ) srcName = "C"; if ( rangeMark & 4 ) { p.fillRect( xOffset, yOffset, width(), fontHeight, m_pOptions->m_currentRangeBgColor ); } if( (srcSelect > 0 || bUserModified ) && !bLineRemoved ) { int outPos = 0; QString s; int size = str.length(); for ( int i=0; im_tabSize ); for( int j=0; jm_tabSize ),m_pOptions->m_tabSize ); int lastPosInLine = convertToPosOnScreen( str, convertToPosInText( str, m_selection.lastPosInLine(line), m_pOptions->m_tabSize ), m_pOptions->m_tabSize ); int lengthInLine = max2(0,lastPosInLine - firstPosInLine); if (lengthInLine>0) m_selection.bSelectionContainsData = true; if ( lengthInLine < int(s.length()) ) { // Draw a normal line first p.setPen( m_pOptions->m_fgColor ); p.drawText( xOffset, yOffset+fontAscent, s.mid(m_firstColumn), true ); } int firstPosInLine2 = max2( firstPosInLine, m_firstColumn ); int lengthInLine2 = max2(0,lastPosInLine - firstPosInLine2); if( m_selection.lineWithin( line+1 ) ) p.fillRect( xOffset + fontWidth*(firstPosInLine2-m_firstColumn), yOffset, width(), fontHeight, palette().highlight() ); else if ( lengthInLine2>0 ) p.fillRect( xOffset + fontWidth*(firstPosInLine2-m_firstColumn), yOffset, fontWidth*lengthInLine2, fontHeight, palette().highlight() ); p.setPen( palette().highlightedText().color() ); p.drawText( xOffset + fontWidth*(firstPosInLine2-m_firstColumn), yOffset+fontAscent, s.mid(firstPosInLine2,lengthInLine2), true ); } else { p.setPen( m_pOptions->m_fgColor ); p.drawText( xOffset, yOffset+fontAscent, s.mid(m_firstColumn), true ); } p.setPen( m_pOptions->m_fgColor ); if ( m_cursorYPos==line ) { m_cursorXPos = minMaxLimiter( m_cursorXPos, 0, outPos ); m_cursorXPos = convertToPosOnScreen( str, convertToPosInText( str, m_cursorXPos, m_pOptions->m_tabSize ),m_pOptions->m_tabSize ); } p.drawText( 1, yOffset+fontAscent, srcName, true ); } else if ( bLineRemoved ) { p.setPen( m_pOptions->m_colorForConflict ); p.drawText( xOffset, yOffset+fontAscent, i18n("") ); p.drawText( 1, yOffset+fontAscent, srcName ); if ( m_cursorYPos==line ) m_cursorXPos = 0; } else if ( srcSelect == 0 ) { p.setPen( m_pOptions->m_colorForConflict ); if ( bWhiteSpaceConflict ) p.drawText( xOffset, yOffset+fontAscent, i18n("") ); else p.drawText( xOffset, yOffset+fontAscent, i18n("") ); p.drawText( 1, yOffset+fontAscent, "?" ); if ( m_cursorYPos==line ) m_cursorXPos = 0; } else assert(false); xOffset -= fontWidth; p.setPen( m_pOptions->m_fgColor ); if ( rangeMark & 1 ) // begin mark { p.drawLine( xOffset, yOffset+1, xOffset, yOffset+fontHeight/2 ); p.drawLine( xOffset, yOffset+1, xOffset-2, yOffset+1 ); } else { p.drawLine( xOffset, yOffset, xOffset, yOffset+fontHeight/2 ); } if ( rangeMark & 2 ) // end mark { p.drawLine( xOffset, yOffset+fontHeight/2, xOffset, yOffset+fontHeight-1 ); p.drawLine( xOffset, yOffset+fontHeight-1, xOffset-2, yOffset+fontHeight-1 ); } else { p.drawLine( xOffset, yOffset+fontHeight/2, xOffset, yOffset+fontHeight ); } if ( rangeMark & 4 ) { p.fillRect( xOffset + 3, yOffset, 3, fontHeight, m_pOptions->m_fgColor ); /* p.setPen( blue ); p.drawLine( xOffset+2, yOffset, xOffset+2, yOffset+fontHeight-1 ); p.drawLine( xOffset+3, yOffset, xOffset+3, yOffset+fontHeight-1 );*/ } } void MergeResultWindow::setPaintingAllowed(bool bPaintingAllowed) { m_bPaintingAllowed = bPaintingAllowed; if ( !m_bPaintingAllowed ) { m_currentMergeLineIt = m_mergeLineList.end(); reset(); } update(); } void MergeResultWindow::paintEvent( QPaintEvent* ) { if (m_pDiff3LineList==0 || !m_bPaintingAllowed) return; bool bOldSelectionContainsData = m_selection.bSelectionContainsData; const QFontMetrics& fm = fontMetrics(); int fontHeight = fm.height(); int fontWidth = fm.width("W"); int fontAscent = fm.ascent(); if ( !m_bCursorUpdate ) // Don't redraw everything for blinking cursor? { m_selection.bSelectionContainsData = false; if ( size() != m_pixmap.size() ) m_pixmap = QPixmap(size()); MyPainter p(&m_pixmap, m_pOptions->m_bRightToLeftLanguage, width(), fontWidth); p.setFont( font() ); p.QPainter::fillRect( rect(), m_pOptions->m_bgColor ); //int visibleLines = height() / fontHeight; int lastVisibleLine = m_firstLine + getNofVisibleLines() + 5; int nofColumns = 0; int line = 0; MergeLineList::iterator mlIt = m_mergeLineList.begin(); for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; if ( line > lastVisibleLine || line + ml.mergeEditLineList.size() < m_firstLine) { line += ml.mergeEditLineList.size(); } else { MergeEditLineList::iterator melIt; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt ) { if (line>=m_firstLine && line<=lastVisibleLine) { MergeEditLine& mel = *melIt; MergeEditLineList::iterator melIt1 = melIt; ++melIt1; int rangeMark = 0; if ( melIt==ml.mergeEditLineList.begin() ) rangeMark |= 1; // Begin range mark if ( melIt1==ml.mergeEditLineList.end() ) rangeMark |= 2; // End range mark if ( mlIt == m_currentMergeLineIt ) rangeMark |= 4; // Mark of the current line QString s; s = mel.getString( this ); if ( convertToPosOnScreen(s,s.length(),m_pOptions->m_tabSize) >nofColumns) nofColumns = s.length(); writeLine( p, line, s, mel.src(), ml.mergeDetails, rangeMark, mel.isModified(), mel.isRemoved(), ml.bWhiteSpaceConflict ); } ++line; } } } if ( line != m_nofLines || nofColumns != m_nofColumns ) { m_nofLines = line; assert( m_nofLines == m_totalSize ); m_nofColumns = nofColumns; emit resizeSignal(); } p.end(); } QPainter painter(this); //int topLineYOffset = 0; //int xOffset = fontWidth * leftInfoWidth; //int yOffset = ( m_cursorYPos - m_firstLine ) * fontHeight + topLineYOffset; //int xCursor = ( m_cursorXPos - m_firstColumn ) * fontWidth + xOffset; if ( !m_bCursorUpdate ) painter.drawPixmap(0,0, m_pixmap); else { painter.drawPixmap(0,0, m_pixmap ); // Draw everything. (Internally cursor rect is clipped anyway.) //if (!m_pOptions->m_bRightToLeftLanguage) // painter.drawPixmap(xCursor-2, yOffset, m_pixmap, // xCursor-2, yOffset, 5, fontAscent+2 ); //else // painter.drawPixmap(width()-1-4-(xCursor-2), yOffset, m_pixmap, // width()-1-4-(xCursor-2), yOffset, 5, fontAscent+2 ); m_bCursorUpdate = false; } painter.end(); if ( m_bCursorOn && hasFocus() && m_cursorYPos>=m_firstLine ) { MyPainter painter(this, m_pOptions->m_bRightToLeftLanguage, width(), fontWidth); int topLineYOffset = 0; int xOffset = fontWidth * leftInfoWidth; int yOffset = ( m_cursorYPos-m_firstLine ) * fontHeight + topLineYOffset; int xCursor = ( m_cursorXPos - m_firstColumn ) * fontWidth + xOffset; painter.setPen( m_pOptions->m_fgColor ); painter.drawLine( xCursor, yOffset, xCursor, yOffset+fontAscent ); painter.drawLine( xCursor-2, yOffset, xCursor+2, yOffset ); painter.drawLine( xCursor-2, yOffset+fontAscent+1, xCursor+2, yOffset+fontAscent+1 ); } if( !bOldSelectionContainsData && m_selection.bSelectionContainsData ) emit newSelection(); } void MergeResultWindow::updateSourceMask() { int srcMask=0; int enabledMask = 0; if( !hasFocus() || m_pDiff3LineList==0 || !m_bPaintingAllowed || m_currentMergeLineIt == m_mergeLineList.end() ) { srcMask = 0; enabledMask = 0; } else { enabledMask = m_pldC==0 ? 3 : 7; MergeLine& ml = *m_currentMergeLineIt; srcMask = 0; bool bModified = false; MergeEditLineList::iterator melIt; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt ) { MergeEditLine& mel = *melIt; if ( mel.src()==1 ) srcMask |= 1; if ( mel.src()==2 ) srcMask |= 2; if ( mel.src()==3 ) srcMask |= 4; if ( mel.isModified() || !mel.isEditableText() ) bModified = true; } if ( ml.mergeDetails == eNoChange ) { srcMask = 0; enabledMask = bModified ? 1 : 0; } } emit sourceMask( srcMask, enabledMask ); } void MergeResultWindow::focusInEvent( QFocusEvent* e ) { updateSourceMask(); QWidget::focusInEvent(e); } void MergeResultWindow::convertToLinePos( int x, int y, int& line, int& pos ) { const QFontMetrics& fm = fontMetrics(); int fontHeight = fm.height(); int fontWidth = fm.width('W'); int xOffset = (leftInfoWidth-m_firstColumn)*fontWidth; int topLineYOffset = 0; int yOffset = topLineYOffset - m_firstLine * fontHeight; line = min2( ( y - yOffset ) / fontHeight, m_totalSize-1 ); if ( ! m_pOptions->m_bRightToLeftLanguage ) pos = ( x - xOffset ) / fontWidth; else pos = ( (width() - 1 - x) - xOffset ) / fontWidth; } void MergeResultWindow::mousePressEvent ( QMouseEvent* e ) { m_bCursorOn = true; int line; int pos; convertToLinePos( e->x(), e->y(), line, pos ); bool bLMB = e->button() == Qt::LeftButton; bool bMMB = e->button() == Qt::MidButton; bool bRMB = e->button() == Qt::RightButton; if ( (bLMB && (pos < m_firstColumn)) || bRMB ) // Fast range selection { m_cursorXPos = 0; m_cursorOldXPos = 0; m_cursorYPos = max2(line,0); int l = 0; MergeLineList::iterator i = m_mergeLineList.begin(); for(i = m_mergeLineList.begin();i!=m_mergeLineList.end(); ++i) { if (l==line) break; l += i->mergeEditLineList.size(); if (l>line) break; } m_selection.reset(); // Disable current selection m_bCursorOn = true; setFastSelector( i ); if (bRMB) { showPopupMenu( QCursor::pos() ); } } else if ( bLMB ) // Normal cursor placement { pos = max2(pos,0); line = max2(line,0); if ( e->QInputEvent::modifiers() & Qt::ShiftModifier ) { if (m_selection.firstLine==-1) m_selection.start( line, pos ); m_selection.end( line, pos ); } else { // Selection m_selection.reset(); m_selection.start( line, pos ); m_selection.end( line, pos ); } m_cursorXPos = pos; m_cursorOldXPos = pos; m_cursorYPos = line; update(); //showStatusLine( line, m_winIdx, m_pFilename, m_pDiff3LineList, m_pStatusBar ); } else if ( bMMB ) // Paste clipboard { pos = max2(pos,0); line = max2(line,0); m_selection.reset(); m_cursorXPos = pos; m_cursorOldXPos = pos; m_cursorYPos = line; pasteClipboard( true ); } } void MergeResultWindow::mouseDoubleClickEvent( QMouseEvent* e ) { if ( e->button() == Qt::LeftButton ) { int line; int pos; convertToLinePos( e->x(), e->y(), line, pos ); m_cursorXPos = pos; m_cursorOldXPos = pos; m_cursorYPos = line; // Get the string data of the current line MergeLineList::iterator mlIt; MergeEditLineList::iterator melIt; calcIteratorFromLineNr( line, mlIt, melIt ); QString s = melIt->getString( this ); if ( !s.isEmpty() ) { int pos1, pos2; calcTokenPos( s, pos, pos1, pos2, m_pOptions->m_tabSize ); resetSelection(); m_selection.start( line, convertToPosOnScreen( s, pos1, m_pOptions->m_tabSize ) ); m_selection.end( line, convertToPosOnScreen( s, pos2, m_pOptions->m_tabSize ) ); update(); // emit selectionEnd() happens in the mouseReleaseEvent. } } } void MergeResultWindow::mouseReleaseEvent ( QMouseEvent * e ) { if ( e->button() == Qt::LeftButton ) { if (m_delayedDrawTimer) { killTimer(m_delayedDrawTimer); m_delayedDrawTimer = 0; } if (m_selection.firstLine != -1 ) { emit selectionEnd(); } } } void MergeResultWindow::mouseMoveEvent ( QMouseEvent * e ) { int line; int pos; convertToLinePos( e->x(), e->y(), line, pos ); m_cursorXPos = pos; m_cursorOldXPos = pos; m_cursorYPos = line; if (m_selection.firstLine != -1 ) { m_selection.end( line, pos ); myUpdate(0); //showStatusLine( line, m_winIdx, m_pFilename, m_pDiff3LineList, m_pStatusBar ); // Scroll because mouse moved out of the window const QFontMetrics& fm = fontMetrics(); int fontWidth = fm.width('W'); int topLineYOffset = 0; int deltaX=0; int deltaY=0; if ( ! m_pOptions->m_bRightToLeftLanguage ) { if ( e->x() < leftInfoWidth*fontWidth ) deltaX=-1; if ( e->x() > width() ) deltaX=+1; } else { if ( e->x() > width()-1-leftInfoWidth*fontWidth ) deltaX=-1; if ( e->x() < fontWidth ) deltaX=+1; } if ( e->y() < topLineYOffset ) deltaY=-1; if ( e->y() > height() ) deltaY=+1; m_scrollDeltaX = deltaX; m_scrollDeltaY = deltaY; if ( deltaX != 0 || deltaY!= 0) { emit scroll( deltaX, deltaY ); } } } void MergeResultWindow::slotCursorUpdate() { m_cursorTimer.stop(); m_bCursorOn = !m_bCursorOn; if ( isVisible() ) { m_bCursorUpdate = true; const QFontMetrics& fm = fontMetrics(); int fontWidth = fm.width("W"); int topLineYOffset = 0; int xOffset = fontWidth * leftInfoWidth; int yOffset = ( m_cursorYPos - m_firstLine ) * fm.height() + topLineYOffset; int xCursor = ( m_cursorXPos - m_firstColumn ) * fontWidth + xOffset; if (!m_pOptions->m_bRightToLeftLanguage) repaint( xCursor-2, yOffset, 5, fm.ascent()+2 ); else repaint( width()-1-4-(xCursor-2), yOffset, 5, fm.ascent()+2 ); m_bCursorUpdate=false; } m_cursorTimer.start(500); } void MergeResultWindow::wheelEvent( QWheelEvent* e ) { int d = -e->delta()*QApplication::wheelScrollLines()/120; e->accept(); scroll( 0, min2(d, getNofVisibleLines()) ); } bool MergeResultWindow::event( QEvent* e ) { if ( e->type()==QEvent::KeyPress ) { QKeyEvent *ke = static_cast(e); if (ke->key() == Qt::Key_Tab) { // special tab handling here to avoid moving focus keyPressEvent( ke ); return true; } } return QWidget::event(e); } void MergeResultWindow::keyPressEvent( QKeyEvent* e ) { int y = m_cursorYPos; MergeLineList::iterator mlIt; MergeEditLineList::iterator melIt; calcIteratorFromLineNr( y, mlIt, melIt ); QString str = melIt->getString( this ); int x = convertToPosInText( str, m_cursorXPos, m_pOptions->m_tabSize ); bool bCtrl = ( e->QInputEvent::modifiers() & Qt::ControlModifier ) != 0 ; bool bShift = ( e->QInputEvent::modifiers() & Qt::ShiftModifier ) != 0 ; #ifdef _WIN32 bool bAlt = ( e->QInputEvent::modifiers() & Qt::AltModifier ) != 0 ; if ( bCtrl && bAlt ){ bCtrl=false; bAlt=false; } // AltGr-Key pressed. #endif bool bYMoveKey = false; // Special keys switch ( e->key() ) { case Qt::Key_Escape: break; //case Key_Tab: break; case Qt::Key_Backtab: break; case Qt::Key_Delete: { if ( deleteSelection2( str, x, y, mlIt, melIt )) break; if( !melIt->isEditableText() ) break; if (x>=(int)str.length()) { if ( yisEditableText() ) { QString s2 = melIt1->getString( this ); melIt->setString( str + s2 ); // Remove the line if ( mlIt1->mergeEditLineList.size()>1 ) mlIt1->mergeEditLineList.erase( melIt1 ); else melIt1->setRemoved(); } } } else { QString s = str.left(x); s += str.mid( x+1 ); melIt->setString( s ); setModified(); } break; } case Qt::Key_Backspace: { if ( deleteSelection2( str, x, y, mlIt, melIt )) break; if( !melIt->isEditableText() ) break; if (x==0) { if ( y>0 ) { setModified(); MergeLineList::iterator mlIt1; MergeEditLineList::iterator melIt1; calcIteratorFromLineNr( y-1, mlIt1, melIt1 ); if ( melIt1->isEditableText() ) { QString s1 = melIt1->getString( this ); melIt1->setString( s1 + str ); // Remove the previous line if ( mlIt->mergeEditLineList.size()>1 ) mlIt->mergeEditLineList.erase( melIt ); else melIt->setRemoved(); --y; x=str.length(); } } } else { QString s = str.left( x-1 ); s += str.mid( x ); --x; melIt->setString( s ); setModified(); } break; } case Qt::Key_Return: case Qt::Key_Enter: { if( !melIt->isEditableText() ) break; deleteSelection2( str, x, y, mlIt, melIt ); setModified(); QString indentation; if ( m_pOptions->m_bAutoIndentation ) { // calc last indentation MergeLineList::iterator mlIt1 = mlIt; MergeEditLineList::iterator melIt1 = melIt; for(;;) { const QString s = melIt1->getString(this); if ( !s.isEmpty() ) { int i; for( i=0; imergeEditLineList.begin() ) --melIt1; else { if ( mlIt1 == m_mergeLineList.begin() ) break; --mlIt1; melIt1 = mlIt1->mergeEditLineList.end(); --melIt1; } } } MergeEditLine mel(mlIt->id3l); // Associate every mel with an id3l, even if not really valid. mel.setString( indentation + str.mid(x) ); if ( x<(int)str.length() ) // Cut off the old line. { // Since ps possibly points into melIt->str, first copy it into a temporary. QString temp = str.left(x); melIt->setString( temp ); } ++melIt; mlIt->mergeEditLineList.insert( melIt, mel ); x = indentation.length(); ++y; break; } case Qt::Key_Insert: m_bInsertMode = !m_bInsertMode; break; case Qt::Key_Pause: break; case Qt::Key_Print: break; case Qt::Key_SysReq: break; case Qt::Key_Home: x=0; if(bCtrl){y=0; } break; // cursor movement case Qt::Key_End: x=INT_MAX; if(bCtrl){y=INT_MAX;} break; case Qt::Key_Left: case Qt::Key_Right: if ( (e->key()==Qt::Key_Left) ^ m_pOptions->m_bRightToLeftLanguage ) // operator^: XOR { if ( !bCtrl ) { --x; if(x<0 && y>0){--y; x=INT_MAX;} } else { while( x>0 && (str[x-1]==' ' || str[x-1]=='\t') ) --x; while( x>0 && (str[x-1]!=' ' && str[x-1]!='\t') ) --x; } } else { if ( !bCtrl ) { ++x; if(x>(int)str.length() && ytext(); if( t.isEmpty() || bCtrl ) { e->ignore(); return; } else { if( bCtrl ) { e->ignore(); return; } else { if( !melIt->isEditableText() ) break; deleteSelection2( str, x, y, mlIt, melIt ); setModified(); // Characters to insert QString s=str; if ( t[0]=='\t' && m_pOptions->m_bReplaceTabs ) { int spaces = (m_cursorXPos / m_pOptions->m_tabSize + 1)*m_pOptions->m_tabSize - m_cursorXPos; t.fill( ' ', spaces ); } if ( m_bInsertMode ) s.insert( x, t ); else s.replace( x, t.length(), t ); melIt->setString( s ); x += t.length(); bShift = false; } } } } y = minMaxLimiter( y, 0, m_totalSize-1 ); calcIteratorFromLineNr( y, mlIt, melIt ); str = melIt->getString( this ); x = minMaxLimiter( x, 0, (int)str.length() ); int newFirstLine = m_firstLine; int newFirstColumn = m_firstColumn; if ( y m_firstLine + getNofVisibleLines() ) newFirstLine = y - getNofVisibleLines(); if (bYMoveKey) x=convertToPosInText( str, m_cursorOldXPos, m_pOptions->m_tabSize ); int xOnScreen = convertToPosOnScreen( str, x, m_pOptions->m_tabSize ); if ( xOnScreen m_firstColumn + getNofVisibleColumns() ) newFirstColumn = xOnScreen - getNofVisibleColumns(); if ( bShift ) { if (m_selection.firstLine==-1) m_selection.start( m_cursorYPos, m_cursorXPos ); m_selection.end( y, xOnScreen ); } else m_selection.reset(); m_cursorYPos = y; m_cursorXPos = xOnScreen; if ( m_cursorXPos>m_nofColumns ) { m_nofColumns = m_cursorXPos; emit resizeSignal(); } if ( ! bYMoveKey ) m_cursorOldXPos = m_cursorXPos; m_bCursorOn = false; if ( newFirstLine!=m_firstLine || newFirstColumn!=m_firstColumn ) { m_bCursorOn = true; scroll( newFirstColumn-m_firstColumn, newFirstLine-m_firstLine ); return; } m_bCursorOn = true; update(); } void MergeResultWindow::calcIteratorFromLineNr( int line, MergeResultWindow::MergeLineList::iterator& mlIt, MergeResultWindow::MergeEditLineList::iterator& melIt ) { for( mlIt = m_mergeLineList.begin(); mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; if ( line > ml.mergeEditLineList.size() ) { line -= ml.mergeEditLineList.size(); } else { for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt ) { --line; if (line<0) return; } } } assert(false); } QString MergeResultWindow::getSelection() { QString selectionString; int line = 0; MergeLineList::iterator mlIt = m_mergeLineList.begin(); for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; MergeEditLineList::iterator melIt; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt ) { MergeEditLine& mel = *melIt; if ( m_selection.lineWithin(line) ) { int outPos = 0; if (mel.isEditableText()) { const QString str = mel.getString( this ); // Consider tabs for( int i=0; im_tabSize ); } if( m_selection.within( line, outPos ) ) { selectionString += str[i]; } outPos += spaces; } } else if ( mel.isConflict() ) { selectionString += i18n(""); } if( m_selection.within( line, outPos ) ) { #ifdef _WIN32 selectionString += '\r'; #endif selectionString += '\n'; } } ++line; } } return selectionString; } bool MergeResultWindow::deleteSelection2( QString& s, int& x, int& y, MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt ) { if (m_selection.firstLine!=-1 && m_selection.bSelectionContainsData ) { deleteSelection(); y = m_cursorYPos; calcIteratorFromLineNr( y, mlIt, melIt ); s = melIt->getString( this ); x = convertToPosInText( s, m_cursorXPos, m_pOptions->m_tabSize ); return true; } return false; } void MergeResultWindow::deleteSelection() { if ( m_selection.firstLine==-1 || !m_selection.bSelectionContainsData ) { return; } setModified(); int line = 0; MergeLineList::iterator mlItFirst; MergeEditLineList::iterator melItFirst; QString firstLineString; int firstLine = -1; int lastLine = -1; MergeLineList::iterator mlIt; for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; MergeEditLineList::iterator melIt; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt ) { MergeEditLine& mel = *melIt; if ( mel.isEditableText() && m_selection.lineWithin(line) ) { if ( firstLine==-1 ) firstLine = line; lastLine = line; } ++line; } } if ( firstLine == -1 ) { return; // Nothing to delete. } line = 0; for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; MergeEditLineList::iterator melIt, melIt1; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ) { MergeEditLine& mel = *melIt; melIt1 = melIt; ++melIt1; if ( mel.isEditableText() && m_selection.lineWithin(line) ) { QString lineString = mel.getString( this ); int firstPosInLine = m_selection.firstPosInLine(line); int lastPosInLine = m_selection.lastPosInLine(line); if ( line==firstLine ) { mlItFirst = mlIt; melItFirst = melIt; int pos = convertToPosInText( lineString, firstPosInLine, m_pOptions->m_tabSize ); firstLineString = lineString.left( pos ); } if ( line==lastLine ) { // This is the last line in the selection int pos = convertToPosInText( lineString, lastPosInLine, m_pOptions->m_tabSize ); firstLineString += lineString.mid( pos ); // rest of line melItFirst->setString( firstLineString ); } if ( line!=firstLine ) { // Remove the line if ( mlIt->mergeEditLineList.size()>1 ) mlIt->mergeEditLineList.erase( melIt ); else melIt->setRemoved(); } } ++line; melIt = melIt1; } } m_cursorYPos = m_selection.beginLine(); m_cursorXPos = m_selection.beginPos(); m_cursorOldXPos = m_cursorXPos; m_selection.reset(); } void MergeResultWindow::pasteClipboard( bool bFromSelection ) { if (m_selection.firstLine != -1 ) deleteSelection(); setModified(); int y = m_cursorYPos; MergeLineList::iterator mlIt; MergeEditLineList::iterator melIt, melItAfter; calcIteratorFromLineNr( y, mlIt, melIt ); melItAfter = melIt; ++melItAfter; QString str = melIt->getString( this ); int x = convertToPosInText( str, m_cursorXPos, m_pOptions->m_tabSize ); if ( !QApplication::clipboard()->supportsSelection() ) bFromSelection = false; QString clipBoard = QApplication::clipboard()->text( bFromSelection ? QClipboard::Selection : QClipboard::Clipboard ); QString currentLine = str.left(x); QString endOfLine = str.mid(x); int i; int len = clipBoard.length(); for( i=0; isetString( currentLine ); MergeEditLine mel(mlIt->id3l); // Associate every mel with an id3l, even if not really valid. melIt = mlIt->mergeEditLineList.insert( melItAfter, mel ); currentLine = ""; x=0; ++y; } else { currentLine += c; ++x; } } currentLine += endOfLine; melIt->setString( currentLine ); m_cursorYPos = y; m_cursorXPos = convertToPosOnScreen( currentLine, x, m_pOptions->m_tabSize ); m_cursorOldXPos = m_cursorXPos; update(); } void MergeResultWindow::resetSelection() { m_selection.reset(); update(); } void MergeResultWindow::setModified(bool bModified) { if (bModified != m_bModified) { m_bModified = bModified; emit modifiedChanged(m_bModified); } } /// Saves and returns true when successful. bool MergeResultWindow::saveDocument( const QString& fileName, QTextCodec* pEncoding, e_LineEndStyle eLineEndStyle ) { // Are still conflicts somewhere? if ( getNrOfUnsolvedConflicts()>0 ) { KMessageBox::error( this, i18n("Not all conflicts are solved yet.\n" "File not saved.\n"), i18n("Conflicts Left")); return false; } if ( eLineEndStyle==eLineEndStyleConflict || eLineEndStyle==eLineEndStyleUndefined ) { KMessageBox::error( this, i18n("There is a line end style conflict. Please choose the line end style manually.\n" "File not saved.\n"), i18n("Conflicts Left")); return false; } update(); FileAccess file( fileName, true /*bWantToWrite*/ ); if ( m_pOptions->m_bDmCreateBakFiles && file.exists() ) { bool bSuccess = file.createBackup(".orig"); if ( !bSuccess ) { KMessageBox::error( this, file.getStatusText() + i18n("\n\nCreating backup failed. File not saved."), i18n("File Save Error") ); return false; } } QByteArray dataArray; QTextStream textOutStream(&dataArray, QIODevice::WriteOnly); if ( pEncoding->name()=="UTF-8" ) textOutStream.setGenerateByteOrderMark( false ); // Shouldn't be necessary. Bug in Qt or docs else textOutStream.setGenerateByteOrderMark( true ); // Only for UTF-16 textOutStream.setCodec( pEncoding ); int line = 0; MergeLineList::iterator mlIt = m_mergeLineList.begin(); for(mlIt = m_mergeLineList.begin();mlIt!=m_mergeLineList.end(); ++mlIt) { MergeLine& ml = *mlIt; MergeEditLineList::iterator melIt; for( melIt = ml.mergeEditLineList.begin(); melIt != ml.mergeEditLineList.end(); ++melIt ) { MergeEditLine& mel = *melIt; if ( mel.isEditableText() ) { QString str = mel.getString( this ); if (line>0) // Prepend line feed, but not for first line { if ( eLineEndStyle == eLineEndStyleDos ) { str.prepend("\r\n"); } else { str.prepend("\n"); } } textOutStream << str; ++line; } } } textOutStream.flush(); bool bSuccess = file.writeFile( dataArray.data(), dataArray.size() ); if ( ! bSuccess ) { KMessageBox::error( this, i18n("Error while writing."), i18n("File Save Error") ); return false; } setModified( false ); update(); return true; } QString MergeResultWindow::getString( int lineIdx ) { MergeResultWindow::MergeLineList::iterator mlIt; MergeResultWindow::MergeEditLineList::iterator melIt; calcIteratorFromLineNr( lineIdx, mlIt, melIt ); QString s = melIt->getString( this ); return s; } bool MergeResultWindow::findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive ) { int it = d3vLine; int endIt = bDirDown ? getNofLines() : -1; int step = bDirDown ? 1 : -1; int startPos = posInLine; for( ; it!=endIt; it+=step ) { QString line = getString( it ); if ( !line.isEmpty() ) { int pos = line.indexOf( s, startPos, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive ); if ( pos != -1 ) { d3vLine = it; posInLine = pos; return true; } startPos = 0; } } return false; } void MergeResultWindow::setSelection( int firstLine, int startPos, int lastLine, int endPos ) { if ( lastLine >= getNofLines() ) { lastLine = getNofLines()-1; QString s = getString( lastLine ); endPos = s.length(); } m_selection.reset(); m_selection.start( firstLine, convertToPosOnScreen( getString(firstLine), startPos, m_pOptions->m_tabSize ) ); m_selection.end( lastLine, convertToPosOnScreen( getString(lastLine), endPos, m_pOptions->m_tabSize ) ); update(); } Overview::Overview( Options* pOptions ) //: QWidget( pParent, 0, Qt::WNoAutoErase ) { m_pDiff3LineList = 0; m_pOptions = pOptions; m_bTripleDiff = false; m_eOverviewMode = eOMNormal; m_nofLines = 1; m_bPaintingAllowed = false; setFixedWidth(20); } void Overview::init( Diff3LineList* pDiff3LineList, bool bTripleDiff ) { m_pDiff3LineList = pDiff3LineList; m_bTripleDiff = bTripleDiff; m_pixmap = QPixmap( QSize(0,0) ); // make sure that a redraw happens update(); } void Overview::reset() { m_pDiff3LineList = 0; } void Overview::slotRedraw() { m_pixmap = QPixmap( QSize(0,0) ); // make sure that a redraw happens update(); } void Overview::setRange( int firstLine, int pageHeight ) { m_firstLine = firstLine; m_pageHeight = pageHeight; update(); } void Overview::setFirstLine( int firstLine ) { m_firstLine = firstLine; update(); } void Overview::setOverviewMode( e_OverviewMode eOverviewMode ) { m_eOverviewMode = eOverviewMode; slotRedraw(); } Overview::e_OverviewMode Overview::getOverviewMode() { return m_eOverviewMode; } void Overview::mousePressEvent( QMouseEvent* e ) { int h = height()-1; int h1 = h * m_pageHeight / max2(1,m_nofLines)+3; if ( h>0 ) emit setLine( ( e->y() - h1/2 )*m_nofLines/h ); } void Overview::mouseMoveEvent( QMouseEvent* e ) { mousePressEvent(e); } void Overview::setPaintingAllowed( bool bAllowPainting ) { if (m_bPaintingAllowed != bAllowPainting) { m_bPaintingAllowed = bAllowPainting; if ( m_bPaintingAllowed ) update(); else reset(); } } void Overview::drawColumn( QPainter& p, e_OverviewMode eOverviewMode, int x, int w, int h, int nofLines ) { p.setPen(Qt::black); p.drawLine( x, 0, x, h ); if (nofLines==0) return; int line = 0; int oldY = 0; int oldConflictY = -1; int wrapLineIdx=0; Diff3LineList::const_iterator i; for( i = m_pDiff3LineList->begin(); i!= m_pDiff3LineList->end(); ) { const Diff3Line& d3l = *i; int y = h * (line+1) / nofLines; e_MergeDetails md; bool bConflict; bool bLineRemoved; int src; mergeOneLine( d3l, md, bConflict, bLineRemoved, src, !m_bTripleDiff ); QColor c = m_pOptions->m_bgColor; bool bWhiteSpaceChange = false; //if( bConflict ) c=m_pOptions->m_colorForConflict; //else if ( eOverviewMode==eOMNormal ) { switch( md ) { case eDefault: case eNoChange: c = m_pOptions->m_bgColor; break; case eBAdded: case eBDeleted: case eBChanged: c = bConflict ? m_pOptions->m_colorForConflict : m_pOptions->m_colorB; bWhiteSpaceChange = d3l.bAEqB || (d3l.bWhiteLineA && d3l.bWhiteLineB); break; case eCAdded: case eCDeleted: case eCChanged: bWhiteSpaceChange = d3l.bAEqC || (d3l.bWhiteLineA && d3l.bWhiteLineC); c = bConflict ? m_pOptions->m_colorForConflict : m_pOptions->m_colorC; break; case eBCChanged: // conflict case eBCChangedAndEqual: // possible conflict case eBCDeleted: // possible conflict case eBChanged_CDeleted: // conflict case eCChanged_BDeleted: // conflict case eBCAdded: // conflict case eBCAddedAndEqual: // possible conflict c=m_pOptions->m_colorForConflict; break; default: assert(false); break; } } else if ( eOverviewMode==eOMAvsB ) { switch( md ) { case eDefault: case eNoChange: case eCAdded: case eCDeleted: case eCChanged: break; default: c = m_pOptions->m_colorForConflict; bWhiteSpaceChange = d3l.bAEqB || (d3l.bWhiteLineA && d3l.bWhiteLineB); break; } } else if ( eOverviewMode==eOMAvsC ) { switch( md ) { case eDefault: case eNoChange: case eBAdded: case eBDeleted: case eBChanged: break; default: c = m_pOptions->m_colorForConflict; bWhiteSpaceChange = d3l.bAEqC || (d3l.bWhiteLineA && d3l.bWhiteLineC); break; } } else if ( eOverviewMode==eOMBvsC ) { switch( md ) { case eDefault: case eNoChange: case eBCChangedAndEqual: case eBCDeleted: case eBCAddedAndEqual: break; default: c=m_pOptions->m_colorForConflict; bWhiteSpaceChange = d3l.bBEqC || (d3l.bWhiteLineB && d3l.bWhiteLineC); break; } } int x2 = x; int w2 = w; if ( ! m_bTripleDiff ) { if ( d3l.lineA == -1 && d3l.lineB>=0 ) { c = m_pOptions->m_colorA; x2 = w/2; w2 = x2; } if ( d3l.lineA >= 0 && d3l.lineB==-1 ) { c = m_pOptions->m_colorB; w2 = w/2; } } if (!bWhiteSpaceChange || m_pOptions->m_bShowWhiteSpace ) { // Make sure that lines with conflict are not overwritten. if ( c == m_pOptions->m_colorForConflict ) { p.fillRect(x2+1, oldY, w2, max2(1,y-oldY), bWhiteSpaceChange ? QBrush(c,Qt::Dense4Pattern) : QBrush(c) ); oldConflictY = oldY; } else if ( c!=m_pOptions->m_bgColor && oldY>oldConflictY ) { p.fillRect(x2+1, oldY, w2, max2(1,y-oldY), bWhiteSpaceChange ? QBrush(c,Qt::Dense4Pattern) : QBrush(c) ); } } oldY = y; ++line; if ( m_pOptions->m_bWordWrap ) { ++wrapLineIdx; if(wrapLineIdx>=d3l.linesNeededForDisplay) { wrapLineIdx=0; ++i; } } else { ++i; } } } void Overview::paintEvent( QPaintEvent* ) { if (m_pDiff3LineList==0 || !m_bPaintingAllowed ) return; int h = height()-1; int w = width(); if ( m_pixmap.size() != size() ) { if ( m_pOptions->m_bWordWrap ) { m_nofLines = 0; Diff3LineList::const_iterator i; for( i = m_pDiff3LineList->begin(); i!= m_pDiff3LineList->end(); ++i ) { m_nofLines += i->linesNeededForDisplay; } } else { m_nofLines = m_pDiff3LineList->size(); } m_pixmap = QPixmap( size() ); QPainter p(&m_pixmap); p.fillRect( rect(), m_pOptions->m_bgColor ); if ( !m_bTripleDiff || m_eOverviewMode == eOMNormal ) { drawColumn( p, eOMNormal, 0, w, h, m_nofLines ); } else { drawColumn( p, eOMNormal, 0, w/2, h, m_nofLines ); drawColumn( p, m_eOverviewMode, w/2, w/2, h, m_nofLines ); } } QPainter painter( this ); painter.drawPixmap( 0,0, m_pixmap ); int y1 = h * m_firstLine / m_nofLines-1; int h1 = h * m_pageHeight / m_nofLines+3; painter.setPen(Qt::black); painter.drawRect( 1, y1, w-1, h1 ); } WindowTitleWidget::WindowTitleWidget(Options* pOptions) { m_pOptions = pOptions; setAutoFillBackground(true); QHBoxLayout* pHLayout = new QHBoxLayout(this); pHLayout->setMargin(2); pHLayout->setSpacing(2); m_pLabel = new QLabel(i18n("Output")+":"); pHLayout->addWidget( m_pLabel ); m_pFileNameLineEdit = new QLineEdit(); pHLayout->addWidget( m_pFileNameLineEdit, 6 ); m_pFileNameLineEdit->installEventFilter( this ); m_pFileNameLineEdit->setReadOnly( true ); //m_pBrowseButton = new QPushButton("..."); //pHLayout->addWidget( m_pBrowseButton, 0 ); //connect( m_pBrowseButton, SIGNAL(clicked()), this, SLOT(slotBrowseButtonClicked())); m_pModifiedLabel = new QLabel(i18n("[Modified]")); pHLayout->addWidget( m_pModifiedLabel ); m_pModifiedLabel->setMinimumSize( m_pModifiedLabel->sizeHint() ); m_pModifiedLabel->setText(""); pHLayout->addStretch(1); m_pEncodingLabel = new QLabel(i18n("Encoding for saving")+":"); pHLayout->addWidget( m_pEncodingLabel ); m_pEncodingSelector = new QComboBox(); m_pEncodingSelector->setSizeAdjustPolicy( QComboBox::AdjustToContents ); pHLayout->addWidget( m_pEncodingSelector, 2 ); setEncodings(0,0,0); m_pLineEndStyleLabel = new QLabel( i18n("Line end style:") ); pHLayout->addWidget( m_pLineEndStyleLabel ); m_pLineEndStyleSelector = new QComboBox(); m_pLineEndStyleSelector->setSizeAdjustPolicy( QComboBox::AdjustToContents ); pHLayout->addWidget( m_pLineEndStyleSelector ); setLineEndStyles(eLineEndStyleUndefined,eLineEndStyleUndefined,eLineEndStyleUndefined); } void WindowTitleWidget::setFileName( const QString& fileName ) { m_pFileNameLineEdit->setText( QDir::toNativeSeparators(fileName) ); } QString WindowTitleWidget::getFileName() { return m_pFileNameLineEdit->text(); } //static QString getLineEndStyleName( e_LineEndStyle eLineEndStyle ) //{ // if ( eLineEndStyle == eLineEndStyleDos ) // return "DOS"; // else if ( eLineEndStyle == eLineEndStyleUnix ) // return "Unix"; // return QString(); //} void WindowTitleWidget::setLineEndStyles( e_LineEndStyle eLineEndStyleA, e_LineEndStyle eLineEndStyleB, e_LineEndStyle eLineEndStyleC) { m_pLineEndStyleSelector->clear(); QString dosUsers; if ( eLineEndStyleA == eLineEndStyleDos ) dosUsers += "A"; if ( eLineEndStyleB == eLineEndStyleDos ) dosUsers += (dosUsers.isEmpty() ? "" : ", ") + QString("B"); if ( eLineEndStyleC == eLineEndStyleDos ) dosUsers += (dosUsers.isEmpty() ? "" : ", ") + QString("C"); QString unxUsers; if ( eLineEndStyleA == eLineEndStyleUnix ) unxUsers += "A"; if ( eLineEndStyleB == eLineEndStyleUnix ) unxUsers += (unxUsers.isEmpty() ? "" : ", ") + QString("B"); if ( eLineEndStyleC == eLineEndStyleUnix ) unxUsers += (unxUsers.isEmpty() ? "" : ", ") + QString("C"); m_pLineEndStyleSelector->addItem( i18n("Unix") + (unxUsers.isEmpty() ? QString("") : " (" + unxUsers + ")" ) ); m_pLineEndStyleSelector->addItem( i18n("DOS") + (dosUsers.isEmpty() ? QString("") : " (" + dosUsers + ")" ) ); e_LineEndStyle autoChoice = (e_LineEndStyle)m_pOptions->m_lineEndStyle; if ( m_pOptions->m_lineEndStyle == eLineEndStyleAutoDetect ) { if ( eLineEndStyleA != eLineEndStyleUndefined && eLineEndStyleB != eLineEndStyleUndefined && eLineEndStyleC != eLineEndStyleUndefined ) { if ( eLineEndStyleA == eLineEndStyleB ) autoChoice = eLineEndStyleC; else if ( eLineEndStyleA == eLineEndStyleC ) autoChoice = eLineEndStyleB; else autoChoice = eLineEndStyleConflict; //conflict (not likely while only two values exist) } else { e_LineEndStyle c1, c2; if ( eLineEndStyleA == eLineEndStyleUndefined ) { c1 = eLineEndStyleB; c2 = eLineEndStyleC; } else if( eLineEndStyleB == eLineEndStyleUndefined ) { c1 = eLineEndStyleA; c2 = eLineEndStyleC; } else /*if( eLineEndStyleC == eLineEndStyleUndefined )*/ { c1 = eLineEndStyleA; c2 = eLineEndStyleB; } if ( c1 == c2 && c1!=eLineEndStyleUndefined ) autoChoice = c1; else autoChoice = eLineEndStyleConflict; } } if ( autoChoice == eLineEndStyleUnix ) m_pLineEndStyleSelector->setCurrentIndex(0); else if ( autoChoice == eLineEndStyleDos ) m_pLineEndStyleSelector->setCurrentIndex(1); else if ( autoChoice == eLineEndStyleConflict ) { m_pLineEndStyleSelector->addItem( i18n("Conflict") ); m_pLineEndStyleSelector->setCurrentIndex(2); } } e_LineEndStyle WindowTitleWidget::getLineEndStyle( ) { int current = m_pLineEndStyleSelector->currentIndex(); if (current == 0) return eLineEndStyleUnix; else if (current == 1) return eLineEndStyleDos; else return eLineEndStyleConflict; } void WindowTitleWidget::setEncodings( QTextCodec* pCodecForA, QTextCodec* pCodecForB, QTextCodec* pCodecForC ) { m_pEncodingSelector->clear(); // First sort codec names: std::map names; QList mibs = QTextCodec::availableMibs(); foreach(int i, mibs) { QTextCodec* c = QTextCodec::codecForMib(i); if ( c!=0 ) names[QString(c->name())]=c; } if ( pCodecForA ) m_pEncodingSelector->addItem( i18n("Codec from") + " A: " + pCodecForA->name(), QVariant::fromValue((void*)pCodecForA) ); if ( pCodecForB ) m_pEncodingSelector->addItem( i18n("Codec from") + " B: " + pCodecForB->name(), QVariant::fromValue((void*)pCodecForB) ); if ( pCodecForC ) m_pEncodingSelector->addItem( i18n("Codec from") + " C: " + pCodecForC->name(), QVariant::fromValue((void*)pCodecForC) ); std::map::iterator it; for(it=names.begin();it!=names.end();++it) { m_pEncodingSelector->addItem( it->first, QVariant::fromValue((void*)it->second) ); } m_pEncodingSelector->setMinimumSize( m_pEncodingSelector->sizeHint() ); if ( pCodecForC && pCodecForB && pCodecForA ) { if ( pCodecForA == pCodecForB ) m_pEncodingSelector->setCurrentIndex( 2 ); // C else if ( pCodecForA == pCodecForC ) m_pEncodingSelector->setCurrentIndex( 1 ); // B else m_pEncodingSelector->setCurrentIndex( 2 ); // C } else if ( pCodecForA && pCodecForB ) m_pEncodingSelector->setCurrentIndex( 1 ); // B else m_pEncodingSelector->setCurrentIndex( 0 ); } QTextCodec* WindowTitleWidget::getEncoding() { return (QTextCodec*)m_pEncodingSelector->itemData( m_pEncodingSelector->currentIndex() ).value(); } void WindowTitleWidget::setEncoding(QTextCodec* pEncoding) { int idx = m_pEncodingSelector->findText( pEncoding->name() ); if (idx>=0) m_pEncodingSelector->setCurrentIndex( idx ); } //void WindowTitleWidget::slotBrowseButtonClicked() //{ // QString current = m_pFileNameLineEdit->text(); // // KUrl newURL = KFileDialog::getSaveUrl( current, 0, this, i18n("Select file (not saving yet)")); // if ( !newURL.isEmpty() ) // { // m_pFileNameLineEdit->setText( newURL.url() ); // } //} void WindowTitleWidget::slotSetModified( bool bModified ) { m_pModifiedLabel->setText( bModified ? i18n("[Modified]") : "" ); } bool WindowTitleWidget::eventFilter( QObject* o, QEvent* e ) { if ( e->type()==QEvent::FocusIn || e->type()==QEvent::FocusOut ) { QPalette p = m_pLabel->palette(); QColor c1 = m_pOptions->m_fgColor; QColor c2 = Qt::lightGray; if ( e->type()==QEvent::FocusOut ) c2 = m_pOptions->m_bgColor; p.setColor(QPalette::Window, c2); setPalette( p ); p.setColor(QPalette::WindowText, c1); m_pLabel->setPalette( p ); m_pEncodingLabel->setPalette( p ); m_pEncodingSelector->setPalette( p ); } if (o == m_pFileNameLineEdit && e->type()==QEvent::Drop) { QDropEvent* d = static_cast(e); if ( d->mimeData()->hasUrls() ) { QList lst = d->mimeData()->urls(); if ( lst.count() > 0 ) { static_cast(o)->setText( lst[0].toString() ); static_cast(o)->setFocus(); return true; } } } return false; } //#include "mergeresultwindow.moc" kdiff3-0.9.97/src-QT4/diff.h0000644000175100001440000003316212000244602014571 0ustar joachimusers/*************************************************************************** diff.h - description ------------------- begin : Mon Mar 18 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef DIFF_H #define DIFF_H #include #include #include #include #include "common.h" #include "fileaccess.h" #include "options.h" // Each range with matching elements is followed by a range with differences on either side. // Then again range of matching elements should follow. struct Diff { int nofEquals; int diff1; int diff2; Diff(int eq, int d1, int d2){nofEquals=eq; diff1=d1; diff2=d2; } }; typedef std::list DiffList; struct LineData { const QChar* pLine; const QChar* pFirstNonWhiteChar; int size; LineData(){ pLine=0; pFirstNonWhiteChar=0; size=0; /*occurances=0;*/ bContainsPureComment=false; } int width(int tabSize) const; // Calcs width considering tabs. //int occurances; bool whiteLine() const { return pFirstNonWhiteChar-pLine == size; } bool bContainsPureComment; }; class Diff3LineList; class Diff3LineVector; struct DiffBufferInfo { const LineData* m_pLineDataA; const LineData* m_pLineDataB; const LineData* m_pLineDataC; int m_sizeA; int m_sizeB; int m_sizeC; const Diff3LineList* m_pDiff3LineList; const Diff3LineVector* m_pDiff3LineVector; void init( Diff3LineList* d3ll, const Diff3LineVector* d3lv, const LineData* pldA, int sizeA, const LineData* pldB, int sizeB, const LineData* pldC, int sizeC ); }; struct Diff3Line { int lineA; int lineB; int lineC; bool bAEqC : 1; // These are true if equal or only white-space changes exist. bool bBEqC : 1; bool bAEqB : 1; bool bWhiteLineA : 1; bool bWhiteLineB : 1; bool bWhiteLineC : 1; DiffList* pFineAB; // These are 0 only if completely equal or if either source doesn't exist. DiffList* pFineBC; DiffList* pFineCA; int linesNeededForDisplay; // Due to wordwrap int sumLinesNeededForDisplay; // For fast conversion to m_diff3WrapLineVector DiffBufferInfo* m_pDiffBufferInfo; // For convenience Diff3Line() { lineA=-1; lineB=-1; lineC=-1; bAEqC=false; bAEqB=false; bBEqC=false; pFineAB=0; pFineBC=0; pFineCA=0; linesNeededForDisplay=1; sumLinesNeededForDisplay=0; bWhiteLineA=false; bWhiteLineB=false; bWhiteLineC=false; m_pDiffBufferInfo=0; } ~Diff3Line() { if (pFineAB!=0) delete pFineAB; if (pFineBC!=0) delete pFineBC; if (pFineCA!=0) delete pFineCA; pFineAB=0; pFineBC=0; pFineCA=0; } bool operator==( const Diff3Line& d3l ) const { return lineA == d3l.lineA && lineB == d3l.lineB && lineC == d3l.lineC && bAEqB == d3l.bAEqB && bAEqC == d3l.bAEqC && bBEqC == d3l.bBEqC; } const LineData* getLineData( int src ) const { assert( m_pDiffBufferInfo!=0 ); if ( src == 1 && lineA >= 0 ) return &m_pDiffBufferInfo->m_pLineDataA[lineA]; if ( src == 2 && lineB >= 0 ) return &m_pDiffBufferInfo->m_pLineDataB[lineB]; if ( src == 3 && lineC >= 0 ) return &m_pDiffBufferInfo->m_pLineDataC[lineC]; return 0; } QString getString( int src ) const { const LineData* pld = getLineData(src); if ( pld ) return QString( pld->pLine, pld->size); else return QString(); } int getLineInFile( int src ) const { if ( src == 1 ) return lineA; if ( src == 2 ) return lineB; if ( src == 3 ) return lineC; return -1; } }; class Diff3LineList : public std::list { }; class Diff3LineVector : public std::vector { }; class Diff3WrapLine { public: Diff3Line* pD3L; int diff3LineIndex; int wrapLineOffset; int wrapLineLength; }; typedef std::vector Diff3WrapLineVector; class TotalDiffStatus { public: TotalDiffStatus(){ reset(); } void reset() {bBinaryAEqC=false; bBinaryBEqC=false; bBinaryAEqB=false; bTextAEqC=false; bTextBEqC=false; bTextAEqB=false; nofUnsolvedConflicts=0; nofSolvedConflicts=0; nofWhitespaceConflicts=0; } bool bBinaryAEqC : 1; bool bBinaryBEqC : 1; bool bBinaryAEqB : 1; bool bTextAEqC : 1; bool bTextBEqC : 1; bool bTextAEqB : 1; int nofUnsolvedConflicts; int nofSolvedConflicts; int nofWhitespaceConflicts; }; // Three corresponding ranges. (Minimum size of a valid range is one line.) class ManualDiffHelpEntry { public: ManualDiffHelpEntry() { lineA1=-1; lineA2=-1; lineB1=-1; lineB2=-1; lineC1=-1; lineC2=-1; } int lineA1; int lineA2; int lineB1; int lineB2; int lineC1; int lineC2; int& firstLine( int winIdx ) { return winIdx==1 ? lineA1 : (winIdx==2 ? lineB1 : lineC1 ); } int& lastLine( int winIdx ) { return winIdx==1 ? lineA2 : (winIdx==2 ? lineB2 : lineC2 ); } bool isLineInRange( int line, int winIdx ) { return line>=0 && line>=firstLine(winIdx) && line<=lastLine(winIdx); } bool operator==(const ManualDiffHelpEntry& r) const { return lineA1 == r.lineA1 && lineB1 == r.lineB1 && lineC1 == r.lineC1 && lineA2 == r.lineA2 && lineB2 == r.lineB2 && lineC2 == r.lineC2; } }; // A list of corresponding ranges typedef std::list ManualDiffHelpList; void calcDiff3LineListUsingAB( const DiffList* pDiffListAB, Diff3LineList& d3ll ); void calcDiff3LineListUsingAC( const DiffList* pDiffListBC, Diff3LineList& d3ll ); void calcDiff3LineListUsingBC( const DiffList* pDiffListBC, Diff3LineList& d3ll ); void correctManualDiffAlignment( Diff3LineList& d3ll, ManualDiffHelpList* pManualDiffHelpList ); class SourceData { public: SourceData(); ~SourceData(); void setOptions( Options* pOptions ); int getSizeLines() const; int getSizeBytes() const; const char* getBuf() const; const QString& getText() const; const LineData* getLineDataForDisplay() const; const LineData* getLineDataForDiff() const; void setFilename(const QString& filename); void setFileAccess( const FileAccess& fa ); void setEncoding(QTextCodec* pEncoding); //FileAccess& getFileAccess(); QString getFilename(); void setAliasName(const QString& a); QString getAliasName(); bool isEmpty(); // File was set bool hasData(); // Data was readable bool isText(); // is it pure text (vs. binary data) bool isIncompleteConversion(); // true if some replacement characters were found bool isFromBuffer(); // was it set via setData() (vs. setFileAccess() or setFilename()) QStringList setData( const QString& data ); bool isValid(); // Either no file is specified or reading was successful // Returns a list of error messages if anything went wrong QStringList readAndPreprocess(QTextCodec* pEncoding, bool bAutoDetectUnicode ); bool saveNormalDataAs( const QString& fileName ); bool isBinaryEqualWith( const SourceData& other ) const; void reset(); QTextCodec* getEncoding() const { return m_pEncoding; } e_LineEndStyle getLineEndStyle() const { return m_normalData.m_eLineEndStyle; } private: QTextCodec* detectEncoding( const QString& fileName, QTextCodec* pFallbackCodec ); QString m_aliasName; FileAccess m_fileAccess; Options* m_pOptions; QString m_tempInputFileName; struct FileData { FileData(){ m_pBuf=0; m_size=0; m_vSize=0; m_bIsText=false; m_eLineEndStyle=eLineEndStyleUndefined; m_bIncompleteConversion=false;} ~FileData(){ reset(); } const char* m_pBuf; int m_size; int m_vSize; // Nr of lines in m_pBuf1 and size of m_v1, m_dv12 and m_dv13 QString m_unicodeBuf; std::vector m_v; bool m_bIsText; bool m_bIncompleteConversion; e_LineEndStyle m_eLineEndStyle; bool readFile( const QString& filename ); bool writeFile( const QString& filename ); void preprocess(bool bPreserveCR, QTextCodec* pEncoding ); void reset(); void removeComments(); void copyBufFrom( const FileData& src ); }; FileData m_normalData; FileData m_lmppData; QTextCodec* m_pEncoding; }; void calcDiff3LineListTrim( Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC, ManualDiffHelpList* pManualDiffHelpList ); void calcWhiteDiff3Lines( Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC ); void calcDiff3LineVector( Diff3LineList& d3ll, Diff3LineVector& d3lv ); class Selection { public: Selection(){ reset(); oldLastLine=-1; lastLine=-1; oldFirstLine=-1; } int firstLine; int firstPos; int lastLine; int lastPos; int oldLastLine; int oldFirstLine; bool bSelectionContainsData; bool isEmpty() { return firstLine==-1 || (firstLine==lastLine && firstPos==lastPos) || bSelectionContainsData==false;} void reset(){ oldFirstLine=firstLine; oldLastLine =lastLine; firstLine=-1; lastLine=-1; bSelectionContainsData = false; } void start( int l, int p ) { firstLine = l; firstPos = p; } void end( int l, int p ) { if ( oldLastLine == -1 ) oldLastLine = lastLine; lastLine = l; lastPos = p; } bool within( int l, int p ); bool lineWithin( int l ); int firstPosInLine(int l); int lastPosInLine(int l); int beginLine(){ if (firstLine<0 && lastLine<0) return -1; return max2(0,min2(firstLine,lastLine)); } int endLine(){ if (firstLine<0 && lastLine<0) return -1; return max2(firstLine,lastLine); } int beginPos() { return firstLine==lastLine ? min2(firstPos,lastPos) : firstLine=0; --i ) { s2 += s[i]; } QPainter::drawText( m_xOffset-m_fontWidth*s.length() + m_factor*x, y, s2 ); return; } QPainter::drawText( m_xOffset-m_fontWidth*s.length() + m_factor*x, y, s ); } void drawLine( int x1, int y1, int x2, int y2 ) { QPainter::drawLine( m_xOffset + m_factor*x1, y1, m_xOffset + m_factor*x2, y2 ); } }; bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList, int winIdx1, int winIdx2, ManualDiffHelpList *pManualDiffHelpList, Options *pOptions); bool fineDiff( Diff3LineList& diff3LineList, int selector, const LineData* v1, const LineData* v2 ); bool equal( const LineData& l1, const LineData& l2, bool bStrict ); inline bool isWhite( QChar c ) { return c==' ' || c=='\t' || c=='\r'; } /** Returns the number of equivalent spaces at position outPos. */ inline int tabber( int outPos, int tabSize ) { return tabSize - ( outPos % tabSize ); } /** Returns a line number where the linerange [line, line+nofLines] can be displayed best. If it fits into the currently visible range then the returned value is the current firstLine. */ int getBestFirstLine( int line, int nofLines, int firstLine, int visibleLines ); extern bool g_bIgnoreWhiteSpace; extern bool g_bIgnoreTrivialMatches; extern int g_bAutoSolve; // Cursor conversions that consider g_tabSize. int convertToPosInText( const QString& s, int posOnScreen, int tabSize ); int convertToPosOnScreen( const QString& s, int posInText, int tabSize ); enum e_CoordType { eFileCoords, eD3LLineCoords, eWrapCoords }; void calcTokenPos( const QString&, int posOnScreen, int& pos1, int& pos2, int tabSize ); QString calcHistorySortKey( const QString& keyOrder, QRegExp& matchedRegExpr, const QStringList& parenthesesGroupList ); bool findParenthesesGroups( const QString& s, QStringList& sl ); #endif kdiff3-0.9.97/src-QT4/optiondialog.cpp0000644000175100001440000022655612000274744016731 0ustar joachimusers/* * kdiff3 - Text Diff And Merge Tool * Copyright (C) 2002-2009 Joachim Eibl, joachim.eibl at gmx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // For KFontChooser #include #include #include #include #include //For ktoolbar.h #include //#include #include #include "optiondialog.h" #include "diff.h" #include "smalldialogs.h" #ifndef KREPLACEMENTS_H #include #endif #define KDIFF3_CONFIG_GROUP "KDiff3 Options" static QString s_historyEntryStartRegExpToolTip; static QString s_historyEntryStartSortKeyOrderToolTip; static QString s_autoMergeRegExpToolTip; static QString s_historyStartRegExpToolTip; void OptionDialog::addOptionItem(OptionItem* p) { m_optionItemList.push_back(p); } class OptionItem { public: OptionItem( OptionDialog* pOptionDialog, const QString& saveName ) { assert(pOptionDialog!=0); pOptionDialog->addOptionItem( this ); m_saveName = saveName; m_bPreserved = false; } virtual ~OptionItem(){} virtual void setToDefault()=0; virtual void setToCurrent()=0; virtual void apply()=0; virtual void write(ValueMap*)=0; virtual void read(ValueMap*)=0; void doPreserve(){ if (!m_bPreserved){ m_bPreserved=true; preserve(); } } void doUnpreserve(){ if( m_bPreserved ){ unpreserve(); } } QString getSaveName(){return m_saveName;} protected: virtual void preserve()=0; virtual void unpreserve()=0; bool m_bPreserved; QString m_saveName; }; template class OptionItemT : public OptionItem { public: OptionItemT( OptionDialog* pOptionDialog, const QString& saveName ) : OptionItem(pOptionDialog,saveName ) {} protected: virtual void preserve(){ m_preservedVal = *m_pVar; } virtual void unpreserve(){ *m_pVar = m_preservedVal; } T* m_pVar; T m_preservedVal; T m_defaultVal; }; class OptionCheckBox : public QCheckBox, public OptionItemT { public: OptionCheckBox( QString text, bool bDefaultVal, const QString& saveName, bool* pbVar, QWidget* pParent, OptionDialog* pOD ) : QCheckBox( text, pParent ), OptionItemT( pOD, saveName ) { m_pVar = pbVar; m_defaultVal = bDefaultVal; } void setToDefault(){ setChecked( m_defaultVal ); } void setToCurrent(){ setChecked( *m_pVar ); } void apply() { *m_pVar = isChecked(); } void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar ); } void read (ValueMap* config){ *m_pVar = config->readBoolEntry( m_saveName, *m_pVar ); } private: OptionCheckBox( const OptionCheckBox& ); // private copy constructor without implementation }; class OptionRadioButton : public QRadioButton, public OptionItemT { public: OptionRadioButton( QString text, bool bDefaultVal, const QString& saveName, bool* pbVar, QWidget* pParent, OptionDialog* pOD ) : QRadioButton( text, pParent ), OptionItemT( pOD, saveName ) { m_pVar = pbVar; m_defaultVal = bDefaultVal; } void setToDefault(){ setChecked( m_defaultVal ); } void setToCurrent(){ setChecked( *m_pVar ); } void apply() { *m_pVar = isChecked(); } void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar ); } void read (ValueMap* config){ *m_pVar = config->readBoolEntry( m_saveName, *m_pVar ); } private: OptionRadioButton( const OptionRadioButton& ); // private copy constructor without implementation }; template class OptionT : public OptionItemT { public: OptionT( const T& defaultVal, const QString& saveName, T* pVar, OptionDialog* pOD ) : OptionItemT( pOD, saveName ) { this->m_pVar = pVar; *this->m_pVar = defaultVal; } OptionT( const QString& saveName, T* pVar, OptionDialog* pOD ) : OptionItemT( pOD, saveName ) { this->m_pVar = pVar; } void setToDefault(){} void setToCurrent(){} void apply() {} void write(ValueMap* vm){ writeEntry( vm, this->m_saveName, *this->m_pVar ); } void read (ValueMap* vm){ *this->m_pVar = vm->readEntry ( this->m_saveName, *this->m_pVar ); } private: OptionT( const OptionT& ); // private copy constructor without implementation }; template void writeEntry(ValueMap* vm, const QString& saveName, const T& v ) { vm->writeEntry( saveName, v ); } static void writeEntry(ValueMap* vm, const QString& saveName, const QStringList& v ) { vm->writeEntry( saveName, v, '|' ); } //static void readEntry(ValueMap* vm, const QString& saveName, bool& v ) { v = vm->readBoolEntry( saveName, v ); } //static void readEntry(ValueMap* vm, const QString& saveName, int& v ) { v = vm->readNumEntry( saveName, v ); } //static void readEntry(ValueMap* vm, const QString& saveName, QSize& v ) { v = vm->readSizeEntry( saveName, &v ); } //static void readEntry(ValueMap* vm, const QString& saveName, QPoint& v ) { v = vm->readPointEntry( saveName, &v ); } //static void readEntry(ValueMap* vm, const QString& saveName, QStringList& v ){ v = vm->readListEntry( saveName, QStringList(), '|' ); } typedef OptionT OptionToggleAction; typedef OptionT OptionNum; typedef OptionT OptionPoint; typedef OptionT OptionSize; typedef OptionT OptionStringList; class OptionFontChooser : public KFontChooser, public OptionItemT { public: OptionFontChooser( const QFont& defaultVal, const QString& saveName, QFont* pVar, QWidget* pParent, OptionDialog* pOD ) : KFontChooser( pParent ), OptionItemT( pOD, saveName ) { m_pVar = pVar; *m_pVar = defaultVal; m_defaultVal = defaultVal; } void setToDefault(){ setFont( m_defaultVal, true /*only fixed*/ ); } void setToCurrent(){ setFont( *m_pVar, true /*only fixed*/ ); } void apply() { *m_pVar = font();} void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar ); } void read (ValueMap* config){ *m_pVar = config->readFontEntry( m_saveName, m_pVar ); } private: OptionFontChooser( const OptionToggleAction& ); // private copy constructor without implementation }; class OptionColorButton : public KColorButton, public OptionItemT { public: OptionColorButton( QColor defaultVal, const QString& saveName, QColor* pVar, QWidget* pParent, OptionDialog* pOD ) : KColorButton( pParent ), OptionItemT( pOD, saveName ) { m_pVar = pVar; m_defaultVal = defaultVal; } void setToDefault(){ setColor( m_defaultVal ); } void setToCurrent(){ setColor( *m_pVar ); } void apply() { *m_pVar = color(); } void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar ); } void read (ValueMap* config){ *m_pVar = config->readColorEntry( m_saveName, m_pVar ); } private: OptionColorButton( const OptionColorButton& ); // private copy constructor without implementation }; class OptionLineEdit : public QComboBox, public OptionItemT { public: OptionLineEdit( const QString& defaultVal, const QString& saveName, QString* pVar, QWidget* pParent, OptionDialog* pOD ) : QComboBox( pParent ), OptionItemT( pOD, saveName ) { setMinimumWidth(50); setEditable(true); m_pVar = pVar; m_defaultVal = defaultVal; m_list.push_back(defaultVal); insertText(); } void setToDefault(){ setEditText( m_defaultVal ); } void setToCurrent(){ setEditText( *m_pVar ); } void apply() { *m_pVar = currentText(); insertText(); } void write(ValueMap* config){ config->writeEntry( m_saveName, m_list, '|' ); } void read (ValueMap* config){ m_list = config->readListEntry( m_saveName, QStringList(m_defaultVal), '|' ); if ( !m_list.empty() ) *m_pVar = m_list.front(); clear(); insertItems(0,m_list); } private: void insertText() { // Check if the text exists. If yes remove it and push it in as first element QString current = currentText(); m_list.removeAll( current ); m_list.push_front( current ); clear(); if ( m_list.size()>10 ) m_list.erase( m_list.begin()+10, m_list.end() ); insertItems(0,m_list); } OptionLineEdit( const OptionLineEdit& ); // private copy constructor without implementation QStringList m_list; }; #if defined QT_NO_VALIDATOR #error No validator #endif class OptionIntEdit : public QLineEdit, public OptionItemT { public: OptionIntEdit( int defaultVal, const QString& saveName, int* pVar, int rangeMin, int rangeMax, QWidget* pParent, OptionDialog* pOD ) : QLineEdit( pParent ), OptionItemT( pOD, saveName ) { m_pVar = pVar; m_defaultVal = defaultVal; QIntValidator* v = new QIntValidator(this); v->setRange( rangeMin, rangeMax ); setValidator( v ); } void setToDefault(){ QString s; s.setNum(m_defaultVal); setText( s ); } void setToCurrent(){ QString s; s.setNum(*m_pVar); setText( s ); } void apply() { const QIntValidator* v=static_cast(validator()); *m_pVar = minMaxLimiter( text().toInt(), v->bottom(), v->top()); setText( QString::number(*m_pVar) ); } void write(ValueMap* config){ config->writeEntry(m_saveName, *m_pVar ); } void read (ValueMap* config){ *m_pVar = config->readNumEntry( m_saveName, *m_pVar ); } private: OptionIntEdit( const OptionIntEdit& ); // private copy constructor without implementation }; class OptionComboBox : public QComboBox, public OptionItem { public: OptionComboBox( int defaultVal, const QString& saveName, int* pVarNum, QWidget* pParent, OptionDialog* pOD ) : QComboBox( pParent ), OptionItem( pOD, saveName ) { setMinimumWidth(50); m_pVarNum = pVarNum; m_pVarStr = 0; m_defaultVal = defaultVal; setEditable(false); } OptionComboBox( int defaultVal, const QString& saveName, QString* pVarStr, QWidget* pParent, OptionDialog* pOD ) : QComboBox( pParent ), OptionItem( pOD, saveName ) { m_pVarNum = 0; m_pVarStr = pVarStr; m_defaultVal = defaultVal; setEditable(false); } void setToDefault() { setCurrentIndex( m_defaultVal ); if (m_pVarStr!=0){ *m_pVarStr=currentText(); } } void setToCurrent() { if (m_pVarNum!=0) setCurrentIndex( *m_pVarNum ); else setText( *m_pVarStr ); } void apply() { if (m_pVarNum!=0){ *m_pVarNum = currentIndex(); } else { *m_pVarStr = currentText(); } } void write(ValueMap* config) { if (m_pVarStr!=0) config->writeEntry(m_saveName, *m_pVarStr ); else config->writeEntry(m_saveName, *m_pVarNum ); } void read (ValueMap* config) { if (m_pVarStr!=0) setText( config->readEntry( m_saveName, currentText() ) ); else *m_pVarNum = config->readNumEntry( m_saveName, *m_pVarNum ); } void preserve() { if (m_pVarStr!=0) { m_preservedStrVal = *m_pVarStr; } else { m_preservedNumVal = *m_pVarNum; } } void unpreserve() { if (m_pVarStr!=0) { *m_pVarStr = m_preservedStrVal; } else { *m_pVarNum = m_preservedNumVal; } } private: OptionComboBox( const OptionIntEdit& ); // private copy constructor without implementation int* m_pVarNum; int m_preservedNumVal; QString* m_pVarStr; QString m_preservedStrVal; int m_defaultVal; void setText(const QString& s) { // Find the string in the combobox-list, don't change the value if nothing fits. for( int i=0; i m_codecVec; QTextCodec** m_ppVarCodec; public: OptionEncodingComboBox( const QString& saveName, QTextCodec** ppVarCodec, QWidget* pParent, OptionDialog* pOD ) : QComboBox( pParent ), OptionItem( pOD, saveName ) { m_ppVarCodec = ppVarCodec; insertCodec( i18n("Unicode, 8 bit"), QTextCodec::codecForName("UTF-8") ); insertCodec( i18n("Unicode"), QTextCodec::codecForName("iso-10646-UCS-2") ); insertCodec( i18n("Latin1"), QTextCodec::codecForName("iso 8859-1") ); // First sort codec names: std::map names; QList mibs = QTextCodec::availableMibs(); foreach(int i, mibs) { QTextCodec* c = QTextCodec::codecForMib(i); if ( c!=0 ) names[QString(c->name()).toUpper()]=c; } std::map::iterator it; for(it=names.begin();it!=names.end();++it) { insertCodec( "", it->second ); } this->setToolTip( i18n( "Change this if non-ASCII characters are not displayed correctly." )); } void insertCodec( const QString& visibleCodecName, QTextCodec* c ) { if (c!=0) { for( unsigned int i=0; iname()) : visibleCodecName+" ("+c->name()+")", (int)m_codecVec.size() ); m_codecVec.push_back( c ); } } void setToDefault() { QString defaultName = QTextCodec::codecForLocale()->name(); for(int i=0;iwriteEntry(m_saveName, QString((*m_ppVarCodec)->name()) ); } void read (ValueMap* config) { QString codecName = config->readEntry( m_saveName, QString(m_codecVec[ currentIndex() ]->name()) ); for(unsigned int i=0; iname() ) { setCurrentIndex( i ); if (m_ppVarCodec!=0) *m_ppVarCodec = m_codecVec[i]; break; } } } protected: void preserve() { m_preservedVal = currentIndex(); } void unpreserve() { setCurrentIndex( m_preservedVal ); } int m_preservedVal; }; OptionDialog::OptionDialog( bool bShowDirMergeSettings, QWidget *parent, char *name ) : // KPageDialog( IconList, i18n("Configure"), Help|Default|Apply|Ok|Cancel, // Ok, parent, name, true /*modal*/, true ) KPageDialog( parent ) { setFaceType( List ); setWindowTitle( i18n("Configure") ); setButtons( Help|Default|Apply|Ok|Cancel ); setDefaultButton( Ok ); setObjectName( name ); setModal( true ); showButtonSeparator( true ); setHelp( "kdiff3/index.html", QString::null ); setupFontPage(); setupColorPage(); setupEditPage(); setupDiffPage(); setupMergePage(); setupOtherOptions(); if (bShowDirMergeSettings) setupDirectoryMergePage(); setupRegionalPage(); setupIntegrationPage(); //setupKeysPage(); // Initialize all values in the dialog resetToDefaults(); slotApply(); connect(this, SIGNAL(applyClicked()), this, SLOT(slotApply())); connect(this, SIGNAL(okClicked()), this, SLOT(slotOk())); //helpClicked() is connected in KDiff3App::KDiff3App connect(this, SIGNAL(defaultClicked()), this, SLOT(slotDefault())); } OptionDialog::~OptionDialog( void ) { } void OptionDialog::setupOtherOptions() { new OptionToggleAction( false, "AutoAdvance", &m_options.m_bAutoAdvance, this ); new OptionToggleAction( true, "ShowWhiteSpaceCharacters", &m_options.m_bShowWhiteSpaceCharacters, this ); new OptionToggleAction( true, "ShowWhiteSpace", &m_options.m_bShowWhiteSpace, this ); new OptionToggleAction( false, "ShowLineNumbers", &m_options.m_bShowLineNumbers, this ); new OptionToggleAction( true, "HorizDiffWindowSplitting", &m_options.m_bHorizDiffWindowSplitting, this ); new OptionToggleAction( false, "WordWrap", &m_options.m_bWordWrap, this ); new OptionToggleAction( true, "ShowIdenticalFiles", &m_options.m_bDmShowIdenticalFiles, this ); new OptionToggleAction( true, "Show Toolbar", &m_options.m_bShowToolBar, this ); new OptionToggleAction( true, "Show Statusbar", &m_options.m_bShowStatusBar, this ); /* TODO manage toolbar positioning new OptionNum( (int)KToolBar::Top, "ToolBarPos", &m_toolBarPos, this ); */ new OptionSize( QSize(600,400),"Geometry", &m_options.m_geometry, this ); new OptionPoint( QPoint(0,22), "Position", &m_options.m_position, this ); new OptionToggleAction( false, "WindowStateMaximised", &m_options.m_bMaximised, this ); new OptionStringList( "RecentAFiles", &m_options.m_recentAFiles, this ); new OptionStringList( "RecentBFiles", &m_options.m_recentBFiles, this ); new OptionStringList( "RecentCFiles", &m_options.m_recentCFiles, this ); new OptionStringList( "RecentOutputFiles", &m_options.m_recentOutputFiles, this ); new OptionStringList( "RecentEncodings", &m_options.m_recentEncodings, this ); } void OptionDialog::setupFontPage( void ) { QFrame* page = new QFrame(); KPageWidgetItem *pageItem = new KPageWidgetItem( page, i18n("Font") ); pageItem->setHeader( i18n("Editor & Diff Output Font" ) ); pageItem->setIcon( KIcon( "preferences-desktop-font" ) ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QFont defaultFont = #ifdef _WIN32 QFont("Courier New", 10 ); #elif defined( KREPLACEMENTS_H ) QFont("Courier", 10 ); #else KGlobalSettings::fixedFont(); #endif OptionFontChooser* pFontChooser = new OptionFontChooser( defaultFont, "Font", &m_options.m_font, page, this ); topLayout->addWidget( pFontChooser ); QGridLayout *gbox = new QGridLayout(); topLayout->addLayout( gbox ); int line=0; OptionCheckBox* pItalicDeltas = new OptionCheckBox( i18n("Italic font for deltas"), false, "ItalicForDeltas", &m_options.m_bItalicForDeltas, page, this ); gbox->addWidget( pItalicDeltas, line, 0, 1, 2 ); pItalicDeltas->setToolTip( i18n( "Selects the italic version of the font for differences.\n" "If the font doesn't support italic characters, then this does nothing.") ); } void OptionDialog::setupColorPage( void ) { QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Color") ); pageItem->setHeader( i18n("Colors Settings") ); pageItem->setIcon( KIcon("preferences-desktop-color") ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(1,5); topLayout->addLayout(gbox); QLabel* label; int line = 0; int depth = QPixmap::defaultDepth(); bool bLowColor = depth<=8; label = new QLabel( i18n("Editor and Diff Views:"), page ); gbox->addWidget( label, line, 0 ); QFont f( label->font() ); f.setBold(true); label->setFont(f); ++line; OptionColorButton* pFgColor = new OptionColorButton( Qt::black,"FgColor", &m_options.m_fgColor, page, this ); label = new QLabel( i18n("Foreground color:"), page ); label->setBuddy(pFgColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pFgColor, line, 1 ); ++line; OptionColorButton* pBgColor = new OptionColorButton( Qt::white, "BgColor", &m_options.m_bgColor, page, this ); label = new QLabel( i18n("Background color:"), page ); label->setBuddy(pBgColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pBgColor, line, 1 ); ++line; OptionColorButton* pDiffBgColor = new OptionColorButton( bLowColor ? QColor(Qt::lightGray) : qRgb(224,224,224), "DiffBgColor", &m_options.m_diffBgColor, page, this ); label = new QLabel( i18n("Diff background color:"), page ); label->setBuddy(pDiffBgColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pDiffBgColor, line, 1 ); ++line; OptionColorButton* pColorA = new OptionColorButton( bLowColor ? qRgb(0,0,255) : qRgb(0,0,200)/*blue*/, "ColorA", &m_options.m_colorA, page, this ); label = new QLabel( i18n("Color A:"), page ); label->setBuddy(pColorA); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColorA, line, 1 ); ++line; OptionColorButton* pColorB = new OptionColorButton( bLowColor ? qRgb(0,128,0) : qRgb(0,150,0)/*green*/, "ColorB", &m_options.m_colorB, page, this ); label = new QLabel( i18n("Color B:"), page ); label->setBuddy(pColorB); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColorB, line, 1 ); ++line; OptionColorButton* pColorC = new OptionColorButton( bLowColor ? qRgb(128,0,128) : qRgb(150,0,150)/*magenta*/, "ColorC", &m_options.m_colorC, page, this ); label = new QLabel( i18n("Color C:"), page ); label->setBuddy(pColorC); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColorC, line, 1 ); ++line; OptionColorButton* pColorForConflict = new OptionColorButton( Qt::red, "ColorForConflict", &m_options.m_colorForConflict, page, this ); label = new QLabel( i18n("Conflict color:"), page ); label->setBuddy(pColorForConflict); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColorForConflict, line, 1 ); ++line; OptionColorButton* pColor = new OptionColorButton( bLowColor ? qRgb(192,192,192) : qRgb(220,220,100), "CurrentRangeBgColor", &m_options.m_currentRangeBgColor, page, this ); label = new QLabel( i18n("Current range background color:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); ++line; pColor = new OptionColorButton( bLowColor ? qRgb(255,255,0) : qRgb(255,255,150), "CurrentRangeDiffBgColor", &m_options.m_currentRangeDiffBgColor, page, this ); label = new QLabel( i18n("Current range diff background color:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); ++line; pColor = new OptionColorButton( qRgb(0xff,0xd0,0x80), "ManualAlignmentRangeColor", &m_options.m_manualHelpRangeColor, page, this ); label = new QLabel( i18n("Color for manually aligned difference ranges:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); ++line; label = new QLabel( i18n("Directory Comparison View:"), page ); gbox->addWidget( label, line, 0 ); label->setFont(f); ++line; pColor = new OptionColorButton( qRgb(0,0xd0,0), "NewestFileColor", &m_options.m_newestFileColor, page, this ); label = new QLabel( i18n("Newest file color:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); QString dirColorTip = i18n( "Changing this color will only be effective when starting the next directory comparison."); label->setToolTip( dirColorTip ); ++line; pColor = new OptionColorButton( qRgb(0xf0,0,0), "OldestFileColor", &m_options.m_oldestFileColor, page, this ); label = new QLabel( i18n("Oldest file color:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); label->setToolTip( dirColorTip ); ++line; pColor = new OptionColorButton( qRgb(0xc0,0xc0,0), "MidAgeFileColor", &m_options.m_midAgeFileColor, page, this ); label = new QLabel( i18n("Middle age file color:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); label->setToolTip( dirColorTip ); ++line; pColor = new OptionColorButton( qRgb(0,0,0), "MissingFileColor", &m_options.m_missingFileColor, page, this ); label = new QLabel( i18n("Color for missing files:"), page ); label->setBuddy(pColor); gbox->addWidget( label, line, 0 ); gbox->addWidget( pColor, line, 1 ); label->setToolTip( dirColorTip ); ++line; topLayout->addStretch(10); } void OptionDialog::setupEditPage( void ) { QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Editor") ); pageItem->setHeader( i18n("Editor Behavior") ); pageItem->setIcon( KIcon( "accessories-text-editor") ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(1,5); topLayout->addLayout( gbox ); QLabel* label; int line=0; OptionCheckBox* pReplaceTabs = new OptionCheckBox( i18n("Tab inserts spaces"), false, "ReplaceTabs", &m_options.m_bReplaceTabs, page, this ); gbox->addWidget( pReplaceTabs, line, 0, 1, 2 ); pReplaceTabs->setToolTip( i18n( "On: Pressing tab generates the appropriate number of spaces.\n" "Off: A tab character will be inserted.") ); ++line; OptionIntEdit* pTabSize = new OptionIntEdit( 8, "TabSize", &m_options.m_tabSize, 1, 100, page, this ); label = new QLabel( i18n("Tab size:"), page ); label->setBuddy( pTabSize ); gbox->addWidget( label, line, 0 ); gbox->addWidget( pTabSize, line, 1 ); ++line; OptionCheckBox* pAutoIndentation = new OptionCheckBox( i18n("Auto indentation"), true, "AutoIndentation", &m_options.m_bAutoIndentation, page, this ); gbox->addWidget( pAutoIndentation, line, 0, 1, 2 ); pAutoIndentation->setToolTip( i18n( "On: The indentation of the previous line is used for a new line.\n" )); ++line; OptionCheckBox* pAutoCopySelection = new OptionCheckBox( i18n("Auto copy selection"), false, "AutoCopySelection", &m_options.m_bAutoCopySelection, page, this ); gbox->addWidget( pAutoCopySelection, line, 0, 1, 2 ); pAutoCopySelection->setToolTip( i18n( "On: Any selection is immediately written to the clipboard.\n" "Off: You must explicitely copy e.g. via Ctrl-C." )); ++line; label = new QLabel( i18n("Line end style:"), page ); gbox->addWidget( label, line, 0 ); OptionComboBox* pLineEndStyle = new OptionComboBox( eLineEndStyleAutoDetect, "LineEndStyle", &m_options.m_lineEndStyle, page, this ); gbox->addWidget( pLineEndStyle, line, 1 ); pLineEndStyle->insertItem( eLineEndStyleUnix, "Unix" ); pLineEndStyle->insertItem( eLineEndStyleDos, "Dos/Windows" ); pLineEndStyle->insertItem( eLineEndStyleAutoDetect, "Autodetect" ); label->setToolTip( i18n( "Sets the line endings for when an edited file is saved.\n" "DOS/Windows: CR+LF; UNIX: LF; with CR=0D, LF=0A") ); ++line; topLayout->addStretch(10); } void OptionDialog::setupDiffPage( void ) { QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Diff") ); pageItem->setHeader( i18n("Diff Settings") ); pageItem->setIcon( KIcon( "preferences-other" ) ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(1,5); topLayout->addLayout( gbox ); int line=0; QLabel* label=0; m_options.m_bPreserveCarriageReturn = false; //OptionCheckBox* pPreserveCarriageReturn = new OptionCheckBox( i18n("Preserve carriage return"), false, "PreserveCarriageReturn", &m_bPreserveCarriageReturn, page, this ); //gbox->addWidget( pPreserveCarriageReturn, line, 0, 1, 2 ); //pPreserveCarriageReturn->setToolTip( i18n( // "Show carriage return characters '\\r' if they exist.\n" // "Helps to compare files that were modified under different operating systems.") // ); //++line; QString treatAsWhiteSpace = " ("+i18n("Treat as white space.")+")"; OptionCheckBox* pIgnoreNumbers = new OptionCheckBox( i18n("Ignore numbers")+treatAsWhiteSpace, false, "IgnoreNumbers", &m_options.m_bIgnoreNumbers, page, this ); gbox->addWidget( pIgnoreNumbers, line, 0, 1, 2 ); pIgnoreNumbers->setToolTip( i18n( "Ignore number characters during line matching phase. (Similar to Ignore white space.)\n" "Might help to compare files with numeric data.") ); ++line; OptionCheckBox* pIgnoreComments = new OptionCheckBox( i18n("Ignore C/C++ comments")+treatAsWhiteSpace, false, "IgnoreComments", &m_options.m_bIgnoreComments, page, this ); gbox->addWidget( pIgnoreComments, line, 0, 1, 2 ); pIgnoreComments->setToolTip( i18n( "Treat C/C++ comments like white space.") ); ++line; OptionCheckBox* pIgnoreCase = new OptionCheckBox( i18n("Ignore case")+treatAsWhiteSpace, false, "IgnoreCase", &m_options.m_bIgnoreCase, page, this ); gbox->addWidget( pIgnoreCase, line, 0, 1, 2 ); pIgnoreCase->setToolTip( i18n( "Treat case differences like white space changes. ('a'<=>'A')") ); ++line; label = new QLabel( i18n("Preprocessor command:"), page ); gbox->addWidget( label, line, 0 ); OptionLineEdit* pLE = new OptionLineEdit( "", "PreProcessorCmd", &m_options.m_PreProcessorCmd, page, this ); gbox->addWidget( pLE, line, 1 ); label->setToolTip( i18n("User defined pre-processing. (See the docs for details.)") ); ++line; label = new QLabel( i18n("Line-matching preprocessor command:"), page ); gbox->addWidget( label, line, 0 ); pLE = new OptionLineEdit( "", "LineMatchingPreProcessorCmd", &m_options.m_LineMatchingPreProcessorCmd, page, this ); gbox->addWidget( pLE, line, 1 ); label->setToolTip( i18n("This pre-processor is only used during line matching.\n(See the docs for details.)") ); ++line; OptionCheckBox* pTryHard = new OptionCheckBox( i18n("Try hard (slower)"), true, "TryHard", &m_options.m_bTryHard, page, this ); gbox->addWidget( pTryHard, line, 0, 1, 2 ); pTryHard->setToolTip( i18n( "Enables the --minimal option for the external diff.\n" "The analysis of big files will be much slower.") ); ++line; OptionCheckBox* pDiff3AlignBC = new OptionCheckBox( i18n("Align B and C for 3 input files"), false, "Diff3AlignBC", &m_options.m_bDiff3AlignBC, page, this ); gbox->addWidget( pDiff3AlignBC, line, 0, 1, 2 ); pDiff3AlignBC->setToolTip( i18n( "Try to align B and C when comparing or merging three input files.\n" "Not recommended for merging because merge might get more complicated.\n" "(Default is off.)") ); ++line; topLayout->addStretch(10); } void OptionDialog::setupMergePage( void ) { QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Merge") ); pageItem->setHeader( i18n("Merge Settings") ); pageItem->setIcon( KIcon( "plasmagik" ) ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(1,5); topLayout->addLayout( gbox ); int line=0; QLabel* label=0; label = new QLabel( i18n("Auto advance delay (ms):"), page ); gbox->addWidget( label, line, 0 ); OptionIntEdit* pAutoAdvanceDelay = new OptionIntEdit( 500, "AutoAdvanceDelay", &m_options.m_autoAdvanceDelay, 0, 2000, page, this ); gbox->addWidget( pAutoAdvanceDelay, line, 1 ); label->setToolTip(i18n( "When in Auto-Advance mode the result of the current selection is shown \n" "for the specified time, before jumping to the next conflict. Range: 0-2000 ms") ); ++line; OptionCheckBox* pShowInfoDialogs = new OptionCheckBox( i18n("Show info dialogs"), true, "ShowInfoDialogs", &m_options.m_bShowInfoDialogs, page, this ); gbox->addWidget( pShowInfoDialogs, line, 0, 1, 2 ); pShowInfoDialogs->setToolTip( i18n("Show a dialog with information about the number of conflicts.") ); ++line; label = new QLabel( i18n("White space 2-file merge default:"), page ); gbox->addWidget( label, line, 0 ); OptionComboBox* pWhiteSpace2FileMergeDefault = new OptionComboBox( 0, "WhiteSpace2FileMergeDefault", &m_options.m_whiteSpace2FileMergeDefault, page, this ); gbox->addWidget( pWhiteSpace2FileMergeDefault, line, 1 ); pWhiteSpace2FileMergeDefault->insertItem( 0, i18n("Manual Choice") ); pWhiteSpace2FileMergeDefault->insertItem( 1, "A" ); pWhiteSpace2FileMergeDefault->insertItem( 2, "B" ); label->setToolTip( i18n( "Allow the merge algorithm to automatically select an input for " "white-space-only changes." ) ); ++line; label = new QLabel( i18n("White space 3-file merge default:"), page ); gbox->addWidget( label, line, 0 ); OptionComboBox* pWhiteSpace3FileMergeDefault = new OptionComboBox( 0, "WhiteSpace3FileMergeDefault", &m_options.m_whiteSpace3FileMergeDefault, page, this ); gbox->addWidget( pWhiteSpace3FileMergeDefault, line, 1 ); pWhiteSpace3FileMergeDefault->insertItem( 0, i18n("Manual Choice") ); pWhiteSpace3FileMergeDefault->insertItem( 1, "A" ); pWhiteSpace3FileMergeDefault->insertItem( 2, "B" ); pWhiteSpace3FileMergeDefault->insertItem( 3, "C" ); label->setToolTip( i18n( "Allow the merge algorithm to automatically select an input for " "white-space-only changes." ) ); ++line; QGroupBox* pGroupBox = new QGroupBox( i18n("Automatic Merge Regular Expression") ); gbox->addWidget( pGroupBox, line, 0, 1, 2 ); ++line; { QGridLayout* gbox = new QGridLayout( pGroupBox ); gbox->setMargin(spacingHint()); gbox->setColumnStretch(1,10); int line = 0; label = new QLabel( i18n("Auto merge regular expression:"), page ); gbox->addWidget( label, line, 0 ); m_pAutoMergeRegExpLineEdit = new OptionLineEdit( ".*\\$(Version|Header|Date|Author).*\\$.*", "AutoMergeRegExp", &m_options.m_autoMergeRegExp, page, this ); gbox->addWidget( m_pAutoMergeRegExpLineEdit, line, 1 ); s_autoMergeRegExpToolTip = i18n("Regular expression for lines where KDiff3 should automatically choose one source.\n" "When a line with a conflict matches the regular expression then\n" "- if available - C, otherwise B will be chosen."); label->setToolTip( s_autoMergeRegExpToolTip ); ++line; OptionCheckBox* pAutoMergeRegExp = new OptionCheckBox( i18n("Run regular expression auto merge on merge start"), false, "RunRegExpAutoMergeOnMergeStart", &m_options.m_bRunRegExpAutoMergeOnMergeStart, page, this ); gbox->addWidget( pAutoMergeRegExp, line, 0, 1, 2 ); pAutoMergeRegExp->setToolTip( i18n( "Run the merge for auto merge regular expressions\n" "immediately when a merge starts.\n")); ++line; } pGroupBox = new QGroupBox( i18n("Version Control History Merging") ); gbox->addWidget( pGroupBox, line, 0, 1, 2 ); ++line; { QGridLayout* gbox = new QGridLayout( pGroupBox ); gbox->setMargin( spacingHint() ); gbox->setColumnStretch(1,10); int line = 0; label = new QLabel( i18n("History start regular expression:"), page ); gbox->addWidget( label, line, 0 ); m_pHistoryStartRegExpLineEdit = new OptionLineEdit( ".*\\$Log.*\\$.*", "HistoryStartRegExp", &m_options.m_historyStartRegExp, page, this ); gbox->addWidget( m_pHistoryStartRegExpLineEdit, line, 1 ); s_historyStartRegExpToolTip = i18n("Regular expression for the start of the version control history entry.\n" "Usually this line contains the \"$Log$\" keyword.\n" "Default value: \".*\\$Log.*\\$.*\""); label->setToolTip( s_historyStartRegExpToolTip ); ++line; label = new QLabel( i18n("History entry start regular expression:"), page ); gbox->addWidget( label, line, 0 ); // Example line: "** \main\rolle_fsp_dev_008\1 17 Aug 2001 10:45:44 rolle" QString historyEntryStartDefault = "\\s*\\\\main\\\\(\\S+)\\s+" // Start with "\main\" "([0-9]+) " // day "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) " //month "([0-9][0-9][0-9][0-9]) " // year "([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\\s+(.*)"; // time, name m_pHistoryEntryStartRegExpLineEdit = new OptionLineEdit( historyEntryStartDefault, "HistoryEntryStartRegExp", &m_options.m_historyEntryStartRegExp, page, this ); gbox->addWidget( m_pHistoryEntryStartRegExpLineEdit, line, 1 ); s_historyEntryStartRegExpToolTip = i18n("A version control history entry consists of several lines.\n" "Specify the regular expression to detect the first line (without the leading comment).\n" "Use parentheses to group the keys you want to use for sorting.\n" "If left empty, then KDiff3 assumes that empty lines separate history entries.\n" "See the documentation for details."); label->setToolTip( s_historyEntryStartRegExpToolTip ); ++line; m_pHistoryMergeSorting = new OptionCheckBox( i18n("History merge sorting"), false, "HistoryMergeSorting", &m_options.m_bHistoryMergeSorting, page, this ); gbox->addWidget( m_pHistoryMergeSorting, line, 0, 1, 2 ); m_pHistoryMergeSorting->setToolTip( i18n("Sort version control history by a key.") ); ++line; //QString branch = newHistoryEntry.cap(1); //int day = newHistoryEntry.cap(2).toInt(); //int month = QString("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec").find(newHistoryEntry.cap(3))/4 + 1; //int year = newHistoryEntry.cap(4).toInt(); //QString time = newHistoryEntry.cap(5); //QString name = newHistoryEntry.cap(6); QString defaultSortKeyOrder = "4,3,2,5,1,6"; //QDate(year,month,day).toString(Qt::ISODate) +" "+ time + " " + branch + " " + name; label = new QLabel( i18n("History entry start sort key order:"), page ); gbox->addWidget( label, line, 0 ); m_pHistorySortKeyOrderLineEdit = new OptionLineEdit( defaultSortKeyOrder, "HistoryEntryStartSortKeyOrder", &m_options.m_historyEntryStartSortKeyOrder, page, this ); gbox->addWidget( m_pHistorySortKeyOrderLineEdit, line, 1 ); s_historyEntryStartSortKeyOrderToolTip = i18n("Each pair of parentheses used in the regular expression for the history start entry\n" "groups a key that can be used for sorting.\n" "Specify the list of keys (that are numbered in order of occurrence\n" "starting with 1) using ',' as separator (e.g. \"4,5,6,1,2,3,7\").\n" "If left empty, then no sorting will be done.\n" "See the documentation for details."); label->setToolTip( s_historyEntryStartSortKeyOrderToolTip ); m_pHistorySortKeyOrderLineEdit->setEnabled(false); connect( m_pHistoryMergeSorting, SIGNAL(toggled(bool)), m_pHistorySortKeyOrderLineEdit, SLOT(setEnabled(bool))); ++line; m_pHistoryAutoMerge = new OptionCheckBox( i18n("Merge version control history on merge start"), false, "RunHistoryAutoMergeOnMergeStart", &m_options.m_bRunHistoryAutoMergeOnMergeStart, page, this ); gbox->addWidget( m_pHistoryAutoMerge, line, 0, 1, 2 ); m_pHistoryAutoMerge->setToolTip( i18n("Run version control history automerge on merge start.") ); ++line; OptionIntEdit* pMaxNofHistoryEntries = new OptionIntEdit( -1, "MaxNofHistoryEntries", &m_options.m_maxNofHistoryEntries, -1, 1000, page, this ); label = new QLabel( i18n("Max number of history entries:"), page ); gbox->addWidget( label, line, 0 ); gbox->addWidget( pMaxNofHistoryEntries, line, 1 ); pMaxNofHistoryEntries->setToolTip( i18n("Cut off after specified number. Use -1 for infinite number of entries.") ); ++line; } QPushButton* pButton = new QPushButton( i18n("Test your regular expressions"), page ); gbox->addWidget( pButton, line, 0 ); connect( pButton, SIGNAL(clicked()), this, SLOT(slotHistoryMergeRegExpTester())); ++line; label = new QLabel( i18n("Irrelevant merge command:"), page ); gbox->addWidget( label, line, 0 ); OptionLineEdit* pLE = new OptionLineEdit( "", "IrrelevantMergeCmd", &m_options.m_IrrelevantMergeCmd, page, this ); gbox->addWidget( pLE, line, 1 ); label->setToolTip( i18n("If specified this script is run after automerge\n" "when no other relevant changes were detected.\n" "Called with the parameters: filename1 filename2 filename3") ); ++line; OptionCheckBox* pAutoSaveAndQuit = new OptionCheckBox( i18n("Auto save and quit on merge without conflicts"), false, "AutoSaveAndQuitOnMergeWithoutConflicts", &m_options.m_bAutoSaveAndQuitOnMergeWithoutConflicts, page, this ); gbox->addWidget( pAutoSaveAndQuit, line, 0, 1, 2 ); pAutoSaveAndQuit->setToolTip( i18n("If KDiff3 was started for a file-merge from the command line and all\n" "conflicts are solvable without user interaction then automatically save and quit.\n" "(Similar to command line option \"--auto\".)") ); ++line; topLayout->addStretch(10); } void OptionDialog::setupDirectoryMergePage( void ) { QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Directory") ); pageItem->setHeader( i18n("Directory") ); pageItem->setIcon( KIcon( "folder" ) ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(1,5); topLayout->addLayout( gbox ); int line=0; OptionCheckBox* pRecursiveDirs = new OptionCheckBox( i18n("Recursive directories"), true, "RecursiveDirs", &m_options.m_bDmRecursiveDirs, page, this ); gbox->addWidget( pRecursiveDirs, line, 0, 1, 2 ); pRecursiveDirs->setToolTip( i18n("Whether to analyze subdirectories or not.") ); ++line; QLabel* label = new QLabel( i18n("File pattern(s):"), page ); gbox->addWidget( label, line, 0 ); OptionLineEdit* pFilePattern = new OptionLineEdit( "*", "FilePattern", &m_options.m_DmFilePattern, page, this ); gbox->addWidget( pFilePattern, line, 1 ); label->setToolTip( i18n( "Pattern(s) of files to be analyzed. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" )); ++line; label = new QLabel( i18n("File-anti-pattern(s):"), page ); gbox->addWidget( label, line, 0 ); OptionLineEdit* pFileAntiPattern = new OptionLineEdit( "*.orig;*.o;*.obj;*.rej;*.bak", "FileAntiPattern", &m_options.m_DmFileAntiPattern, page, this ); gbox->addWidget( pFileAntiPattern, line, 1 ); label->setToolTip( i18n( "Pattern(s) of files to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" )); ++line; label = new QLabel( i18n("Dir-anti-pattern(s):"), page ); gbox->addWidget( label, line, 0 ); OptionLineEdit* pDirAntiPattern = new OptionLineEdit( "CVS;.deps;.svn;.hg;.git", "DirAntiPattern", &m_options.m_DmDirAntiPattern, page, this ); gbox->addWidget( pDirAntiPattern, line, 1 ); label->setToolTip( i18n( "Pattern(s) of directories to be excluded from analysis. \n" "Wildcards: '*' and '?'\n" "Several Patterns can be specified by using the separator: ';'" )); ++line; OptionCheckBox* pUseCvsIgnore = new OptionCheckBox( i18n("Use .cvsignore"), false, "UseCvsIgnore", &m_options.m_bDmUseCvsIgnore, page, this ); gbox->addWidget( pUseCvsIgnore, line, 0, 1, 2 ); pUseCvsIgnore->setToolTip( i18n( "Extends the antipattern to anything that would be ignored by CVS.\n" "Via local \".cvsignore\" files this can be directory specific." )); ++line; OptionCheckBox* pFindHidden = new OptionCheckBox( i18n("Find hidden files and directories"), true, "FindHidden", &m_options.m_bDmFindHidden, page, this ); gbox->addWidget( pFindHidden, line, 0, 1, 2 ); #if defined(_WIN32) || defined(Q_OS_OS2) pFindHidden->setToolTip( i18n("Finds files and directories with the hidden attribute.") ); #else pFindHidden->setToolTip( i18n("Finds files and directories starting with '.'.") ); #endif ++line; OptionCheckBox* pFollowFileLinks = new OptionCheckBox( i18n("Follow file links"), false, "FollowFileLinks", &m_options.m_bDmFollowFileLinks, page, this ); gbox->addWidget( pFollowFileLinks, line, 0, 1, 2 ); pFollowFileLinks->setToolTip( i18n( "On: Compare the file the link points to.\n" "Off: Compare the links." )); ++line; OptionCheckBox* pFollowDirLinks = new OptionCheckBox( i18n("Follow directory links"), false, "FollowDirLinks", &m_options.m_bDmFollowDirLinks, page, this ); gbox->addWidget( pFollowDirLinks, line, 0, 1, 2 ); pFollowDirLinks->setToolTip( i18n( "On: Compare the directory the link points to.\n" "Off: Compare the links." )); ++line; //OptionCheckBox* pShowOnlyDeltas = new OptionCheckBox( i18n("List only deltas"),false,"ListOnlyDeltas", &m_options.m_bDmShowOnlyDeltas, page, this ); //gbox->addWidget( pShowOnlyDeltas, line, 0, 1, 2 ); //pShowOnlyDeltas->setToolTip( i18n( // "Files and directories without change will not appear in the list.")); //++line; #if defined(_WIN32) || defined(Q_OS_OS2) bool bCaseSensitiveFilenameComparison = false; #else bool bCaseSensitiveFilenameComparison = true; #endif OptionCheckBox* pCaseSensitiveFileNames = new OptionCheckBox( i18n("Case sensitive filename comparison"),bCaseSensitiveFilenameComparison,"CaseSensitiveFilenameComparison", &m_options.m_bDmCaseSensitiveFilenameComparison, page, this ); gbox->addWidget( pCaseSensitiveFileNames, line, 0, 1, 2 ); pCaseSensitiveFileNames->setToolTip( i18n( "The directory comparison will compare files or directories when their names match.\n" "Set this option if the case of the names must match. (Default for Windows is off, otherwise on.)")); ++line; OptionCheckBox* pUnfoldSubdirs = new OptionCheckBox( i18n("Unfold all subdirectories on load"), false, "UnfoldSubdirs", &m_options.m_bDmUnfoldSubdirs, page, this ); gbox->addWidget( pUnfoldSubdirs, line, 0, 1, 2 ); pUnfoldSubdirs->setToolTip( i18n( "On: Unfold all subdirectories when starting a directory diff.\n" "Off: Leave subdirectories folded." )); ++line; OptionCheckBox* pSkipDirStatus = new OptionCheckBox( i18n("Skip directory status report"), false, "SkipDirStatus", &m_options.m_bDmSkipDirStatus, page, this ); gbox->addWidget( pSkipDirStatus, line, 0, 1, 2 ); pSkipDirStatus->setToolTip( i18n( "On: Do not show the Directory Comparison Status.\n" "Off: Show the status dialog on start." )); ++line; QGroupBox* pBG = new QGroupBox( i18n("File Comparison Mode") ); gbox->addWidget( pBG, line, 0, 1, 2 ); QVBoxLayout* pBGLayout = new QVBoxLayout( pBG ); pBGLayout->setMargin(spacingHint()); OptionRadioButton* pBinaryComparison = new OptionRadioButton( i18n("Binary comparison"), true, "BinaryComparison", &m_options.m_bDmBinaryComparison, pBG, this ); pBinaryComparison->setToolTip( i18n("Binary comparison of each file. (Default)") ); pBGLayout->addWidget( pBinaryComparison ); OptionRadioButton* pFullAnalysis = new OptionRadioButton( i18n("Full analysis"), false, "FullAnalysis", &m_options.m_bDmFullAnalysis, pBG, this ); pFullAnalysis->setToolTip( i18n("Do a full analysis and show statistics information in extra columns.\n" "(Slower than a binary comparison, much slower for binary files.)") ); pBGLayout->addWidget( pFullAnalysis ); OptionRadioButton* pTrustDate = new OptionRadioButton( i18n("Trust the size and modification date (unsafe)"), false, "TrustDate", &m_options.m_bDmTrustDate, pBG, this ); pTrustDate->setToolTip( i18n("Assume that files are equal if the modification date and file length are equal.\n" "Files with equal contents but different modification dates will appear as different.\n" "Useful for big directories or slow networks.") ); pBGLayout->addWidget( pTrustDate ); OptionRadioButton* pTrustDateFallbackToBinary = new OptionRadioButton( i18n("Trust the size and date, but use binary comparison if date does not match (unsafe)"), false, "TrustDateFallbackToBinary", &m_options.m_bDmTrustDateFallbackToBinary, pBG, this ); pTrustDateFallbackToBinary->setToolTip( i18n("Assume that files are equal if the modification date and file length are equal.\n" "If the dates are not equal but the sizes are, use binary comparison.\n" "Useful for big directories or slow networks.") ); pBGLayout->addWidget( pTrustDateFallbackToBinary ); OptionRadioButton* pTrustSize = new OptionRadioButton( i18n("Trust the size (unsafe)"), false, "TrustSize", &m_options.m_bDmTrustSize, pBG, this ); pTrustSize->setToolTip( i18n("Assume that files are equal if their file lengths are equal.\n" "Useful for big directories or slow networks when the date is modified during download.") ); pBGLayout->addWidget( pTrustSize ); ++line; // Some two Dir-options: Affects only the default actions. OptionCheckBox* pSyncMode = new OptionCheckBox( i18n("Synchronize directories"), false,"SyncMode", &m_options.m_bDmSyncMode, page, this ); gbox->addWidget( pSyncMode, line, 0, 1, 2 ); pSyncMode->setToolTip( i18n( "Offers to store files in both directories so that\n" "both directories are the same afterwards.\n" "Works only when comparing two directories without specifying a destination." ) ); ++line; // Allow white-space only differences to be considered equal OptionCheckBox* pWhiteSpaceDiffsEqual = new OptionCheckBox( i18n("White space differences considered equal"), true,"WhiteSpaceEqual", &m_options.m_bDmWhiteSpaceEqual, page, this ); gbox->addWidget( pWhiteSpaceDiffsEqual, line, 0, 1, 2 ); pWhiteSpaceDiffsEqual->setToolTip( i18n( "If files differ only by white space consider them equal.\n" "This is only active when full analysis is chosen." ) ); connect(pFullAnalysis, SIGNAL(toggled(bool)), pWhiteSpaceDiffsEqual, SLOT(setEnabled(bool))); pWhiteSpaceDiffsEqual->setEnabled(false); ++line; OptionCheckBox* pCopyNewer = new OptionCheckBox( i18n("Copy newer instead of merging (unsafe)"), false, "CopyNewer", &m_options.m_bDmCopyNewer, page, this ); gbox->addWidget( pCopyNewer, line, 0, 1, 2 ); pCopyNewer->setToolTip( i18n( "Don't look inside, just take the newer file.\n" "(Use this only if you know what you are doing!)\n" "Only effective when comparing two directories." ) ); ++line; OptionCheckBox* pCreateBakFiles = new OptionCheckBox( i18n("Backup files (.orig)"), true, "CreateBakFiles", &m_options.m_bDmCreateBakFiles, page, this ); gbox->addWidget( pCreateBakFiles, line, 0, 1, 2 ); pCreateBakFiles->setToolTip( i18n( "If a file would be saved over an old file, then the old file\n" "will be renamed with a '.orig' extension instead of being deleted.")); ++line; topLayout->addStretch(10); } /* static void insertCodecs(OptionComboBox* p) { std::multimap m; // Using the multimap for case-insensitive sorting. int i; for(i=0;;++i) { QTextCodec* pCodec = QTextCodec::codecForIndex ( i ); if ( pCodec != 0 ) m.insert( std::make_pair( QString(pCodec->mimeName()).toUpper(), pCodec->mimeName()) ); else break; } p->insertItem( i18n("Auto"), 0 ); std::multimap::iterator mi; for(mi=m.begin(), i=0; mi!=m.end(); ++mi, ++i) p->insertItem(mi->second, i+1); } */ // UTF8-Codec that saves a BOM // UTF8-Codec that saves a BOM class Utf8BOMCodec : public QTextCodec { QTextCodec* m_pUtf8Codec; class PublicTextCodec : public QTextCodec { public: QString publicConvertToUnicode ( const char * p, int len, ConverterState* pState ) const { return convertToUnicode( p, len, pState ); } QByteArray publicConvertFromUnicode ( const QChar * input, int number, ConverterState * pState ) const { return convertFromUnicode( input, number, pState ); } }; public: Utf8BOMCodec() { m_pUtf8Codec = QTextCodec::codecForName("UTF-8"); } QByteArray name () const { return "UTF-8-BOM"; } int mibEnum () const { return 2123; } QByteArray convertFromUnicode ( const QChar * input, int number, ConverterState * pState ) const { QByteArray r; if ( pState && pState->state_data[2]==0) // state_data[2] not used by QUtf8::convertFromUnicode (see qutfcodec.cpp) { r += "\xEF\xBB\xBF"; pState->state_data[2]=1; pState->flags |= QTextCodec::IgnoreHeader; } r += ((PublicTextCodec*)m_pUtf8Codec)->publicConvertFromUnicode( input, number, pState ); return r; } QString convertToUnicode ( const char * p, int len, ConverterState* pState ) const { return ((PublicTextCodec*)m_pUtf8Codec)->publicConvertToUnicode( p, len, pState ); } }; void OptionDialog::setupRegionalPage( void ) { new Utf8BOMCodec(); QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Regional Settings") ); pageItem->setHeader( i18n("Regional Settings") ); pageItem->setIcon( KIcon("locale" ) ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(1,5); topLayout->addLayout( gbox ); int line=0; QLabel* label; #ifdef KREPLACEMENTS_H static const char* countryMap[]={ "af Afrikaans", "ar Arabic", "az Azerbaijani", "be Belarusian", "bg Bulgarian", "bn Bengali", "bo Tibetan", "br Breton", "bs Bosnian", "ca Catalan", "ca@valencia Catalan (Valencian)", "cs Czech", "cy Welsh", "da Danish", "de German", "el Greek", "en_GB British English", "eo Esperanto", "es Spanish", "et Estonian", "eu Basque", "fa Farsi (Persian)", "fi Finnish", "fo Faroese", "fr French", "ga Irish Gaelic", "gl Galician", "gu Gujarati", "he Hebrew", "hi Hindi", "hne Chhattisgarhi", "hr Croatian", "hsb Upper Sorbian", "hu Hungarian", "id Indonesian", "is Icelandic", "it Italian", "ja Japanese", "ka Georgian", "ko Korean", "ku Kurdish", "lo Lao", "lt Lithuanian", "lv Latvian", "mi Maori", "mk Macedonian", "ml Malayalam" "mn Mongolian", "ms Malay", "mt Maltese", "nb Norwegian Bookmal", "nds Low Saxon", "nl Dutch", "nn Norwegian Nynorsk", "nso Northern Sotho", "oc Occitan", "pl Polish", "pt Portuguese", "pt_BR Brazilian Portuguese", "ro Romanian", "ru Russian", "rw Kinyarwanda", "se Northern Sami", "sk Slovak", "sl Slovenian", "sq Albanian", "sr Serbian", "sr@Latn Serbian", "ss Swati", "sv Swedish", "ta Tamil", "tg Tajik", "th Thai", "tr Turkish", "uk Ukrainian", "uz Uzbek", "ven Venda", "vi Vietnamese", "wa Walloon", "xh Xhosa", "zh_CN Chinese Simplified", "zh_TW Chinese Traditional", "zu Zulu" }; label = new QLabel( i18n("Language (restart required)"), page ); gbox->addWidget( label, line, 0 ); OptionComboBox* pLanguage = new OptionComboBox( 0, "Language", &m_options.m_language, page, this ); gbox->addWidget( pLanguage, line, 1 ); pLanguage->addItem( "Auto" ); // Must not translate, won't work otherwise! pLanguage->addItem( "en_orig" ); #if !defined(_WIN32) && !defined(Q_OS_OS2) // Read directory: Find all kdiff3_*.qm-files and insert the found files here QDir localeDir( "/usr/share/locale" ); // See also kreplacements.cpp: getTranslationDir() QStringList dirList = localeDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name); for( int i = 0; iaddItem( languageId ); } label->setToolTip( i18n( "Choose the language of the GUI strings or \"Auto\".\n" "For a change of language to take place, quit and restart KDiff3.") ); ++line; /* label = new QLabel( i18n("Codec for file contents"), page ); gbox->addWidget( label, line, 0 ); OptionComboBox* pFileCodec = new OptionComboBox( 0, "FileCodec", &m_options.m_fileCodec, page, this ); gbox->addWidget( pFileCodec, line, 1 ); insertCodecs( pFileCodec ); label->setToolTip( i18n( "Choose the codec that should be used for your input files\n" "or \"Auto\" if unsure." ) ); ++line; */ #endif m_pSameEncoding = new OptionCheckBox( i18n("Use the same encoding for everything:"), true, "SameEncoding", &m_options.m_bSameEncoding, page, this ); gbox->addWidget( m_pSameEncoding, line, 0, 1, 2 ); m_pSameEncoding->setToolTip( i18n( "Enable this allows to change all encodings by changing the first only.\n" "Disable this if different individual settings are needed." ) ); ++line; label = new QLabel( i18n("Note: Local Encoding is ") + "\"" + QTextCodec::codecForLocale()->name() + "\"", page ); gbox->addWidget( label, line, 0 ); ++line; label = new QLabel( i18n("File Encoding for A:"), page ); gbox->addWidget( label, line, 0 ); m_pEncodingAComboBox = new OptionEncodingComboBox( "EncodingForA", &m_options.m_pEncodingA, page, this ); gbox->addWidget( m_pEncodingAComboBox, line, 1 ); QString autoDetectToolTip = i18n( "If enabled then Unicode (UTF-16 or UTF-8) encoding will be detected.\n" "If the file is not Unicode then the selected encoding will be used as fallback.\n" "(Unicode detection depends on the first bytes of a file.)" ); m_pAutoDetectUnicodeA = new OptionCheckBox( i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeA", &m_options.m_bAutoDetectUnicodeA, page, this ); gbox->addWidget( m_pAutoDetectUnicodeA, line, 2 ); m_pAutoDetectUnicodeA->setToolTip( autoDetectToolTip ); ++line; label = new QLabel( i18n("File Encoding for B:"), page ); gbox->addWidget( label, line, 0 ); m_pEncodingBComboBox = new OptionEncodingComboBox( "EncodingForB", &m_options.m_pEncodingB, page, this ); gbox->addWidget( m_pEncodingBComboBox, line, 1 ); m_pAutoDetectUnicodeB = new OptionCheckBox( i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeB", &m_options.m_bAutoDetectUnicodeB, page, this ); gbox->addWidget( m_pAutoDetectUnicodeB, line, 2 ); m_pAutoDetectUnicodeB->setToolTip( autoDetectToolTip ); ++line; label = new QLabel( i18n("File Encoding for C:"), page ); gbox->addWidget( label, line, 0 ); m_pEncodingCComboBox = new OptionEncodingComboBox( "EncodingForC", &m_options.m_pEncodingC, page, this ); gbox->addWidget( m_pEncodingCComboBox, line, 1 ); m_pAutoDetectUnicodeC = new OptionCheckBox( i18n("Auto Detect Unicode"), true, "AutoDetectUnicodeC", &m_options.m_bAutoDetectUnicodeC, page, this ); gbox->addWidget( m_pAutoDetectUnicodeC, line, 2 ); m_pAutoDetectUnicodeC->setToolTip( autoDetectToolTip ); ++line; label = new QLabel( i18n("File Encoding for Merge Output and Saving:"), page ); gbox->addWidget( label, line, 0 ); m_pEncodingOutComboBox = new OptionEncodingComboBox( "EncodingForOutput", &m_options.m_pEncodingOut, page, this ); gbox->addWidget( m_pEncodingOutComboBox, line, 1 ); m_pAutoSelectOutEncoding = new OptionCheckBox( i18n("Auto Select"), true, "AutoSelectOutEncoding", &m_options.m_bAutoSelectOutEncoding, page, this ); gbox->addWidget( m_pAutoSelectOutEncoding, line, 2 ); m_pAutoSelectOutEncoding->setToolTip( i18n( "If enabled then the encoding from the input files is used.\n" "In ambiguous cases a dialog will ask the user to choose the encoding for saving." ) ); ++line; label = new QLabel( i18n("File Encoding for Preprocessor Files:"), page ); gbox->addWidget( label, line, 0 ); m_pEncodingPPComboBox = new OptionEncodingComboBox( "EncodingForPP", &m_options.m_pEncodingPP, page, this ); gbox->addWidget( m_pEncodingPPComboBox, line, 1 ); ++line; connect(m_pSameEncoding, SIGNAL(toggled(bool)), this, SLOT(slotEncodingChanged())); connect(m_pEncodingAComboBox, SIGNAL(activated(int)), this, SLOT(slotEncodingChanged())); connect(m_pAutoDetectUnicodeA, SIGNAL(toggled(bool)), this, SLOT(slotEncodingChanged())); connect(m_pAutoSelectOutEncoding, SIGNAL(toggled(bool)), this, SLOT(slotEncodingChanged())); OptionCheckBox* pRightToLeftLanguage = new OptionCheckBox( i18n("Right To Left Language"), false, "RightToLeftLanguage", &m_options.m_bRightToLeftLanguage, page, this ); gbox->addWidget( pRightToLeftLanguage, line, 0, 1, 2 ); pRightToLeftLanguage->setToolTip( i18n( "Some languages are read from right to left.\n" "This setting will change the viewer and editor accordingly.")); ++line; topLayout->addStretch(10); } #ifdef _WIN32 #include "ccInstHelper.cpp" #endif void OptionDialog::setupIntegrationPage( void ) { QFrame* page = new QFrame(); KPageWidgetItem* pageItem = new KPageWidgetItem( page, i18n("Integration") ); pageItem->setHeader( i18n("Integration Settings") ); pageItem->setIcon( KIcon( "preferences-desktop-launch-feedback" ) ); addPage( pageItem ); QVBoxLayout *topLayout = new QVBoxLayout( page ); topLayout->setMargin( 5 ); topLayout->setSpacing( spacingHint() ); QGridLayout *gbox = new QGridLayout(); gbox->setColumnStretch(2,5); topLayout->addLayout( gbox ); int line=0; QLabel* label; label = new QLabel( i18n("Command line options to ignore:"), page ); gbox->addWidget( label, line, 0 ); OptionLineEdit* pIgnorableCmdLineOptions = new OptionLineEdit( "-u;-query;-html;-abort", "IgnorableCmdLineOptions", &m_options.m_ignorableCmdLineOptions, page, this ); gbox->addWidget( pIgnorableCmdLineOptions, line, 1, 1, 2 ); label->setToolTip( i18n( "List of command line options that should be ignored when KDiff3 is used by other tools.\n" "Several values can be specified if separated via ';'\n" "This will suppress the \"Unknown option\" error." )); ++line; OptionCheckBox* pEscapeKeyQuits = new OptionCheckBox( i18n("Quit also via Escape key"), false, "EscapeKeyQuits", &m_options.m_bEscapeKeyQuits, page, this ); gbox->addWidget( pEscapeKeyQuits, line, 0, 1, 2 ); pEscapeKeyQuits->setToolTip( i18n( "Fast method to exit.\n" "For those who are used to using the Escape key." ) ); ++line; #ifdef _WIN32 QPushButton* pIntegrateWithClearCase = new QPushButton( i18n("Integrate with ClearCase"), page); gbox->addWidget( pIntegrateWithClearCase, line, 0 ); pIntegrateWithClearCase->setToolTip( i18n( "Integrate with Rational ClearCase from IBM.\n" "Modifies the \"map\" file in ClearCase subdir \"lib/mgrs\"\n" "(Only enabled when ClearCase \"bin\" directory is in the path.)")); connect(pIntegrateWithClearCase, SIGNAL(clicked()),this, SLOT(slotIntegrateWithClearCase()) ); pIntegrateWithClearCase->setEnabled( integrateWithClearCase( "existsClearCase", "" )!=0 ); QPushButton* pRemoveClearCaseIntegration = new QPushButton( i18n("Remove ClearCase Integration"), page); gbox->addWidget( pRemoveClearCaseIntegration, line, 1 ); pRemoveClearCaseIntegration->setToolTip( i18n( "Restore the old \"map\" file from before doing the ClearCase integration.")); connect(pRemoveClearCaseIntegration, SIGNAL(clicked()),this, SLOT(slotRemoveClearCaseIntegration()) ); pRemoveClearCaseIntegration->setEnabled( integrateWithClearCase( "existsClearCase", "" )!=0 ); ++line; #endif topLayout->addStretch(10); } void OptionDialog::slotIntegrateWithClearCase() { #ifdef _WIN32 char kdiff3CommandPath[1000]; GetModuleFileNameA( 0, kdiff3CommandPath, sizeof(kdiff3CommandPath)-1 ); integrateWithClearCase( "install", kdiff3CommandPath ); #endif } void OptionDialog::slotRemoveClearCaseIntegration() { #ifdef _WIN32 char kdiff3CommandPath[1000]; GetModuleFileNameA( 0, kdiff3CommandPath, sizeof(kdiff3CommandPath)-1 ); integrateWithClearCase( "uninstall", kdiff3CommandPath ); #endif } void OptionDialog::slotEncodingChanged() { if ( m_pSameEncoding->isChecked() ) { m_pEncodingBComboBox->setEnabled( false ); m_pEncodingBComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() ); m_pEncodingCComboBox->setEnabled( false ); m_pEncodingCComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() ); m_pEncodingOutComboBox->setEnabled( false ); m_pEncodingOutComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() ); m_pEncodingPPComboBox->setEnabled( false ); m_pEncodingPPComboBox->setCurrentIndex( m_pEncodingAComboBox->currentIndex() ); m_pAutoDetectUnicodeB->setEnabled( false ); m_pAutoDetectUnicodeB->setCheckState( m_pAutoDetectUnicodeA->checkState() ); m_pAutoDetectUnicodeC->setEnabled( false ); m_pAutoDetectUnicodeC->setCheckState( m_pAutoDetectUnicodeA->checkState() ); m_pAutoSelectOutEncoding->setEnabled( false ); m_pAutoSelectOutEncoding->setCheckState( m_pAutoDetectUnicodeA->checkState() ); } else { m_pEncodingBComboBox->setEnabled( true ); m_pEncodingCComboBox->setEnabled( true ); m_pEncodingOutComboBox->setEnabled( true ); m_pEncodingPPComboBox->setEnabled( true ); m_pAutoDetectUnicodeB->setEnabled( true ); m_pAutoDetectUnicodeC->setEnabled( true ); m_pAutoSelectOutEncoding->setEnabled( true ); m_pEncodingOutComboBox->setEnabled( m_pAutoSelectOutEncoding->checkState()==Qt::Unchecked ); } } void OptionDialog::setupKeysPage( void ) { //QVBox *page = addVBoxPage( i18n("Keys"), i18n("KeyDialog" ), // BarIcon("fonts", KIconLoader::SizeMedium ) ); //QVBoxLayout *topLayout = new QVBoxLayout( page, 0, spacingHint() ); // new KFontChooser( page,"font",false/*onlyFixed*/,QStringList(),false,6 ); //m_pKeyDialog=new KKeyDialog( false, 0 ); //topLayout->addWidget( m_pKeyDialog ); } void OptionDialog::slotOk( void ) { slotApply(); // My system returns variable width fonts even though I // disabled this. Even QFont::fixedPitch() doesn't work. QFontMetrics fm(m_options.m_font); if ( fm.width('W')!=fm.width('i') ) { int result = KMessageBox::warningYesNo(this, i18n( "You selected a variable width font.\n\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n\n" "Do you want to continue or do you want to select another font."), i18n("Incompatible Font"), KGuiItem( i18n("Continue at Own Risk") ), KGuiItem( i18n("Select Another Font")) ); if (result==KMessageBox::No) return; } accept(); } /** Copy the values from the widgets to the public variables.*/ void OptionDialog::slotApply( void ) { std::list::iterator i; for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i) { (*i)->apply(); } emit applyDone(); #ifdef _WIN32 QString locale = m_options.m_language; if ( locale == "Auto" || locale.isEmpty() ) locale = QLocale::system().name().left(2); int spacePos = locale.indexOf(' '); if (spacePos>0) locale = locale.left(spacePos); QSettings settings("HKEY_CURRENT_USER\\Software\\KDiff3\\diff-ext", QSettings::NativeFormat); settings.setValue( "Language", locale ); #endif } /** Set the default values in the widgets only, while the public variables remain unchanged. */ void OptionDialog::slotDefault() { int result = KMessageBox::warningContinueCancel(this, i18n("This resets all options. Not only those of the current topic.") ); if ( result==KMessageBox::Cancel ) return; else resetToDefaults(); } void OptionDialog::resetToDefaults() { std::list::iterator i; for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i) { (*i)->setToDefault(); } slotEncodingChanged(); } /** Initialise the widgets using the values in the public varibles. */ void OptionDialog::setState() { std::list::iterator i; for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i) { (*i)->setToCurrent(); } slotEncodingChanged(); } class ConfigValueMap : public ValueMap { private: KConfigGroup m_config; public: ConfigValueMap( const KConfigGroup& config ) : m_config( config ){ } void writeEntry(const QString& s, const QFont& v ){ m_config.writeEntry(s,v); } void writeEntry(const QString& s, const QColor& v ){ m_config.writeEntry(s,v); } void writeEntry(const QString& s, const QSize& v ){ m_config.writeEntry(s,v); } void writeEntry(const QString& s, const QPoint& v ){ m_config.writeEntry(s,v); } void writeEntry(const QString& s, int v ) { m_config.writeEntry(s,v); } void writeEntry(const QString& s, bool v ) { m_config.writeEntry(s,v); } void writeEntry(const QString& s, const QString& v ){ m_config.writeEntry(s,v); } void writeEntry(const QString& s, const char* v ) { m_config.writeEntry(s,v); } QFont readFontEntry (const QString& s, const QFont* defaultVal ) { return m_config.readEntry(s,*defaultVal); } QColor readColorEntry(const QString& s, const QColor* defaultVal ){ return m_config.readEntry(s,*defaultVal); } QSize readSizeEntry (const QString& s, const QSize* defaultVal ) { return m_config.readEntry(s,*defaultVal); } QPoint readPointEntry(const QString& s, const QPoint* defaultVal) { return m_config.readEntry(s,*defaultVal); } bool readBoolEntry (const QString& s, bool defaultVal ) { return m_config.readEntry(s,defaultVal); } int readNumEntry (const QString& s, int defaultVal ) { return m_config.readEntry(s,defaultVal); } QString readStringEntry(const QString& s, const QString& defaultVal){ return m_config.readEntry(s,defaultVal); } #ifdef KREPLACEMENTS_H void writeEntry(const QString& s, const QStringList& v, char separator ){ m_config.writeEntry(s,v,separator); } QStringList readListEntry (const QString& s, const QStringList& def, char separator ) { return m_config.readEntry(s, def ,separator ); } #else void writeEntry(const QString& s, const QStringList& v, char /*separator*/ ){ m_config.writeEntry(s,v); } QStringList readListEntry (const QString& s, const QStringList& def, char /*separator*/ ) { return m_config.readEntry(s, def ); } #endif }; void OptionDialog::saveOptions( KSharedConfigPtr config ) { // No i18n()-Translations here! ConfigValueMap cvm(config->group(KDIFF3_CONFIG_GROUP)); std::list::iterator i; for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i) { (*i)->doUnpreserve(); (*i)->write(&cvm); } } void OptionDialog::readOptions( KSharedConfigPtr config ) { // No i18n()-Translations here! ConfigValueMap cvm(config->group(KDIFF3_CONFIG_GROUP)); std::list::iterator i; for(i=m_optionItemList.begin(); i!=m_optionItemList.end(); ++i) { (*i)->read(&cvm); } setState(); } QString OptionDialog::parseOptions( const QStringList& optionList ) { QString result; QStringList::const_iterator i; for ( i=optionList.begin(); i!=optionList.end(); ++i ) { QString s = *i; int pos = s.indexOf('='); if( pos > 0 ) // seems not to have a tag { QString key = s.left(pos); QString val = s.mid(pos+1); std::list::iterator j; bool bFound = false; for(j=m_optionItemList.begin(); j!=m_optionItemList.end(); ++j) { if ( (*j)->getSaveName()==key ) { (*j)->doPreserve(); ValueMap config; config.writeEntry( key, val ); // Write the value as a string and (*j)->read(&config); // use the internal conversion from string to the needed value. bFound = true; break; } } if ( ! bFound ) { result += "No config item named \"" + key + "\"\n"; } } else { result += "No '=' found in \"" + s + "\"\n"; } } return result; } QString OptionDialog::calcOptionHelp() { ValueMap config; std::list::iterator j; for(j=m_optionItemList.begin(); j!=m_optionItemList.end(); ++j) { (*j)->write( &config ); } return config.getAsString(); } void OptionDialog::slotHistoryMergeRegExpTester() { RegExpTester dlg(this, s_autoMergeRegExpToolTip, s_historyStartRegExpToolTip, s_historyEntryStartRegExpToolTip, s_historyEntryStartSortKeyOrderToolTip ); dlg.init(m_pAutoMergeRegExpLineEdit->currentText(), m_pHistoryStartRegExpLineEdit->currentText(), m_pHistoryEntryStartRegExpLineEdit->currentText(), m_pHistorySortKeyOrderLineEdit->currentText()); if ( dlg.exec() ) { m_pAutoMergeRegExpLineEdit->setEditText( dlg.autoMergeRegExp() ); m_pHistoryStartRegExpLineEdit->setEditText( dlg.historyStartRegExp() ); m_pHistoryEntryStartRegExpLineEdit->setEditText( dlg.historyEntryStartRegExp() ); m_pHistorySortKeyOrderLineEdit->setEditText( dlg.historySortKeyOrder() ); } } //#include "optiondialog.moc" kdiff3-0.9.97/src-QT4/hi32-app-kdiff3.png0000644000175100001440000000035011626145613016715 0ustar joachimusersPNG  IHDR TgPLTE@tRNS@fIDATxڝ 0u}]+U#O<9׿4,4[&fX"eY1Il IboiB%t t ^wPDFEp\|GzmIENDB`kdiff3-0.9.97/src-QT4/kdiff3os2.rc0000644000175100001440000000005211626145614015640 0ustar joachimusersICON 1 DISCARDABLE "kdiff3_os2.ico"kdiff3-0.9.97/src-QT4/progress.cpp0000644000175100001440000002320012000244602016050 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2011 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #include "progress.h" #include #include #include #include #include #include #include ProgressDialog* g_pProgressDialog=0; ProgressDialog::ProgressDialog( QWidget* pParent ) : QDialog( pParent ) { setObjectName("ProgressDialog"); m_bStayHidden = false; setModal(true); QVBoxLayout* layout = new QVBoxLayout(this); m_pInformation = new QLabel( " ", this ); layout->addWidget( m_pInformation ); m_pProgressBar = new QProgressBar(); m_pProgressBar->setRange(0,1000); layout->addWidget( m_pProgressBar ); m_pSubInformation = new QLabel( " ", this); layout->addWidget( m_pSubInformation ); m_pSubProgressBar = new QProgressBar(); m_pSubProgressBar->setRange(0,1000); layout->addWidget( m_pSubProgressBar ); m_pSlowJobInfo = new QLabel( " ", this); layout->addWidget( m_pSlowJobInfo ); QHBoxLayout* hlayout = new QHBoxLayout(); layout->addLayout(hlayout); hlayout->addStretch(1); m_pAbortButton = new QPushButton( i18n("&Cancel"), this); hlayout->addWidget( m_pAbortButton ); connect( m_pAbortButton, SIGNAL(clicked()), this, SLOT(slotAbort()) ); m_progressDelayTimer = 0; resize( 400, 100 ); m_t1.start(); m_t2.start(); m_bWasCancelled = false; m_pJob = 0; } void ProgressDialog::setStayHidden( bool bStayHidden ) { m_bStayHidden = bStayHidden; } void ProgressDialog::push() { ProgressLevelData pld; if ( !m_progressStack.empty() ) { pld.m_dRangeMax = m_progressStack.back().m_dSubRangeMax; pld.m_dRangeMin = m_progressStack.back().m_dSubRangeMin; } else { m_bWasCancelled = false; m_t1.restart(); m_t2.restart(); if ( !m_bStayHidden ) show(); } m_progressStack.push_back( pld ); } void ProgressDialog::pop( bool bRedrawUpdate ) { if ( !m_progressStack.empty() ) { m_progressStack.pop_back(); if ( m_progressStack.empty() ) hide(); else recalc(bRedrawUpdate); } } void ProgressDialog::setInformation(const QString& info, double dCurrent, bool bRedrawUpdate ) { if ( m_progressStack.empty() ) return; ProgressLevelData& pld = m_progressStack.back(); pld.m_dCurrent = dCurrent; int level = m_progressStack.size(); if ( level==1 ) { m_pInformation->setText( info ); m_pSubInformation->setText(""); } else if ( level==2 ) { m_pSubInformation->setText( info ); } recalc(bRedrawUpdate); } void ProgressDialog::setInformation(const QString& info, bool bRedrawUpdate ) { if ( m_progressStack.empty() ) return; //ProgressLevelData& pld = m_progressStack.back(); int level = m_progressStack.size(); if ( level==1 ) { m_pInformation->setText( info ); m_pSubInformation->setText( "" ); } else if ( level==2 ) { m_pSubInformation->setText( info ); } recalc(bRedrawUpdate); } void ProgressDialog::setMaxNofSteps( int maxNofSteps ) { if ( m_progressStack.empty() ) return; ProgressLevelData& pld = m_progressStack.back(); pld.m_maxNofSteps = maxNofSteps; pld.m_dCurrent = 0; } void ProgressDialog::step( bool bRedrawUpdate ) { if ( m_progressStack.empty() ) return; ProgressLevelData& pld = m_progressStack.back(); pld.m_dCurrent += 1.0/pld.m_maxNofSteps; recalc(bRedrawUpdate); } void ProgressDialog::setCurrent( double dSubCurrent, bool bRedrawUpdate ) { if ( m_progressStack.empty() ) return; ProgressLevelData& pld = m_progressStack.back(); pld.m_dCurrent = dSubCurrent; recalc( bRedrawUpdate ); } // The progressbar goes from 0 to 1 usually. // By supplying a subrange transformation the subCurrent-values // 0 to 1 will be transformed to dMin to dMax instead. // Requirement: 0 < dMin < dMax < 1 void ProgressDialog::setRangeTransformation( double dMin, double dMax ) { if ( m_progressStack.empty() ) return; ProgressLevelData& pld = m_progressStack.back(); pld.m_dRangeMin = dMin; pld.m_dRangeMax = dMax; pld.m_dCurrent = 0; } void ProgressDialog::setSubRangeTransformation( double dMin, double dMax ) { if ( m_progressStack.empty() ) return; ProgressLevelData& pld = m_progressStack.back(); pld.m_dSubRangeMin = dMin; pld.m_dSubRangeMax = dMax; } void qt_enter_modal(QWidget*); void qt_leave_modal(QWidget*); void ProgressDialog::enterEventLoop( KJob* pJob, const QString& jobInfo ) { m_pJob = pJob; m_pSlowJobInfo->setText(""); m_currentJobInfo = jobInfo; if ( m_progressDelayTimer ) killTimer( m_progressDelayTimer ); m_progressDelayTimer = startTimer( 3000 ); /* 3 s delay */ // instead of using exec() the eventloop is entered and exited often without hiding/showing the window. //qt_enter_modal(this); QEventLoop* pEventLoop = new QEventLoop(this); m_eventLoopStack.push_back( pEventLoop ); pEventLoop->exec(); // this function only returns after ProgressDialog::exitEventLoop() is called. delete pEventLoop; m_eventLoopStack.pop_back(); //qt_leave_modal(this); } void ProgressDialog::exitEventLoop() { if ( m_progressDelayTimer ) killTimer( m_progressDelayTimer ); m_progressDelayTimer = 0; m_pJob = 0; if (!m_eventLoopStack.empty()) m_eventLoopStack.back()->exit(); } void ProgressDialog::recalc( bool bUpdate ) { if ( m_progressDelayTimer ) killTimer( m_progressDelayTimer ); m_progressDelayTimer = startTimer( 3000 ); /* 3 s delay */ int level = m_progressStack.size(); if( ( bUpdate && level==1) || m_t1.elapsed()>200 ) { if (m_progressStack.empty() ) { m_pProgressBar->setValue( 0 ); m_pSubProgressBar->setValue( 0 ); } else { std::list::iterator i = m_progressStack.begin(); m_pProgressBar->setValue( int( 1000.0 * ( i->m_dCurrent * (i->m_dRangeMax - i->m_dRangeMin) + i->m_dRangeMin ) ) ); ++i; if ( i!=m_progressStack.end() ) m_pSubProgressBar->setValue( int( 1000.0 * ( i->m_dCurrent * (i->m_dRangeMax - i->m_dRangeMin) + i->m_dRangeMin ) ) ); else m_pSubProgressBar->setValue( int( 1000.0 * m_progressStack.front().m_dSubRangeMin ) ); } if ( !m_bStayHidden && !isVisible() ) show(); qApp->processEvents(); m_t1.restart(); } } #include void ProgressDialog::show() { if ( m_progressDelayTimer ) killTimer( m_progressDelayTimer ); m_progressDelayTimer = 0; if ( !isVisible() && (parentWidget()==0 || parentWidget()->isVisible()) ) { QDialog::show(); } } void ProgressDialog::hide() { if ( m_progressDelayTimer ) killTimer( m_progressDelayTimer ); m_progressDelayTimer = 0; // Calling QDialog::hide() directly doesn't always work. (?) QTimer::singleShot( 100, this, SLOT(delayedHide()) ); } void ProgressDialog::delayedHide() { if (m_pJob!=0) { m_pJob->kill( KJob::Quietly ); m_pJob = 0; } QDialog::hide(); m_pInformation->setText( "" ); //m_progressStack.clear(); m_pProgressBar->setValue( 0 ); m_pSubProgressBar->setValue( 0 ); m_pSubInformation->setText(""); m_pSlowJobInfo->setText(""); } void ProgressDialog::reject() { m_bWasCancelled = true; QDialog::reject(); } void ProgressDialog::slotAbort() { reject(); } bool ProgressDialog::wasCancelled() { if( m_t2.elapsed()>100 ) { qApp->processEvents(); m_t2.restart(); } return m_bWasCancelled; } void ProgressDialog::timerEvent(QTimerEvent*) { if( !isVisible() ) { show(); } m_pSlowJobInfo->setText( m_currentJobInfo ); } ProgressProxy::ProgressProxy() { g_pProgressDialog->push(); } ProgressProxy::~ProgressProxy() { g_pProgressDialog->pop(false); } void ProgressProxy::enterEventLoop( KJob* pJob, const QString& jobInfo ) { g_pProgressDialog->enterEventLoop(pJob, jobInfo); } void ProgressProxy::exitEventLoop() { g_pProgressDialog->exitEventLoop(); } QDialog *ProgressProxy::getDialog() { return g_pProgressDialog; } void ProgressProxy::setInformation( const QString& info, bool bRedrawUpdate ) { g_pProgressDialog->setInformation( info, bRedrawUpdate ); } void ProgressProxy::setInformation( const QString& info, double dCurrent, bool bRedrawUpdate ) { g_pProgressDialog->setInformation( info, dCurrent, bRedrawUpdate ); } void ProgressProxy::setCurrent( double dCurrent, bool bRedrawUpdate ) { g_pProgressDialog->setCurrent( dCurrent, bRedrawUpdate ); } void ProgressProxy::step( bool bRedrawUpdate ) { g_pProgressDialog->step( bRedrawUpdate ); } void ProgressProxy::setMaxNofSteps( int maxNofSteps ) { g_pProgressDialog->setMaxNofSteps( maxNofSteps ); } bool ProgressProxy::wasCancelled() { return g_pProgressDialog->wasCancelled(); } void ProgressProxy::setRangeTransformation( double dMin, double dMax ) { g_pProgressDialog->setRangeTransformation( dMin, dMax ); } void ProgressProxy::setSubRangeTransformation( double dMin, double dMax ) { g_pProgressDialog->setSubRangeTransformation( dMin, dMax ); } kdiff3-0.9.97/src-QT4/kdiff3_shell.cpp0000644000175100001440000001263412000244602016552 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2007 Joachim Eibl * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "kdiff3_shell.h" #include "kdiff3.h" #include "kdiff3_part.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include KDiff3Shell::KDiff3Shell( bool bCompleteInit ) : KParts::MainWindow( ) { m_bUnderConstruction = true; // set the shell's ui resource file setXMLFile("kdiff3_shell.rc"); // and a status bar statusBar()->show(); // m_part = static_cast(factory->create(this, "KDiff3Part", QStringList("KParts::ReadWritePart"))); m_part = new KDiff3Part( this, "KDiff3Part", this ); if (m_part) { // and integrate the part's GUI with the shell's createGUI(m_part); //toolBar()->setToolButtonStyle( Qt::ToolButtonIconOnly ); // tell the KParts::MainWindow that this is indeed the main widget setCentralWidget(m_part->widget()); if (bCompleteInit) ((KDiff3App*)m_part->widget())->completeInit(); connect(((KDiff3App*)m_part->widget()), SIGNAL(createNewInstance(const QString&, const QString&, const QString&)), this, SLOT(slotNewInstance(const QString&, const QString&, const QString&))); } else { // if we couldn't find our Part, we exit since the Shell by // itself can't do anything useful KMessageBox::error(this, i18n("Could not initialize the KDiff3 part.\n" "This usually happens due to an installation problem. " "Please read the README-file in the source package for details.") ); //kapp->quit(); ::exit(-1); //kapp->quit() doesn't work here yet. // we return here, cause kapp->quit() only means "exit the // next time we enter the event loop... return; } // apply the saved mainwindow settings, if any, and ask the mainwindow // to automatically save settings if changed: window size, toolbar // position, icon size, etc. setAutoSaveSettings(); m_bUnderConstruction = false; } KDiff3Shell::~KDiff3Shell() { } bool KDiff3Shell::queryClose() { if (m_part) return ((KDiff3App*)m_part->widget())->queryClose(); else return true; } bool KDiff3Shell::queryExit() { return true; } void KDiff3Shell::closeEvent(QCloseEvent*e) { if ( queryClose() ) { e->accept(); bool bFileSaved = ((KDiff3App*)m_part->widget())->isFileSaved(); bool bDirCompare = ((KDiff3App*)m_part->widget())->isDirComparison(); KApplication::exit( bFileSaved || bDirCompare ? 0 : 1 ); } else e->ignore(); } void KDiff3Shell::optionsShowToolbar() { // this is all very cut and paste code for showing/hiding the // toolbar if (m_toolbarAction->isChecked()) toolBar()->show(); else toolBar()->hide(); } void KDiff3Shell::optionsShowStatusbar() { // this is all very cut and paste code for showing/hiding the // statusbar if (m_statusbarAction->isChecked()) statusBar()->show(); else statusBar()->hide(); } void KDiff3Shell::optionsConfigureKeys() { KShortcutsDialog::configure(actionCollection() /*, "kdiff3_shell.rc" */ ); } void KDiff3Shell::optionsConfigureToolbars() { KConfigGroup mainWindowGroup( KGlobal::config(), "MainWindow" ); saveMainWindowSettings( mainWindowGroup ); // use the standard toolbar editor KEditToolBar dlg(factory()); connect(&dlg, SIGNAL(newToolbarConfig()), this, SLOT(applyNewToolbarConfig())); dlg.exec(); } void KDiff3Shell::applyNewToolbarConfig() { KConfigGroup mainWindowGroup( KGlobal::config(), "MainWindow" ); applyMainWindowSettings( mainWindowGroup ); } void KDiff3Shell::slotNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 ) { KDiff3Shell* pKDiff3Shell = new KDiff3Shell(false); ((KDiff3App*)pKDiff3Shell->m_part->widget())->completeInit(fn1,fn2,fn3); } //#include "kdiff3_shell.moc" kdiff3-0.9.97/src-QT4/stable.h0000644000175100001440000000017111627516144015146 0ustar joachimusers#ifndef STABLE_H #define STABLE_H #include #include #ifdef _WIN32 #include #endif #endif kdiff3-0.9.97/src-QT4/gnudiff_xmalloc.cpp0000644000175100001440000000427611626145613017400 0ustar joachimusers/* xmalloc.c -- malloc with out of memory checking Modified for KDiff3 by Joachim Eibl 2003. The original file was part of GNU DIFF. Copyright (C) 1990-1999, 2000, 2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. */ # include #include #include #include #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #include "gnudiff_diff.h" /* If non NULL, call this function when memory is exhausted. */ //void (*xalloc_fail_func) PARAMS ((void)) = 0; void (*xalloc_fail_func)(void) = 0; void GnuDiff::xalloc_die (void) { if (xalloc_fail_func) (*xalloc_fail_func) (); //error (exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted)); /* The `noreturn' cannot be given to error, since it may return if its first argument is 0. To help compilers understand the xalloc_die does terminate, call exit. */ exit (EXIT_FAILURE); } /* Allocate N bytes of memory dynamically, with error checking. */ void * GnuDiff::xmalloc (size_t n) { void *p; p = malloc (n == 0 ? 1 : n); // There are systems where malloc returns 0 for n==0. if (p == 0) xalloc_die (); return p; } /* Change the size of an allocated block of memory P to N bytes, with error checking. */ void * GnuDiff::xrealloc (void *p, size_t n) { p = realloc (p, n==0 ? 1 : n); if (p == 0) xalloc_die (); return p; } /* Yield a new block of SIZE bytes, initialized to zero. */ void * GnuDiff::zalloc (size_t size) { void *p = xmalloc (size); memset (p, 0, size); return p; } kdiff3-0.9.97/src-QT4/options.h0000644000175100001440000001033112000244602015345 0ustar joachimusers/* * kdiff3 - Text Diff And Merge Tool * Copyright (C) 2002-2007 Joachim Eibl, joachim.eibl at gmx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef OPTIONS_H #define OPTIONS_H #include #include enum e_LineEndStyle { eLineEndStyleUnix=0, eLineEndStyleDos, eLineEndStyleAutoDetect, eLineEndStyleUndefined, // only one line exists eLineEndStyleConflict // User must resolve manually }; class Options { public: // Some settings are not available in the option dialog: QSize m_geometry; QPoint m_position; bool m_bMaximised; bool m_bShowToolBar; bool m_bShowStatusBar; int m_toolBarPos; // These are the results of the option dialog. QFont m_font; bool m_bItalicForDeltas; QColor m_fgColor; QColor m_bgColor; QColor m_diffBgColor; QColor m_colorA; QColor m_colorB; QColor m_colorC; QColor m_colorForConflict; QColor m_currentRangeBgColor; QColor m_currentRangeDiffBgColor; QColor m_oldestFileColor; QColor m_midAgeFileColor; QColor m_newestFileColor; QColor m_missingFileColor; QColor m_manualHelpRangeColor; bool m_bWordWrap; bool m_bReplaceTabs; bool m_bAutoIndentation; int m_tabSize; bool m_bAutoCopySelection; bool m_bSameEncoding; QTextCodec* m_pEncodingA; bool m_bAutoDetectUnicodeA; QTextCodec* m_pEncodingB; bool m_bAutoDetectUnicodeB; QTextCodec* m_pEncodingC; bool m_bAutoDetectUnicodeC; QTextCodec* m_pEncodingOut; bool m_bAutoSelectOutEncoding; QTextCodec* m_pEncodingPP; int m_lineEndStyle; bool m_bPreserveCarriageReturn; bool m_bTryHard; bool m_bShowWhiteSpaceCharacters; bool m_bShowWhiteSpace; bool m_bShowLineNumbers; bool m_bHorizDiffWindowSplitting; bool m_bShowInfoDialogs; bool m_bDiff3AlignBC; int m_whiteSpace2FileMergeDefault; int m_whiteSpace3FileMergeDefault; bool m_bIgnoreCase; bool m_bIgnoreNumbers; bool m_bIgnoreComments; QString m_PreProcessorCmd; QString m_LineMatchingPreProcessorCmd; bool m_bRunRegExpAutoMergeOnMergeStart; QString m_autoMergeRegExp; bool m_bRunHistoryAutoMergeOnMergeStart; QString m_historyStartRegExp; QString m_historyEntryStartRegExp; bool m_bHistoryMergeSorting; QString m_historyEntryStartSortKeyOrder; int m_maxNofHistoryEntries; QString m_IrrelevantMergeCmd; bool m_bAutoSaveAndQuitOnMergeWithoutConflicts; bool m_bAutoAdvance; int m_autoAdvanceDelay; QStringList m_recentAFiles; QStringList m_recentBFiles; QStringList m_recentCFiles; QStringList m_recentEncodings; QStringList m_recentOutputFiles; // Directory Merge options bool m_bDmSyncMode; bool m_bDmRecursiveDirs; bool m_bDmFollowFileLinks; bool m_bDmFollowDirLinks; bool m_bDmFindHidden; bool m_bDmCreateBakFiles; bool m_bDmBinaryComparison; bool m_bDmFullAnalysis; bool m_bDmTrustDate; bool m_bDmTrustDateFallbackToBinary; bool m_bDmTrustSize; bool m_bDmCopyNewer; //bool m_bDmShowOnlyDeltas; bool m_bDmShowIdenticalFiles; bool m_bDmUseCvsIgnore; bool m_bDmWhiteSpaceEqual; bool m_bDmCaseSensitiveFilenameComparison; bool m_bDmUnfoldSubdirs; bool m_bDmSkipDirStatus; QString m_DmFilePattern; QString m_DmFileAntiPattern; QString m_DmDirAntiPattern; QString m_language; bool m_bRightToLeftLanguage; QString m_ignorableCmdLineOptions; bool m_bIntegrateWithClearCase; bool m_bEscapeKeyQuits; }; #endif kdiff3-0.9.97/src-QT4/common.h0000644000175100001440000001011511626145614015162 0ustar joachimusers/*************************************************************************** common.h - Things that are needed often ------------------- begin : Mon Mar 18 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef _COMMON_H #define _COMMON_H #include template< class T > T min2( T x, T y ) { return x T max2( T x, T y ) { return x>y ? x : y; } typedef unsigned char UINT8; typedef unsigned short UINT16; typedef unsigned int UINT32; template T min3( T d1, T d2, T d3 ) { if ( d1 < d2 && d1 < d3 ) return d1; if ( d2 < d3 ) return d2; return d3; } template T max3( T d1, T d2, T d3 ) { if ( d1 > d2 && d1 > d3 ) return d1; if ( d2 > d3 ) return d2; return d3; } template T minMaxLimiter( T d, T minimum, T maximum ) { assert(minimum<=maximum); if ( d < minimum ) return minimum; if ( d > maximum ) return maximum; return d; } #include #include class QFont; class QColor; class QSize; class QPoint; class QStringList; class QTextStream; class ValueMap { private: std::map m_map; public: ValueMap(); virtual ~ValueMap(); void save( QTextStream& ts ); void load( QTextStream& ts ); QString getAsString(); // void load( const QString& s ); virtual void writeEntry(const QString&, const QFont& ); virtual void writeEntry(const QString&, const QColor& ); virtual void writeEntry(const QString&, const QSize& ); virtual void writeEntry(const QString&, const QPoint& ); virtual void writeEntry(const QString&, int ); virtual void writeEntry(const QString&, bool ); virtual void writeEntry(const QString&, const QStringList&, char separator='|' ); virtual void writeEntry(const QString&, const QString& ); virtual void writeEntry(const QString&, const char* ); virtual QFont readFontEntry (const QString&, const QFont* defaultVal ); virtual QColor readColorEntry(const QString&, const QColor* defaultVal ); virtual QSize readSizeEntry (const QString&, const QSize* defaultVal ); virtual QPoint readPointEntry(const QString&, const QPoint* defaultVal ); virtual bool readBoolEntry (const QString&, bool bDefault ); virtual int readNumEntry (const QString&, int iDefault ); virtual QStringList readListEntry (const QString&, const QStringList& defaultVal, char separator='|' ); virtual QString readStringEntry(const QString&, const QString& ); QString readEntry (const QString& s, const QString& defaultVal ); QString readEntry (const QString& s, const char* defaultVal ); QFont readEntry (const QString& s, const QFont& defaultVal ); QColor readEntry(const QString& s, const QColor defaultVal ); QSize readEntry (const QString& s, const QSize defaultVal ); QPoint readEntry(const QString& s, const QPoint defaultVal ); bool readEntry (const QString& s, bool bDefault ); int readEntry (const QString& s, int iDefault ); QStringList readEntry (const QString& s, const QStringList& defaultVal, char separator='|' ); }; QStringList safeStringSplit(const QString& s, char sepChar=',', char metaChar='\\' ); QString safeStringJoin(const QStringList& sl, char sepChar=',', char metaChar='\\' ); #endif kdiff3-0.9.97/src-QT4/smalldialogs.cpp0000644000175100001440000005265212000244602016674 0ustar joachimusers/*************************************************************************** * Copyright (C) 2005-2007 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "smalldialogs.h" #include "options.h" #include "diff.h" #include #include #include #include #include #include #include #include #include #include #include #include #include // OpenDialog ************************************************************** OpenDialog::OpenDialog( QWidget* pParent, const QString& n1, const QString& n2, const QString& n3, bool bMerge, const QString& outputName, const char* slotConfigure, Options* pOptions ) : QDialog( pParent ) { setObjectName("OpenDialog"); setModal(true); m_pOptions = pOptions; QVBoxLayout* v = new QVBoxLayout( this ); v->setMargin(5); QGridLayout* h = new QGridLayout(); v->addLayout(h); h->setSpacing( 5 ); h->setColumnStretch( 1, 10 ); QLabel* label = new QLabel( i18n("A (Base):"), this ); m_pLineA = new QComboBox(); m_pLineA->setEditable(true); m_pLineA->insertItems( 0, m_pOptions->m_recentAFiles ); m_pLineA->setEditText( KUrl(n1).prettyUrl() ); m_pLineA->setMinimumWidth( 200 ); QPushButton * button = new QPushButton( i18n("File..."), this ); connect( button, SIGNAL(clicked()), this, SLOT( selectFileA() ) ); QPushButton * button2 = new QPushButton( i18n("Dir..."), this ); connect( button2, SIGNAL(clicked()), this, SLOT( selectDirA() ) ); connect( m_pLineA, SIGNAL(editTextChanged(const QString&)), this, SLOT(inputFilenameChanged() ) ); h->addWidget( label, 0, 0 ); h->addWidget( m_pLineA, 0, 1 ); h->addWidget( button, 0, 2 ); h->addWidget( button2, 0, 3 ); label = new QLabel( "B:", this ); m_pLineB = new QComboBox(); m_pLineB->setEditable(true); m_pLineB->insertItems( 0, m_pOptions->m_recentBFiles ); m_pLineB->setEditText( KUrl(n2).prettyUrl() ); m_pLineB->setMinimumWidth( 200 ); button = new QPushButton( i18n("File..."), this ); connect( button, SIGNAL(clicked()), this, SLOT( selectFileB() ) ); button2 = new QPushButton( i18n("Dir..."), this ); connect( button2, SIGNAL(clicked()), this, SLOT( selectDirB() ) ); connect( m_pLineB, SIGNAL(editTextChanged(const QString&)), this, SLOT(inputFilenameChanged() ) ); h->addWidget( label, 1, 0 ); h->addWidget( m_pLineB, 1, 1 ); h->addWidget( button, 1, 2 ); h->addWidget( button2, 1, 3 ); label = new QLabel( i18n("C (Optional):"), this ); m_pLineC= new QComboBox(); m_pLineC->setEditable(true); m_pLineC->insertItems( 0, m_pOptions->m_recentCFiles ); m_pLineC->setEditText( KUrl(n3).prettyUrl() ); m_pLineC->setMinimumWidth( 200 ); button = new QPushButton( i18n("File..."), this ); connect( button, SIGNAL(clicked()), this, SLOT( selectFileC() ) ); button2 = new QPushButton( i18n("Dir..."), this ); connect( button2, SIGNAL(clicked()), this, SLOT( selectDirC() ) ); connect( m_pLineC, SIGNAL(editTextChanged(const QString&)), this, SLOT(inputFilenameChanged() ) ); h->addWidget( label, 2, 0 ); h->addWidget( m_pLineC, 2, 1 ); h->addWidget( button, 2, 2 ); h->addWidget( button2, 2, 3 ); m_pMerge = new QCheckBox( i18n("Merge"), this ); h->addWidget( m_pMerge, 3, 0 ); QHBoxLayout* hl = new QHBoxLayout(); h->addLayout( hl, 3, 1 ); hl->addStretch(2); button = new QPushButton(i18n("Swap/Copy Names ..."), this); //button->setToggleButton(false); hl->addWidget( button ); QMenu* m = new QMenu(this); m->addAction( i18n("Swap %1<->%2", QString("A"),QString("B") )); m->addAction( i18n("Swap %1<->%2",QString("B"),QString("C") )); m->addAction( i18n("Swap %1<->%2",QString("C"),QString("A") )); m->addAction( i18n("Copy %1->Output",QString("A") )); m->addAction( i18n("Copy %1->Output",QString("B") )); m->addAction( i18n("Copy %1->Output",QString("C") )); m->addAction( i18n("Swap %1<->Output",QString("A") )); m->addAction( i18n("Swap %1<->Output",QString("B") )); m->addAction( i18n("Swap %1<->Output",QString("C") )); connect( m, SIGNAL(triggered(QAction*)), this, SLOT(slotSwapCopyNames(QAction*))); button->setMenu(m); hl->addStretch(2); label = new QLabel( i18n("Output (optional):"), this ); m_pLineOut = new QComboBox(); m_pLineOut->setEditable(true); m_pLineOut->insertItems( 0, m_pOptions->m_recentOutputFiles ); m_pLineOut->setEditText( KUrl(outputName).prettyUrl() ); m_pLineOut->setMinimumWidth( 200 ); button = new QPushButton( i18n("File..."), this ); connect( button, SIGNAL(clicked()), this, SLOT( selectOutputName() ) ); button2 = new QPushButton( i18n("Dir..."), this ); connect( button2, SIGNAL(clicked()), this, SLOT( selectOutputDir() ) ); connect( m_pMerge, SIGNAL(stateChanged(int)), this, SLOT(internalSlot(int)) ); connect( this, SIGNAL(internalSignal(bool)), m_pLineOut, SLOT(setEnabled(bool)) ); connect( this, SIGNAL(internalSignal(bool)), button, SLOT(setEnabled(bool)) ); connect( this, SIGNAL(internalSignal(bool)), button2, SLOT(setEnabled(bool)) ); m_pMerge->setChecked( !bMerge ); m_pMerge->setChecked( bMerge ); // m_pLineOutput->setEnabled( bMerge ); // button->setEnabled( bMerge ); h->addWidget( label, 4, 0 ); h->addWidget( m_pLineOut, 4, 1 ); h->addWidget( button, 4, 2 ); h->addWidget( button2, 4, 3 ); h->addItem(new QSpacerItem(200, 0), 0, 1); QHBoxLayout* l = new QHBoxLayout(); v->addLayout( l ); l->setSpacing(5); button = new QPushButton( i18n("Configure..."), this ); connect( button, SIGNAL(clicked()), pParent, slotConfigure ); l->addWidget( button, 1 ); l->addStretch(1); button = new QPushButton( i18n("&OK"), this ); button->setDefault( true ); connect( button, SIGNAL(clicked()), this, SLOT( accept() ) ); l->addWidget( button, 1 ); button = new QPushButton( i18n("&Cancel"), this ); connect( button, SIGNAL(clicked()), this, SLOT( reject() ) ); l->addWidget( button,1 ); QSize sh = sizeHint(); setFixedHeight( sh.height() ); m_bInputFileNameChanged = false; #ifdef KREPLACEMENTS_H m_pLineA->lineEdit()->installEventFilter( this ); m_pLineB->lineEdit()->installEventFilter( this ); m_pLineC->lineEdit()->installEventFilter( this ); m_pLineOut->lineEdit()->installEventFilter( this ); #endif } // Eventfilter: Only needed under Windows. // Without this, files dropped in the line edit have URL-encoding. // This eventfilter decodes the filenames as needed by KDiff3. bool OpenDialog::eventFilter(QObject* o, QEvent* e) { if ( e->type()==QEvent::DragEnter ) { QDragEnterEvent* d = static_cast(e); d->setAccepted( d->mimeData()->hasUrls() ); return true; } if (e->type()==QEvent::Drop) { QDropEvent* d = static_cast(e); if ( !d->mimeData()->hasUrls() ) return false; QList lst = d->mimeData()->urls(); if ( lst.count() > 0 ) { static_cast(o)->setText( QDir::toNativeSeparators( lst[0].toLocalFile() ) ); static_cast(o)->setFocus(); } return true; } return false; } void OpenDialog::selectURL( QComboBox* pLine, bool bDir, int i, bool bSave ) { QString current = pLine->currentText(); if (current.isEmpty() && i>3 ){ current = m_pLineC->currentText(); } if (current.isEmpty() ){ current = m_pLineB->currentText(); } if (current.isEmpty() ){ current = m_pLineA->currentText(); } KUrl newURL = bDir ? KFileDialog::getExistingDirectoryUrl( current, this) : bSave ? KFileDialog::getSaveUrl( current, 0, this) : KFileDialog::getOpenUrl( current, 0, this); if ( !newURL.isEmpty() ) { pLine->setEditText( newURL.url() ); } // newURL won't be modified if nothing was selected. } void OpenDialog::selectFileA() { selectURL( m_pLineA, false, 1, false ); } void OpenDialog::selectFileB() { selectURL( m_pLineB, false, 2, false ); } void OpenDialog::selectFileC() { selectURL( m_pLineC, false, 3, false ); } void OpenDialog::selectOutputName(){ selectURL( m_pLineOut, false, 4, true ); } void OpenDialog::selectDirA() { selectURL( m_pLineA, true, 1, false ); } void OpenDialog::selectDirB() { selectURL( m_pLineB, true, 2, false ); } void OpenDialog::selectDirC() { selectURL( m_pLineC, true, 3, false ); } void OpenDialog::selectOutputDir() { selectURL( m_pLineOut, true, 4, true ); } void OpenDialog::internalSlot(int i) { emit internalSignal(i!=0); } // Clear the output-filename when any input-filename changed, // because users forgot to change the output and accidently overwrote it with // wrong data during a merge. void OpenDialog::inputFilenameChanged() { if(!m_bInputFileNameChanged) { m_bInputFileNameChanged=true; m_pLineOut->clearEditText(); } } static void fixCurrentText( QComboBox* pCB ) { QString s = pCB->currentText(); int pos = s.indexOf( '\n' ); if ( pos>=0 ) s=s.left(pos); pos = s.indexOf( '\r' ); if ( pos>=0 ) s=s.left(pos); pCB->setEditText( s ); } void OpenDialog::accept() { int maxNofRecentFiles = 10; fixCurrentText( m_pLineA ); QString s = m_pLineA->currentText(); s = QUrl::fromLocalFile(s).toLocalFile(); QStringList* sl = &m_pOptions->m_recentAFiles; // If an item exist, remove it from the list and reinsert it at the beginning. sl->removeAll(s); if ( !s.isEmpty() ) sl->prepend( s ); if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() ); fixCurrentText( m_pLineB ); s = m_pLineB->currentText(); s = QUrl::fromLocalFile(s).toLocalFile(); sl = &m_pOptions->m_recentBFiles; sl->removeAll(s); if ( !s.isEmpty() ) sl->prepend( s ); if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() ); fixCurrentText( m_pLineC ); s = m_pLineC->currentText(); s = QUrl::fromLocalFile(s).toLocalFile(); sl = &m_pOptions->m_recentCFiles; sl->removeAll(s); if ( !s.isEmpty() ) sl->prepend( s ); if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() ); fixCurrentText( m_pLineOut ); s = m_pLineOut->currentText(); s = QUrl::fromLocalFile(s).toLocalFile(); sl = &m_pOptions->m_recentOutputFiles; sl->removeAll(s); if ( !s.isEmpty() ) sl->prepend( s ); if (sl->count()>maxNofRecentFiles) sl->erase( sl->begin()+maxNofRecentFiles, sl->end() ); QDialog::accept(); } void OpenDialog::slotSwapCopyNames( QAction* pAction ) // id selected in the popup menu { int id = pAction->parentWidget()->actions().indexOf(pAction); QComboBox* cb1=0; QComboBox* cb2=0; switch(id) { case 0: cb1=m_pLineA; cb2=m_pLineB; break; case 1: cb1=m_pLineB; cb2=m_pLineC; break; case 2: cb1=m_pLineC; cb2=m_pLineA; break; case 3: cb1=m_pLineA; cb2=m_pLineOut; break; case 4: cb1=m_pLineB; cb2=m_pLineOut; break; case 5: cb1=m_pLineC; cb2=m_pLineOut; break; case 6: cb1=m_pLineA; cb2=m_pLineOut; break; case 7: cb1=m_pLineB; cb2=m_pLineOut; break; case 8: cb1=m_pLineC; cb2=m_pLineOut; break; } if ( cb1 && cb2 ) { QString t1 = cb1->currentText(); QString t2 = cb2->currentText(); cb2->setEditText(t1); if ( id<=2 || id>=6 ) { cb1->setEditText( t2 ); } } } // FindDialog ********************************************* FindDialog::FindDialog(QWidget* pParent) : QDialog( pParent ) { QGridLayout* layout = new QGridLayout( this ); layout->setMargin(5); layout->setSpacing(5); int line=0; layout->addWidget( new QLabel(i18n("Search text:"),this), line, 0, 1, 2 ); ++line; m_pSearchString = new QLineEdit( this ); layout->addWidget( m_pSearchString, line, 0, 1, 2 ); ++line; m_pCaseSensitive = new QCheckBox(i18n("Case sensitive"),this); layout->addWidget( m_pCaseSensitive, line, 1 ); m_pSearchInA = new QCheckBox(i18n("Search A"),this); layout->addWidget( m_pSearchInA, line, 0 ); m_pSearchInA->setChecked( true ); ++line; m_pSearchInB = new QCheckBox(i18n("Search B"),this); layout->addWidget( m_pSearchInB, line, 0 ); m_pSearchInB->setChecked( true ); ++line; m_pSearchInC = new QCheckBox(i18n("Search C"),this); layout->addWidget( m_pSearchInC, line, 0 ); m_pSearchInC->setChecked( true ); ++line; m_pSearchInOutput = new QCheckBox(i18n("Search output"),this); layout->addWidget( m_pSearchInOutput, line, 0 ); m_pSearchInOutput->setChecked( true ); ++line; QPushButton* pButton = new QPushButton( i18n("&Search"), this ); layout->addWidget( pButton, line, 0 ); connect( pButton, SIGNAL(clicked()), this, SLOT(accept())); pButton = new QPushButton( i18n("&Cancel"), this ); layout->addWidget( pButton, line, 1 ); connect( pButton, SIGNAL(clicked()), this, SLOT(reject())); hide(); } void FindDialog::setVisible( bool bVisible ) { QDialog::setVisible( bVisible ); m_pSearchString->selectAll(); m_pSearchString->setFocus(); } RegExpTester::RegExpTester( QWidget* pParent, const QString& autoMergeRegExpToolTip, const QString& historyStartRegExpToolTip, const QString& historyEntryStartRegExpToolTip, const QString& historySortKeyOrderToolTip ) : QDialog( pParent) { int line=0; setWindowTitle(i18n("Regular Expression Tester")); QGridLayout* pGrid = new QGridLayout( this ); pGrid->setSpacing(5); pGrid->setMargin(5); QLabel* l = new QLabel(i18n("Auto merge regular expression:"), this); pGrid->addWidget(l,line,0); l->setToolTip( autoMergeRegExpToolTip ); m_pAutoMergeRegExpEdit = new QLineEdit(this); pGrid->addWidget(m_pAutoMergeRegExpEdit,line,1); connect( m_pAutoMergeRegExpEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("Example auto merge line:"), this); pGrid->addWidget(l,line,0); l->setToolTip( i18n("To test auto merge, copy a line as used in your files.") ); m_pAutoMergeExampleEdit = new QLineEdit(this); pGrid->addWidget(m_pAutoMergeExampleEdit,line,1); connect( m_pAutoMergeExampleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("Match result:"), this); pGrid->addWidget(l,line,0); m_pAutoMergeMatchResult = new QLineEdit(this); m_pAutoMergeMatchResult->setReadOnly(true); pGrid->addWidget(m_pAutoMergeMatchResult,line,1); ++line; pGrid->addItem( new QSpacerItem(100,20), line, 0 ); pGrid->setRowStretch( line, 5); ++line; l = new QLabel(i18n("History start regular expression:"), this); pGrid->addWidget(l,line,0); l->setToolTip( historyStartRegExpToolTip ); m_pHistoryStartRegExpEdit = new QLineEdit(this); pGrid->addWidget(m_pHistoryStartRegExpEdit,line,1); connect( m_pHistoryStartRegExpEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("Example history start line (with leading comment):"), this); pGrid->addWidget(l,line,0); l->setToolTip( i18n("Copy a history start line as used in your files,\n" "including the leading comment.") ); m_pHistoryStartExampleEdit = new QLineEdit(this); pGrid->addWidget(m_pHistoryStartExampleEdit,line,1); connect( m_pHistoryStartExampleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("Match result:"), this); pGrid->addWidget(l,line,0); m_pHistoryStartMatchResult = new QLineEdit(this); m_pHistoryStartMatchResult->setReadOnly(true); pGrid->addWidget(m_pHistoryStartMatchResult,line,1); ++line; pGrid->addItem( new QSpacerItem(100,20), line, 0 ); pGrid->setRowStretch( line, 5); ++line; l = new QLabel(i18n("History entry start regular expression:"), this); pGrid->addWidget(l,line,0); l->setToolTip( historyEntryStartRegExpToolTip ); m_pHistoryEntryStartRegExpEdit = new QLineEdit(this); pGrid->addWidget(m_pHistoryEntryStartRegExpEdit,line,1); connect( m_pHistoryEntryStartRegExpEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("History sort key order:"), this); pGrid->addWidget(l,line,0); l->setToolTip( historySortKeyOrderToolTip ); m_pHistorySortKeyOrderEdit = new QLineEdit(this); pGrid->addWidget(m_pHistorySortKeyOrderEdit,line,1); connect( m_pHistorySortKeyOrderEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("Example history entry start line (without leading comment):"), this); pGrid->addWidget(l,line,0); l->setToolTip( i18n("Copy a history entry start line as used in your files,\n" "but omit the leading comment.") ); m_pHistoryEntryStartExampleEdit = new QLineEdit(this); pGrid->addWidget(m_pHistoryEntryStartExampleEdit,line,1); connect( m_pHistoryEntryStartExampleEdit, SIGNAL(textChanged(const QString&)), this, SLOT(slotRecalc())); ++line; l = new QLabel(i18n("Match result:"), this); pGrid->addWidget(l,line,0); m_pHistoryEntryStartMatchResult = new QLineEdit(this); m_pHistoryEntryStartMatchResult->setReadOnly(true); pGrid->addWidget(m_pHistoryEntryStartMatchResult,line,1); ++line; l = new QLabel(i18n("Sort key result:"), this); pGrid->addWidget(l,line,0); m_pHistorySortKeyResult = new QLineEdit(this); m_pHistorySortKeyResult->setReadOnly(true); pGrid->addWidget(m_pHistorySortKeyResult,line,1); ++line; QPushButton* pButton = new QPushButton(i18n("OK"), this); pGrid->addWidget(pButton,line,0); connect( pButton, SIGNAL(clicked()), this, SLOT(accept())); pButton = new QPushButton(i18n("Cancel"), this); pGrid->addWidget(pButton,line,1); connect( pButton, SIGNAL(clicked()), this, SLOT(reject())); resize( 800, sizeHint().height() ); } void RegExpTester::init( const QString& autoMergeRegExp, const QString& historyStartRegExp, const QString& historyEntryStartRegExp, const QString historySortKeyOrder ) { m_pAutoMergeRegExpEdit->setText( autoMergeRegExp ); m_pHistoryStartRegExpEdit->setText( historyStartRegExp ); m_pHistoryEntryStartRegExpEdit->setText( historyEntryStartRegExp ); m_pHistorySortKeyOrderEdit->setText( historySortKeyOrder ); } QString RegExpTester::autoMergeRegExp() { return m_pAutoMergeRegExpEdit->text(); } QString RegExpTester::historyStartRegExp() { return m_pHistoryStartRegExpEdit->text(); } QString RegExpTester::historyEntryStartRegExp() { return m_pHistoryEntryStartRegExpEdit->text(); } QString RegExpTester::historySortKeyOrder() { return m_pHistorySortKeyOrderEdit->text(); } void RegExpTester::slotRecalc() { QRegExp autoMergeRegExp( m_pAutoMergeRegExpEdit->text() ); if ( autoMergeRegExp.exactMatch( m_pAutoMergeExampleEdit->text() ) ) { m_pAutoMergeMatchResult->setText( i18n("Match success.") ); } else { m_pAutoMergeMatchResult->setText( i18n("Match failed.") ); } QRegExp historyStartRegExp( m_pHistoryStartRegExpEdit->text() ); if ( historyStartRegExp.exactMatch( m_pHistoryStartExampleEdit->text() ) ) { m_pHistoryStartMatchResult->setText( i18n("Match success.") ); } else { m_pHistoryStartMatchResult->setText( i18n("Match failed.") ); } QStringList parenthesesGroups; bool bSuccess = findParenthesesGroups( m_pHistoryEntryStartRegExpEdit->text(), parenthesesGroups ); if ( ! bSuccess ) { m_pHistoryEntryStartMatchResult->setText( i18n("Opening and closing parentheses do not match in regular expression.") ); m_pHistorySortKeyResult->setText( "" ); return; } QRegExp historyEntryStartRegExp( m_pHistoryEntryStartRegExpEdit->text() ); QString s = m_pHistoryEntryStartExampleEdit->text(); if ( historyEntryStartRegExp.exactMatch( s ) ) { m_pHistoryEntryStartMatchResult->setText( i18n("Match success.") ); QString key = calcHistorySortKey( m_pHistorySortKeyOrderEdit->text(),historyEntryStartRegExp,parenthesesGroups); m_pHistorySortKeyResult->setText(key); } else { m_pHistoryEntryStartMatchResult->setText( i18n("Match failed.") ); m_pHistorySortKeyResult->setText( "" ); } } //#include "smalldialogs.moc" kdiff3-0.9.97/src-QT4/gnudiff_system.h0000644000175100001440000000730011626262136016721 0ustar joachimusers/* System dependent declarations. Modified for KDiff3 by Joachim Eibl 2003. The original file was part of GNU DIFF. Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 Free Software Foundation, Inc. GNU DIFF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU DIFF is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GNUDIFF_SYSTEM_H #define GNUDIFF_SYSTEM_H /* Don't bother to support K&R C compilers any more; it's not worth the trouble. These macros prevent some library modules from being compiled in K&R C mode. */ #define PARAMS(Args) Args #define PROTOTYPES 1 /* Verify a requirement at compile-time (unlike assert, which is runtime). */ #define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } /* Determine whether an integer type is signed, and its bounds. This code assumes two's (or one's!) complement with no holes. */ /* The extra casts work around common compiler bugs, e.g. Cray C 5.0.3.0 when t == time_t. */ #ifndef TYPE_SIGNED # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) #endif #ifndef TYPE_MINIMUM # define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ : (t) 0)) #endif #ifndef TYPE_MAXIMUM # define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) #endif #include #include # include #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif #if !EXIT_FAILURE # undef EXIT_FAILURE /* Sony NEWS-OS 4.0C defines EXIT_FAILURE to 0. */ # define EXIT_FAILURE 1 #endif #define EXIT_TROUBLE 2 #include #ifndef SSIZE_MAX # define SSIZE_MAX TYPE_MAXIMUM (ssize_t) #endif #ifndef PTRDIFF_MAX # define PTRDIFF_MAX TYPE_MAXIMUM (ptrdiff_t) #endif #ifndef SIZE_MAX # define SIZE_MAX TYPE_MAXIMUM (size_t) #endif #ifndef UINTMAX_MAX # define UINTMAX_MAX TYPE_MAXIMUM (uintmax_t) #endif #include #include #include /* CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given as an argument to macros like `isspace'. */ # define CTYPE_DOMAIN(c) 1 #define ISPRINT(c) (CTYPE_DOMAIN (c) && isprint (c)) #define ISSPACE(c) (CTYPE_DOMAIN (c) && isspace (c)) # define TOLOWER(c) tolower (c) /* ISDIGIT differs from isdigit, as follows: - Its arg may be any int or unsigned int; it need not be an unsigned char. - It's guaranteed to evaluate its argument exactly once. - It's typically faster. POSIX 1003.1-2001 says that only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless it's important to use the locale's definition of `digit' even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) #undef MIN #undef MAX #define MIN(a, b) ((a) <= (b) ? (a) : (b)) #define MAX(a, b) ((a) >= (b) ? (a) : (b)) /* The integer type of a line number. Since files are read into main memory, ptrdiff_t should be wide enough. */ typedef ptrdiff_t lin; #define LIN_MAX PTRDIFF_MAX verify (lin_is_signed, TYPE_SIGNED (lin)); verify (lin_is_wide_enough, sizeof (ptrdiff_t) <= sizeof (lin)); //verify (lin_is_printable_as_long, sizeof (lin) <= sizeof (long)); #endif kdiff3-0.9.97/src-QT4/progress.h0000644000175100001440000000730212000244602015522 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2007 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #ifndef PROGRESS_H #define PROGRESS_H #include #include #include class KJob; class QEventLoop; class QLabel; class QProgressBar; class ProgressDialog : public QDialog { Q_OBJECT public: ProgressDialog( QWidget* pParent ); void setStayHidden( bool bStayHidden ); void setInformation( const QString& info, bool bRedrawUpdate=true ); void setInformation( const QString& info, double dCurrent, bool bRedrawUpdate=true ); void setCurrent( double dCurrent, bool bRedrawUpdate=true ); void step( bool bRedrawUpdate=true ); void setMaxNofSteps( int dMaxNofSteps ); void push(); void pop(bool bRedrawUpdate=true); // The progressbar goes from 0 to 1 usually. // By supplying a subrange transformation the subCurrent-values // 0 to 1 will be transformed to dMin to dMax instead. // Requirement: 0 < dMin < dMax < 1 void setRangeTransformation( double dMin, double dMax ); void setSubRangeTransformation( double dMin, double dMax ); void exitEventLoop(); void enterEventLoop( KJob* pJob, const QString& jobInfo ); bool wasCancelled(); void show(); void hide(); virtual void timerEvent(QTimerEvent*); private: struct ProgressLevelData { ProgressLevelData() { m_dCurrent=0; m_maxNofSteps=1; m_dRangeMin=0; m_dRangeMax=1; m_dSubRangeMin = 0; m_dSubRangeMax = 1; } double m_dCurrent; int m_maxNofSteps; // when step() is used. double m_dRangeMax; double m_dRangeMin; double m_dSubRangeMax; double m_dSubRangeMin; }; std::list m_progressStack; int m_progressDelayTimer; std::list m_eventLoopStack; QProgressBar* m_pProgressBar; QProgressBar* m_pSubProgressBar; QLabel* m_pInformation; QLabel* m_pSubInformation; QLabel* m_pSlowJobInfo; QPushButton* m_pAbortButton; void recalc(bool bRedrawUpdate); QTime m_t1; QTime m_t2; bool m_bWasCancelled; KJob* m_pJob; QString m_currentJobInfo; // Needed if the job doesn't stop after a reasonable time. bool m_bStayHidden; protected: virtual void reject(); private slots: void delayedHide(); void slotAbort(); }; // When using the ProgressProxy you need not take care of the push and pop, except when explicit. class ProgressProxy: public QObject { Q_OBJECT public: ProgressProxy(); ~ProgressProxy(); void setInformation( const QString& info, bool bRedrawUpdate=true ); void setInformation( const QString& info, double dCurrent, bool bRedrawUpdate=true ); void setCurrent( double dCurrent, bool bRedrawUpdate=true ); void step( bool bRedrawUpdate=true ); void setMaxNofSteps( int dMaxNofSteps ); bool wasCancelled(); void setRangeTransformation( double dMin, double dMax ); void setSubRangeTransformation( double dMin, double dMax ); static void exitEventLoop(); static void enterEventLoop( KJob* pJob, const QString& jobInfo ); static QDialog *getDialog(); private: }; extern ProgressDialog* g_pProgressDialog; #endif kdiff3-0.9.97/src-QT4/kdiff3_part.h0000644000175100001440000000610411626145612016067 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2007 Joachim Eibl * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef _KDIFF3PART_H_ #define _KDIFF3PART_H_ #include #include class QWidget; class KDiff3App; /** * This is a "Part". It that does all the real work in a KPart * application. * * @short Main Part * @author Joachim Eibl */ class KDiff3Part : public KParts::ReadWritePart { Q_OBJECT public: /** * Default constructor */ KDiff3Part(QWidget *parentWidget, const char *widgetName, QObject *parent ); /** * Destructor */ virtual ~KDiff3Part(); /** * This is a virtual function inherited from KParts::ReadWritePart. * A shell will use this to inform this Part if it should act * read-only */ virtual void setReadWrite(bool rw); /** * Reimplemented to disable and enable Save action */ virtual void setModified(bool modified); protected: /** * This must be implemented by each part */ virtual bool openFile(); /** * This must be implemented by each read-write part */ virtual bool saveFile(); private: KDiff3App* m_widget; bool m_bIsShell; }; class KComponentData; class KAboutData; class KDiff3PartFactory : public KParts::Factory { Q_OBJECT public: KDiff3PartFactory(); virtual ~KDiff3PartFactory(); virtual KParts::Part* createPartObject( QWidget *parentWidget, QObject *parent, const char *classname, const QStringList &args ); static KComponentData* instance(); private: static KComponentData* s_instance; static KAboutData* s_about; }; #endif // _KDIFF3PART_H_ kdiff3-0.9.97/src-QT4/kdiff3_shell.rc0000644000175100001440000001225011626145613016405 0ustar joachimusers &File &Directory Current Item Merge Operation Current Item Sync Operation &Movement D&iffview &Merge &Window Main Toolbar kdiff3-0.9.97/src-QT4/kdiff3.ico0000644000175100001440000000206611626145614015371 0ustar joachimusers &(( @DODDDOOOOOOOOOODDDOOOOODOD""""( DOODOOOOOOOODOOOOODOODDDOOOODOOOODDOkdiff3-0.9.97/src-QT4/pdiff.cpp0000644000175100001440000024613512000244602015312 0ustar joachimusers/*************************************************************************** pdiff.cpp - Implementation for class KDiff3App --------------- begin : Mon March 18 20:04:50 CET 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "stable.h" #include "difftextwindow.h" #include "mergeresultwindow.h" #include "directorymergewindow.h" #include "smalldialogs.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "kdiff3.h" #include "optiondialog.h" #include "fileaccess.h" #include "progress.h" #ifdef _WIN32 #include #else #include #include #endif bool g_bIgnoreWhiteSpace = true; bool g_bIgnoreTrivialMatches = true; // Just make sure that all input lines are in the output too, exactly once. static void debugLineCheck( Diff3LineList& d3ll, int size, int idx ) { Diff3LineList::iterator it = d3ll.begin(); int i=0; for ( it = d3ll.begin(); it!= d3ll.end(); ++it ) { int l=0; if (idx==1) l=(*it).lineA; else if (idx==2) l=(*it).lineB; else if (idx==3) l=(*it).lineC; else assert(false); if ( l!=-1 ) { if( l!=i ) { KMessageBox::error(0, i18n( "Data loss error:\n" "If it is reproducible please contact the author.\n" ), i18n("Severe Internal Error") ); assert(false); fprintf(stderr, "Severe Internal Error.\n"); ::exit(-1); } ++i; } } if( size!=i ) { KMessageBox::error(0, i18n( "Data loss error:\n" "If it is reproducible please contact the author.\n" ), i18n("Severe Internal Error") ); assert(false); fprintf(stderr, "Severe Internal Error.\n"); ::exit(-1); } } void KDiff3App::init( bool bAuto, TotalDiffStatus* pTotalDiffStatus, bool bLoadFiles, bool bUseCurrentEncoding) { ProgressProxy pp; // When doing a full analysis in the directory-comparison, then the statistics-results // will be stored in the given TotalDiffStatus. Otherwise it will be 0. bool bGUI = pTotalDiffStatus == 0; if (pTotalDiffStatus==0) pTotalDiffStatus = &m_totalDiffStatus; bool bPreserveCarriageReturn = m_pOptions->m_bPreserveCarriageReturn; bool bVisibleMergeResultWindow = ! m_outputFilename.isEmpty(); if ( bVisibleMergeResultWindow && bGUI ) { bPreserveCarriageReturn = false; QString msg; if ( !m_pOptions->m_PreProcessorCmd.isEmpty() ) { msg += "- " + i18n("PreprocessorCmd: ") + m_pOptions->m_PreProcessorCmd + "\n"; } if ( !msg.isEmpty() ) { int result = KMessageBox::warningYesNo( this, i18n("The following option(s) you selected might change data:\n") + msg + i18n("\nMost likely this is not wanted during a merge.\n" "Do you want to disable these settings or continue with these settings active?"), i18n("Option Unsafe for Merging"), KGuiItem( i18n("Use These Options During Merge") ), KGuiItem( i18n("Disable Unsafe Options") ) ); if (result == KMessageBox::No ) { m_pOptions->m_PreProcessorCmd = ""; } } } // Because of the progressdialog paintevents can occur, but data is invalid, // so painting must be suppressed. if (m_pDiffTextWindow1) m_pDiffTextWindow1->setPaintingAllowed( false ); if (m_pDiffTextWindow2) m_pDiffTextWindow2->setPaintingAllowed( false ); if (m_pDiffTextWindow3) m_pDiffTextWindow3->setPaintingAllowed( false ); if (m_pOverview) m_pOverview->setPaintingAllowed( false ); if (m_pMergeResultWindow) m_pMergeResultWindow->setPaintingAllowed( false ); m_diff3LineList.clear(); if ( bLoadFiles ) { QStringList errors; m_manualDiffHelpList.clear(); if( m_sd3.isEmpty() ) pp.setMaxNofSteps( 4 ); // Read 2 files, 1 comparison, 1 finediff else pp.setMaxNofSteps( 9 ); // Read 3 files, 3 comparisons, 3 finediffs // First get all input data. pp.setInformation(i18n("Loading A")); if (bUseCurrentEncoding==true) errors = m_sd1.readAndPreprocess(m_sd1.getEncoding(), false); else errors = m_sd1.readAndPreprocess(m_pOptions->m_pEncodingA, m_pOptions->m_bAutoDetectUnicodeA); foreach(QString error, errors) { KMessageBox::error( m_pOptionDialog, error ); } pp.step(); pp.setInformation(i18n("Loading B")); if (bUseCurrentEncoding==true) errors = m_sd2.readAndPreprocess(m_sd2.getEncoding(), false); else errors = m_sd2.readAndPreprocess(m_pOptions->m_pEncodingB, m_pOptions->m_bAutoDetectUnicodeB); foreach(QString error, errors) { KMessageBox::error( m_pOptionDialog, error ); } pp.step(); } else { if( m_sd3.isEmpty() ) pp.setMaxNofSteps( 2 ); // 1 comparison, 1 finediff else pp.setMaxNofSteps( 6 ); // 3 comparisons, 3 finediffs } pTotalDiffStatus->reset(); // Run the diff. if ( m_sd3.isEmpty() ) { pTotalDiffStatus->bBinaryAEqB = m_sd1.isBinaryEqualWith( m_sd2 ); pp.setInformation(i18n("Diff: A <-> B")); runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2, &m_manualDiffHelpList, &m_pOptionDialog->m_options); pp.step(); pp.setInformation(i18n("Linediff: A <-> B")); calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList ); pTotalDiffStatus->bTextAEqB = fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() ); if ( m_sd1.getSizeBytes()==0 ) pTotalDiffStatus->bTextAEqB=false; pp.step(); } else { if (bLoadFiles) { pp.setInformation(i18n("Loading C")); if (bUseCurrentEncoding==true) m_sd3.readAndPreprocess(m_sd3.getEncoding(), false); else m_sd3.readAndPreprocess(m_pOptions->m_pEncodingC, m_pOptions->m_bAutoDetectUnicodeC); pp.step(); } pTotalDiffStatus->bBinaryAEqB = m_sd1.isBinaryEqualWith( m_sd2 ); pTotalDiffStatus->bBinaryAEqC = m_sd1.isBinaryEqualWith( m_sd3 ); pTotalDiffStatus->bBinaryBEqC = m_sd3.isBinaryEqualWith( m_sd2 ); pp.setInformation(i18n("Diff: A <-> B")); runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_diffList12,1,2, &m_manualDiffHelpList, &m_pOptionDialog->m_options); pp.step(); pp.setInformation(i18n("Diff: B <-> C")); runDiff( m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList23,2,3, &m_manualDiffHelpList, &m_pOptionDialog->m_options); pp.step(); pp.setInformation(i18n("Diff: A <-> C")); runDiff( m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines(), m_diffList13,1,3, &m_manualDiffHelpList, &m_pOptionDialog->m_options); pp.step(); calcDiff3LineListUsingAB( &m_diffList12, m_diff3LineList ); calcDiff3LineListUsingAC( &m_diffList13, m_diff3LineList ); correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList ); calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList ); if ( m_pOptions->m_bDiff3AlignBC ) { calcDiff3LineListUsingBC( &m_diffList23, m_diff3LineList ); correctManualDiffAlignment( m_diff3LineList, &m_manualDiffHelpList ); calcDiff3LineListTrim( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff(), &m_manualDiffHelpList ); } debugLineCheck( m_diff3LineList, m_sd1.getSizeLines(), 1 ); debugLineCheck( m_diff3LineList, m_sd2.getSizeLines(), 2 ); debugLineCheck( m_diff3LineList, m_sd3.getSizeLines(), 3 ); pp.setInformation(i18n("Linediff: A <-> B")); pTotalDiffStatus->bTextAEqB = fineDiff( m_diff3LineList, 1, m_sd1.getLineDataForDisplay(), m_sd2.getLineDataForDisplay() ); pp.step(); pp.setInformation(i18n("Linediff: B <-> C")); pTotalDiffStatus->bTextBEqC = fineDiff( m_diff3LineList, 2, m_sd2.getLineDataForDisplay(), m_sd3.getLineDataForDisplay() ); pp.step(); pp.setInformation(i18n("Linediff: A <-> C")); pTotalDiffStatus->bTextAEqC = fineDiff( m_diff3LineList, 3, m_sd3.getLineDataForDisplay(), m_sd1.getLineDataForDisplay() ); pp.step(); if ( m_sd1.getSizeBytes()==0 ) { pTotalDiffStatus->bTextAEqB=false; pTotalDiffStatus->bTextAEqC=false; } if ( m_sd2.getSizeBytes()==0 ) { pTotalDiffStatus->bTextAEqB=false; pTotalDiffStatus->bTextBEqC=false; } } m_diffBufferInfo.init( &m_diff3LineList, &m_diff3LineVector, m_sd1.getLineDataForDiff(), m_sd1.getSizeLines(), m_sd2.getLineDataForDiff(), m_sd2.getSizeLines(), m_sd3.getLineDataForDiff(), m_sd3.getSizeLines() ); calcWhiteDiff3Lines( m_diff3LineList, m_sd1.getLineDataForDiff(), m_sd2.getLineDataForDiff(), m_sd3.getLineDataForDiff() ); calcDiff3LineVector( m_diff3LineList, m_diff3LineVector ); // Calc needed lines for display m_neededLines = m_diff3LineList.size(); QList oldHeights; if ( m_pDirectoryMergeSplitter->isVisible() ) oldHeights = m_pMainSplitter->sizes(); initView(); if ( m_pDirectoryMergeSplitter->isVisible() ) { if (oldHeights.count() < 2) oldHeights.append(0); if (oldHeights[1]==0) // Distribute the available space evenly between the two widgets. { oldHeights[1] = oldHeights[0]/2; oldHeights[0] -= oldHeights[1]; } if ( oldHeights[0]==0 && oldHeights[1]==0 ) { oldHeights[1] = 100; oldHeights[0] = 100; } m_pMainSplitter->setSizes( oldHeights ); } m_pMainWidget->setVisible( bGUI ); m_bTripleDiff = ! m_sd3.isEmpty(); m_pMergeResultWindowTitle->setEncodings( m_sd1.getEncoding(), m_sd2.getEncoding(), m_sd3.getEncoding() ); if ( ! m_pOptions->m_bAutoSelectOutEncoding ) m_pMergeResultWindowTitle->setEncoding( m_pOptions->m_pEncodingOut ); m_pMergeResultWindowTitle->setLineEndStyles( m_sd1.getLineEndStyle(), m_sd2.getLineEndStyle(), m_sd3.getLineEndStyle() ); if ( bGUI ) { const ManualDiffHelpList* pMDHL = &m_manualDiffHelpList; m_pDiffTextWindow1->init( m_sd1.getAliasName(), m_sd1.getEncoding(), m_sd1.getLineEndStyle(), m_sd1.getLineDataForDisplay(), m_sd1.getSizeLines(), &m_diff3LineVector, pMDHL, m_bTripleDiff ); m_pDiffTextWindow2->init( m_sd2.getAliasName(), m_sd2.getEncoding(), m_sd2.getLineEndStyle(), m_sd2.getLineDataForDisplay(), m_sd2.getSizeLines(), &m_diff3LineVector, pMDHL, m_bTripleDiff ); m_pDiffTextWindow3->init( m_sd3.getAliasName(), m_sd3.getEncoding(), m_sd3.getLineEndStyle(), m_sd3.getLineDataForDisplay(), m_sd3.getSizeLines(), &m_diff3LineVector, pMDHL, m_bTripleDiff ); m_pDiffTextWindowFrame3->setVisible(m_bTripleDiff); } m_bOutputModified = bVisibleMergeResultWindow; m_pMergeResultWindow->init( m_sd1.getLineDataForDisplay(), m_sd1.getSizeLines(), m_sd2.getLineDataForDisplay(), m_sd2.getSizeLines(), m_bTripleDiff ? m_sd3.getLineDataForDisplay() : 0, m_sd3.getSizeLines(), &m_diff3LineList, pTotalDiffStatus ); m_pMergeResultWindowTitle->setFileName( m_outputFilename.isEmpty() ? QString("unnamed.txt") : m_outputFilename ); if ( !bGUI ) { // We now have all needed information. The rest below is only for GUI-activation. m_sd1.reset(); m_sd2.reset(); m_sd3.reset(); return; } m_pOverview->init(&m_diff3LineList, m_bTripleDiff ); m_pDiffVScrollBar->setValue( 0 ); m_pHScrollBar->setValue( 0 ); m_pMergeVScrollBar->setValue( 0 ); m_pDiffTextWindow1->setPaintingAllowed( true ); m_pDiffTextWindow2->setPaintingAllowed( true ); m_pDiffTextWindow3->setPaintingAllowed( true ); m_pOverview->setPaintingAllowed( true ); m_pMergeResultWindow->setPaintingAllowed( true ); if ( !bVisibleMergeResultWindow ) m_pMergeWindowFrame->hide(); else m_pMergeWindowFrame->show(); setHScrollBarRange(); // Try to create a meaningful but not too long caption if ( !isPart() ) { // 1. If the filenames are equal then show only one filename QString caption; QString f1 = m_sd1.getAliasName(); QString f2 = m_sd2.getAliasName(); QString f3 = m_sd3.getAliasName(); int p; if ( (p=f1.indexOf("@@"))>=0 ) f1 = f1.left( p ); if ( (p=f2.indexOf("@@"))>=0 ) f2 = f2.left( p ); if ( (p=f3.indexOf("@@"))>=0 ) f3 = f3.left( p ); if ( (p=f1.lastIndexOf('/'))>=0 || (p=f1.lastIndexOf('\\'))>=0 ) f1 = f1.mid( p+1 ); if ( (p=f2.lastIndexOf('/'))>=0 || (p=f2.lastIndexOf('\\'))>=0) f2 = f2.mid( p+1 ); if ( (p=f3.lastIndexOf('/'))>=0 || (p=f3.lastIndexOf('\\'))>=0 ) f3 = f3.mid( p+1 ); if ( !f1.isEmpty() ) { if ( ( f2.isEmpty() && f3.isEmpty() ) || (f2.isEmpty() && f1==f3) || ( f3.isEmpty() && f1==f2 ) || (f1==f2 && f1==f3)) caption = f1; } else if ( ! f2.isEmpty() ) { if ( f3.isEmpty() || f2==f3 ) caption = f2; } else if ( ! f3.isEmpty() ) caption = f3; // 2. If the files don't have the same name then show all names if ( caption.isEmpty() && (!f1.isEmpty() || !f2.isEmpty() || !f3.isEmpty()) ) { caption = ( f1.isEmpty()? QString("") : f1 ); caption += QString(caption.isEmpty() || f2.isEmpty() ? "" : " <-> ") + ( f2.isEmpty()? QString("") : f2 ); caption += QString(caption.isEmpty() || f3.isEmpty() ? "" : " <-> ") + ( f3.isEmpty()? QString("") : f3 ) ; } m_pKDiff3Shell->setWindowTitle( caption.isEmpty() ? QString("KDiff3") : caption+QString(" - KDiff3")); } if ( bLoadFiles ) { if ( bVisibleMergeResultWindow && !bAuto ) m_pMergeResultWindow->showNrOfConflicts(); else if ( !bAuto && // Avoid showing this message during startup without parameters. !( m_sd1.getAliasName().isEmpty() && m_sd2.getAliasName().isEmpty() && m_sd3.getAliasName().isEmpty() ) && ( m_sd1.isValid() && m_sd2.isValid() && m_sd3.isValid() ) ) { QString totalInfo; if ( pTotalDiffStatus->bBinaryAEqB && pTotalDiffStatus->bBinaryAEqC ) totalInfo += i18n("All input files are binary equal."); else if ( pTotalDiffStatus->bTextAEqB && pTotalDiffStatus->bTextAEqC ) totalInfo += i18n("All input files contain the same text, but are not binary equal."); else { if ( pTotalDiffStatus->bBinaryAEqB ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("A"),QString("B")); else if ( pTotalDiffStatus->bTextAEqB ) totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n",QString("A"),QString("B")); if ( pTotalDiffStatus->bBinaryAEqC ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("A"),QString("C")); else if ( pTotalDiffStatus->bTextAEqC ) totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n",QString("A"),QString("C")); if ( pTotalDiffStatus->bBinaryBEqC ) totalInfo += i18n("Files %1 and %2 are binary equal.\n",QString("B"),QString("C")); else if ( pTotalDiffStatus->bTextBEqC ) totalInfo += i18n("Files %1 and %2 have equal text, but are not binary equal. \n",QString("B"),QString("C")); } if ( !totalInfo.isEmpty() ) KMessageBox::information( this, totalInfo ); } if ( bVisibleMergeResultWindow && (!m_sd1.isText() || !m_sd2.isText() || !m_sd3.isText()) ) { KMessageBox::information( this, i18n( "Some inputfiles don't seem to be pure textfiles.\n" "Note that the KDiff3-merge was not meant for binary data.\n" "Continue at your own risk.") ); } if ( m_sd1.isIncompleteConversion() || m_sd2.isIncompleteConversion() || m_sd3.isIncompleteConversion() ) { QString files; if ( m_sd1.isIncompleteConversion() ) files += "A"; if ( m_sd2.isIncompleteConversion() ) files += files.isEmpty() ? "B" : ", B"; if ( m_sd3.isIncompleteConversion() ) files += files.isEmpty() ? "C" : ", C"; KMessageBox::information( this, i18n( "Some input characters could not be converted to valid unicode.\n" "You might be using the wrong codec. (e.g. UTF-8 for non UTF-8 files).\n" "Don't save the result if unsure. Continue at your own risk.\n" "Affected input files are in %1.").arg(files) ); } } QTimer::singleShot( 10, this, SLOT(slotAfterFirstPaint()) ); if ( bVisibleMergeResultWindow && m_pMergeResultWindow ) { m_pMergeResultWindow->setFocus(); } else if(m_pDiffTextWindow1) { m_pDiffTextWindow1->setFocus(); } //initialize wheel tracking to zero m_iCumulativeWheelDelta = 0; } void KDiff3App::setHScrollBarRange() { int w1 = m_pDiffTextWindow1!=0 && m_pDiffTextWindow1->isVisible() ? m_pDiffTextWindow1->getNofColumns() : 0; int w2 = m_pDiffTextWindow2!=0 && m_pDiffTextWindow2->isVisible() ? m_pDiffTextWindow2->getNofColumns() : 0; int w3 = m_pDiffTextWindow3!=0 && m_pDiffTextWindow3->isVisible() ? m_pDiffTextWindow3->getNofColumns() : 0; int wm = m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() ? m_pMergeResultWindow->getNofColumns() : 0; int v1 = m_pDiffTextWindow1!=0 && m_pDiffTextWindow1->isVisible() ? m_pDiffTextWindow1->getNofVisibleColumns() : 0; int v2 = m_pDiffTextWindow2!=0 && m_pDiffTextWindow2->isVisible() ? m_pDiffTextWindow2->getNofVisibleColumns() : 0; int v3 = m_pDiffTextWindow3!=0 && m_pDiffTextWindow3->isVisible() ? m_pDiffTextWindow3->getNofVisibleColumns() : 0; int vm = m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() ? m_pMergeResultWindow->getNofVisibleColumns() : 0; // Find the minimum, but don't consider 0. int pageStep = 0; if ( (pageStep==0 || pageStep>v1) && v1>0 ) pageStep = v1; if ( (pageStep==0 || pageStep>v2) && v2>0 ) pageStep = v2; if ( (pageStep==0 || pageStep>v3) && v3>0 ) pageStep = v3; if ( (pageStep==0 || pageStep>vm) && vm>0 ) pageStep = vm; int rangeMax = 0; if ( w1>v1 && w1-v1>rangeMax && v1>0 ) rangeMax = w1-v1; if ( w2>v2 && w2-v2>rangeMax && v2>0 ) rangeMax = w2-v2; if ( w3>v3 && w3-v3>rangeMax && v3>0 ) rangeMax = w3-v3; if ( wm>vm && wm-vm>rangeMax && vm>0 ) rangeMax = wm-vm; m_pHScrollBar->setRange(0, rangeMax ); m_pHScrollBar->setPageStep( pageStep ); } void KDiff3App::resizeDiffTextWindow(int /*newWidth*/, int newHeight) { m_DTWHeight = newHeight; recalcWordWrap(); m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines+1 - newHeight) ); m_pDiffVScrollBar->setPageStep( newHeight ); m_pOverview->setRange( m_pDiffVScrollBar->value(), m_pDiffVScrollBar->pageStep() ); setHScrollBarRange(); } void KDiff3App::resizeMergeResultWindow() { MergeResultWindow* p = m_pMergeResultWindow; m_pMergeVScrollBar->setRange(0, max2(0, p->getNofLines() - p->getNofVisibleLines()) ); m_pMergeVScrollBar->setPageStep( p->getNofVisibleLines() ); setHScrollBarRange(); } void KDiff3App::scrollDiffTextWindow( int deltaX, int deltaY ) { if ( deltaY!= 0 ) { m_pDiffVScrollBar->setValue( m_pDiffVScrollBar->value() + deltaY ); m_pOverview->setRange( m_pDiffVScrollBar->value(), m_pDiffVScrollBar->pageStep() ); } if ( deltaX!= 0) m_pHScrollBar->QScrollBar::setValue( m_pHScrollBar->value() + deltaX ); } void KDiff3App::scrollMergeResultWindow( int deltaX, int deltaY ) { if ( deltaY!= 0 ) m_pMergeVScrollBar->setValue( m_pMergeVScrollBar->value() + deltaY ); if ( deltaX!= 0) m_pHScrollBar->setValue( m_pHScrollBar->value() + deltaX ); } void KDiff3App::setDiff3Line( int line ) { m_pDiffVScrollBar->setValue( line ); } void KDiff3App::sourceMask( int srcMask, int enabledMask ) { chooseA->blockSignals(true); chooseB->blockSignals(true); chooseC->blockSignals(true); chooseA->setChecked( (srcMask & 1) != 0 ); chooseB->setChecked( (srcMask & 2) != 0 ); chooseC->setChecked( (srcMask & 4) != 0 ); chooseA->blockSignals(false); chooseB->blockSignals(false); chooseC->blockSignals(false); chooseA->setEnabled( (enabledMask & 1) != 0 ); chooseB->setEnabled( (enabledMask & 2) != 0 ); chooseC->setEnabled( (enabledMask & 4) != 0 ); } // Function uses setMinSize( sizeHint ) before adding the widget. // void addWidget(QBoxLayout* layout, QWidget* widget); template void addWidget( L* layout, W* widget) { QSize s = widget->sizeHint(); widget->setMinimumSize( QSize(max2(s.width(),0),max2(s.height(),0) ) ); layout->addWidget( widget ); } void KDiff3App::initView() { // set the main widget here if ( m_pMainWidget != 0 ) { return; //delete m_pMainWidget; } m_pMainWidget = new QWidget(); // Contains vertical splitter and horiz scrollbar m_pMainSplitter->addWidget( m_pMainWidget ); m_pMainWidget->setObjectName("MainWidget"); QVBoxLayout* pVLayout = new QVBoxLayout(m_pMainWidget); pVLayout->setMargin(0); pVLayout->setSpacing(0); QSplitter* pVSplitter = new QSplitter(); pVSplitter->setObjectName("VSplitter"); pVSplitter->setOpaqueResize(false); pVSplitter->setOrientation( Qt::Vertical ); pVLayout->addWidget( pVSplitter ); pVSplitter->show(); QWidget* pDiffWindowFrame = new QWidget(); // Contains diff windows, overview and vert scrollbar pDiffWindowFrame->setObjectName("DiffWindowFrame"); QHBoxLayout* pDiffHLayout = new QHBoxLayout( pDiffWindowFrame ); pDiffHLayout->setMargin(0); pDiffHLayout->setSpacing(0); //pDiffWindowFrame->show(); pVSplitter->addWidget(pDiffWindowFrame); m_pDiffWindowSplitter = new QSplitter(); m_pDiffWindowSplitter->setObjectName("DiffWindowSplitter"); m_pDiffWindowSplitter->setOpaqueResize(false); m_pDiffWindowSplitter->setOrientation( m_pOptions->m_bHorizDiffWindowSplitting ? Qt::Horizontal : Qt::Vertical ); pDiffHLayout->addWidget( m_pDiffWindowSplitter ); //m_pDiffWindowSplitter->show(); m_pOverview = new Overview( &m_pOptionDialog->m_options ); m_pOverview->setObjectName("Overview"); pDiffHLayout->addWidget(m_pOverview); connect( m_pOverview, SIGNAL(setLine(int)), this, SLOT(setDiff3Line(int)) ); //connect( m_pOverview, SIGNAL(afterFirstPaint()), this, SLOT(slotAfterFirstPaint())); m_pDiffVScrollBar = new QScrollBar( Qt::Vertical, pDiffWindowFrame ); pDiffHLayout->addWidget( m_pDiffVScrollBar ); m_pDiffTextWindowFrame1 = new DiffTextWindowFrame( m_pDiffWindowSplitter, statusBar(), &m_pOptionDialog->m_options, 1, &m_sd1); m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame1); //m_pDiffTextWindowFrame1->show(); m_pDiffTextWindowFrame2 = new DiffTextWindowFrame( m_pDiffWindowSplitter, statusBar(), &m_pOptionDialog->m_options, 2, &m_sd2); m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame2); //m_pDiffTextWindowFrame2->show(); m_pDiffTextWindowFrame3 = new DiffTextWindowFrame( m_pDiffWindowSplitter, statusBar(), &m_pOptionDialog->m_options, 3, &m_sd3); m_pDiffWindowSplitter->addWidget(m_pDiffTextWindowFrame3); m_pDiffTextWindow1 = m_pDiffTextWindowFrame1->getDiffTextWindow(); m_pDiffTextWindow2 = m_pDiffTextWindowFrame2->getDiffTextWindow(); m_pDiffTextWindow3 = m_pDiffTextWindowFrame3->getDiffTextWindow(); connect(m_pDiffTextWindowFrame1, SIGNAL(fileNameChanged(const QString&,int)), this, SLOT(slotFileNameChanged(const QString&,int))); connect(m_pDiffTextWindowFrame2, SIGNAL(fileNameChanged(const QString&,int)), this, SLOT(slotFileNameChanged(const QString&,int))); connect(m_pDiffTextWindowFrame3, SIGNAL(fileNameChanged(const QString&,int)), this, SLOT(slotFileNameChanged(const QString&,int))); connect(m_pDiffTextWindowFrame1, SIGNAL(encodingChanged(QTextCodec*)), this, SLOT(slotEncodingChangedA(QTextCodec*))); connect(m_pDiffTextWindowFrame2, SIGNAL(encodingChanged(QTextCodec*)), this, SLOT(slotEncodingChangedB(QTextCodec*))); connect(m_pDiffTextWindowFrame3, SIGNAL(encodingChanged(QTextCodec*)), this, SLOT(slotEncodingChangedC(QTextCodec*))); // Merge window m_pMergeWindowFrame = new QWidget( pVSplitter ); m_pMergeWindowFrame->setObjectName("MergeWindowFrame"); pVSplitter->addWidget(m_pMergeWindowFrame); QHBoxLayout* pMergeHLayout = new QHBoxLayout( m_pMergeWindowFrame ); pMergeHLayout->setMargin(0); pMergeHLayout->setSpacing(0); QVBoxLayout* pMergeVLayout = new QVBoxLayout(); pMergeHLayout->addLayout( pMergeVLayout, 1 ); m_pMergeResultWindowTitle = new WindowTitleWidget(&m_pOptionDialog->m_options); pMergeVLayout->addWidget( m_pMergeResultWindowTitle ); m_pMergeResultWindow = new MergeResultWindow( m_pMergeWindowFrame, &m_pOptionDialog->m_options, statusBar() ); pMergeVLayout->addWidget( m_pMergeResultWindow, 1 ); m_pMergeVScrollBar = new QScrollBar( Qt::Vertical, m_pMergeWindowFrame ); pMergeHLayout->addWidget( m_pMergeVScrollBar ); m_pMainSplitter->addWidget(m_pMainWidget); autoAdvance->setEnabled(true); QList sizes = pVSplitter->sizes(); int total = sizes[0] + sizes[1]; if ( total<10 ) total = 100; sizes[0]=total/2; sizes[1]=total/2; pVSplitter->setSizes( sizes ); QList hSizes; hSizes << 1 << 1 << 1; m_pDiffWindowSplitter->setSizes( hSizes ); m_pMergeResultWindow->installEventFilter( this ); // for Cut/Copy/Paste-shortcuts m_pMergeResultWindow->installEventFilter( m_pMergeResultWindowTitle ); // for focus tracking QHBoxLayout* pHScrollBarLayout = new QHBoxLayout(); pVLayout->addLayout( pHScrollBarLayout ); m_pHScrollBar = new ReversibleScrollBar( Qt::Horizontal, &m_pOptions->m_bRightToLeftLanguage ); pHScrollBarLayout->addWidget( m_pHScrollBar ); m_pCornerWidget = new QWidget( m_pMainWidget ); pHScrollBarLayout->addWidget( m_pCornerWidget ); connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pOverview, SLOT(setFirstLine(int))); connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow1, SLOT(setFirstLine(int))); connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow1, SLOT(setFirstColumn(int))); connect( m_pDiffTextWindow1, SIGNAL(newSelection()), this, SLOT(slotSelectionStart())); connect( m_pDiffTextWindow1, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd())); connect( m_pDiffTextWindow1, SIGNAL(scroll(int,int)), this, SLOT(scrollDiffTextWindow(int,int))); m_pDiffTextWindow1->installEventFilter( this ); connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow2, SLOT(setFirstLine(int))); connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow2, SLOT(setFirstColumn(int))); connect( m_pDiffTextWindow2, SIGNAL(newSelection()), this, SLOT(slotSelectionStart())); connect( m_pDiffTextWindow2, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd())); connect( m_pDiffTextWindow2, SIGNAL(scroll(int,int)), this, SLOT(scrollDiffTextWindow(int,int))); m_pDiffTextWindow2->installEventFilter( this ); connect( m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow3, SLOT(setFirstLine(int))); connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow3, SLOT(setFirstColumn(int))); connect( m_pDiffTextWindow3, SIGNAL(newSelection()), this, SLOT(slotSelectionStart())); connect( m_pDiffTextWindow3, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd())); connect( m_pDiffTextWindow3, SIGNAL(scroll(int,int)), this, SLOT(scrollDiffTextWindow(int,int))); m_pDiffTextWindow3->installEventFilter( this ); MergeResultWindow* p = m_pMergeResultWindow; connect( m_pMergeVScrollBar, SIGNAL(valueChanged(int)), p, SLOT(setFirstLine(int))); connect( m_pHScrollBar, SIGNAL(valueChanged2(int)), p, SLOT(setFirstColumn(int))); connect( p, SIGNAL(scroll(int,int)), this, SLOT(scrollMergeResultWindow(int,int))); connect( p, SIGNAL(sourceMask(int,int)), this, SLOT(sourceMask(int,int))); connect( p, SIGNAL( resizeSignal() ),this, SLOT(resizeMergeResultWindow())); connect( p, SIGNAL( selectionEnd() ), this, SLOT( slotSelectionEnd() ) ); connect( p, SIGNAL( newSelection() ), this, SLOT( slotSelectionStart() ) ); connect( p, SIGNAL( modifiedChanged(bool) ), this, SLOT( slotOutputModified(bool) ) ); connect( p, SIGNAL( modifiedChanged(bool) ), m_pMergeResultWindowTitle, SLOT( slotSetModified(bool) ) ); connect( p, SIGNAL( updateAvailabilities() ), this, SLOT( slotUpdateAvailabilities() ) ); connect( p, SIGNAL( showPopupMenu(const QPoint&) ), this, SLOT(showPopupMenu(const QPoint&))); connect( p, SIGNAL( noRelevantChangesDetected() ), this, SLOT(slotNoRelevantChangesDetected())); sourceMask(0,0); connect( p, SIGNAL(setFastSelectorRange(int,int)), m_pDiffTextWindow1, SLOT(setFastSelectorRange(int,int))); connect( p, SIGNAL(setFastSelectorRange(int,int)), m_pDiffTextWindow2, SLOT(setFastSelectorRange(int,int))); connect( p, SIGNAL(setFastSelectorRange(int,int)), m_pDiffTextWindow3, SLOT(setFastSelectorRange(int,int))); connect(m_pDiffTextWindow1, SIGNAL(setFastSelectorLine(int)), p, SLOT(slotSetFastSelectorLine(int))); connect(m_pDiffTextWindow2, SIGNAL(setFastSelectorLine(int)), p, SLOT(slotSetFastSelectorLine(int))); connect(m_pDiffTextWindow3, SIGNAL(setFastSelectorLine(int)), p, SLOT(slotSetFastSelectorLine(int))); connect(m_pDiffTextWindow1, SIGNAL(gotFocus()), p, SLOT(updateSourceMask())); connect(m_pDiffTextWindow2, SIGNAL(gotFocus()), p, SLOT(updateSourceMask())); connect(m_pDiffTextWindow3, SIGNAL(gotFocus()), p, SLOT(updateSourceMask())); connect(m_pDirectoryMergeInfo, SIGNAL(gotFocus()), p, SLOT(updateSourceMask())); connect( m_pDiffTextWindow1, SIGNAL( resizeSignal(int,int) ),this, SLOT(resizeDiffTextWindow(int,int))); // The following two connects cause the wordwrap to be recalced thrice, just to make sure. Better than forgetting one. connect( m_pDiffTextWindow2, SIGNAL( resizeSignal(int,int) ),this, SLOT(slotRecalcWordWrap())); connect( m_pDiffTextWindow3, SIGNAL( resizeSignal(int,int) ),this, SLOT(slotRecalcWordWrap())); m_pDiffTextWindow1->setFocus(); m_pMainWidget->setMinimumSize(50,50); m_pCornerWidget->setFixedSize( m_pDiffVScrollBar->width(), m_pHScrollBar->height() ); showWindowA->setChecked( true ); showWindowB->setChecked( true ); showWindowC->setChecked( true ); } static int calcManualDiffFirstDiff3LineIdx( const Diff3LineVector& d3lv, const ManualDiffHelpEntry& mdhe ) { unsigned int i; for( i = 0; i=0 && mdhe.lineA1==d3l.lineA) || (mdhe.lineB1>=0 && mdhe.lineB1==d3l.lineB) || (mdhe.lineC1>=0 && mdhe.lineC1==d3l.lineC) ) return i; } return -1; } void KDiff3App::slotAfterFirstPaint() { int newHeight = m_pDiffTextWindow1->getNofVisibleLines(); /*int newWidth = m_pDiffTextWindow1->getNofVisibleColumns();*/ m_DTWHeight = newHeight; recalcWordWrap(); m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines+1 - newHeight) ); m_pDiffVScrollBar->setPageStep( newHeight ); m_pOverview->setRange( m_pDiffVScrollBar->value(), m_pDiffVScrollBar->pageStep() ); int d3l=-1; if ( ! m_manualDiffHelpList.empty() ) d3l = calcManualDiffFirstDiff3LineIdx( m_diff3LineVector, m_manualDiffHelpList.front() ); if ( d3l>=0 && m_pDiffTextWindow1 ) { int line = m_pDiffTextWindow1->convertDiff3LineIdxToLine( d3l ); m_pDiffVScrollBar->setValue( max2(0,line-1) ); } else { m_pMergeResultWindow->slotGoTop(); if ( ! m_outputFilename.isEmpty() && ! m_pMergeResultWindow->isUnsolvedConflictAtCurrent() ) m_pMergeResultWindow->slotGoNextUnsolvedConflict(); } if (m_pCornerWidget) m_pCornerWidget->setFixedSize( m_pDiffVScrollBar->width(), m_pHScrollBar->height() ); slotUpdateAvailabilities(); setUpdatesEnabled(true); // Workaround for a Qt-bug QList treeViews = findChildren(); foreach( QTreeView* pTreeView, treeViews ) { pTreeView->setUpdatesEnabled(true); } } void KDiff3App::resizeEvent(QResizeEvent* e) { QSplitter::resizeEvent(e); if (m_pCornerWidget) m_pCornerWidget->setFixedSize( m_pDiffVScrollBar->width(), m_pHScrollBar->height() ); } bool KDiff3App::eventFilter( QObject* o, QEvent* e ) { if( o == m_pMergeResultWindow ) { if ( e->type() == QEvent::KeyPress ) { // key press QKeyEvent *k = (QKeyEvent*)e; if (k->key()==Qt::Key_Insert && (k->QInputEvent::modifiers() & Qt::ControlModifier)!=0 ) { slotEditCopy(); return true; } if (k->key()==Qt::Key_Insert && (k->QInputEvent::modifiers() & Qt::ShiftModifier)!=0 ) { slotEditPaste(); return true; } if (k->key()==Qt::Key_Delete && (k->QInputEvent::modifiers() & Qt::ShiftModifier)!=0 ) { slotEditCut(); return true; } if ( k->key()==Qt::Key_Escape && m_pKDiff3Shell && m_pOptions->m_bEscapeKeyQuits ) { m_pKDiff3Shell->close(); return true; } } return QSplitter::eventFilter( o, e ); // standard event processing } if ( e->type() == QEvent::KeyPress ) // key press { QKeyEvent *k = (QKeyEvent*)e; if ( k->key()==Qt::Key_Escape && m_pKDiff3Shell && m_pOptions->m_bEscapeKeyQuits ) { m_pKDiff3Shell->close(); return true; } bool bCtrl = (k->QInputEvent::modifiers() & Qt::ControlModifier) != 0; if (k->key()==Qt::Key_Insert && bCtrl ) { slotEditCopy(); return true; } if (k->key()==Qt::Key_Insert && (k->QInputEvent::modifiers() & Qt::ShiftModifier)!=0 ) { slotEditPaste(); return true; } int deltaX=0; int deltaY=0; int pageSize = m_DTWHeight; switch( k->key() ) { case Qt::Key_Down: if (!bCtrl) ++deltaY; break; case Qt::Key_Up: if (!bCtrl) --deltaY; break; case Qt::Key_PageDown: if (!bCtrl) deltaY+=pageSize; break; case Qt::Key_PageUp: if (!bCtrl) deltaY-=pageSize; break; case Qt::Key_Left: if (!bCtrl) --deltaX; break; case Qt::Key_Right: if (!bCtrl) ++deltaX; break; case Qt::Key_Home: if ( bCtrl ) m_pDiffVScrollBar->setValue( 0 ); else m_pHScrollBar->setValue( 0 ); break; case Qt::Key_End: if ( bCtrl ) m_pDiffVScrollBar->setValue( m_pDiffVScrollBar->maximum() ); else m_pHScrollBar->setValue( m_pHScrollBar->maximum() ); break; default: break; } scrollDiffTextWindow( deltaX, deltaY ); return true; // eat event } else if (e->type() == QEvent::Wheel ) // wheel event { QWheelEvent *w = (QWheelEvent*)e; w->accept(); int deltaX=0; int d=w->delta(); //As per QT documentation, some mice/OS combos send delta values //less than 120 units(15 degrees) d = d + m_iCumulativeWheelDelta; if ( d > -120 && d < 120) { //not enough for a full step in either direction, add it up //to use on a successive call m_iCumulativeWheelDelta = d; } else { //reset cumulative tracking of the wheel since we have enough //for a 15 degree movement m_iCumulativeWheelDelta= 0; } int deltaY = -d/120 * QApplication::wheelScrollLines(); scrollDiffTextWindow( deltaX, deltaY ); return true; } else if (e->type() == QEvent::Drop ) { QDropEvent* pDropEvent = static_cast(e); pDropEvent->accept(); if ( pDropEvent->mimeData()->hasUrls() ) { #ifdef KREPLACEMENTS_H QList urlList = pDropEvent->mimeData()->urls(); if ( canContinue() && !urlList.isEmpty() ) { raise(); QString filename = urlList.first().toLocalFile(); if ( o == m_pDiffTextWindow1 ) m_sd1.setFilename( filename ); else if ( o == m_pDiffTextWindow2 ) m_sd2.setFilename( filename ); else if ( o == m_pDiffTextWindow3 ) m_sd3.setFilename( filename ); init(); } #else KUrl::List urlList = KUrl::List::fromMimeData( pDropEvent->mimeData() ); if ( canContinue() && !urlList.isEmpty() ) { raise(); FileAccess fa( urlList.first().url() ); if ( o == m_pDiffTextWindow1 ) m_sd1.setFileAccess( fa ); else if ( o == m_pDiffTextWindow2 ) m_sd2.setFileAccess( fa ); else if ( o == m_pDiffTextWindow3 ) m_sd3.setFileAccess( fa ); init(); } #endif } else if ( pDropEvent->mimeData()->hasText() ) { QString text = pDropEvent->mimeData()->text(); if ( canContinue() ) { QStringList errors; raise(); if ( o == m_pDiffTextWindow1 ) errors = m_sd1.setData(text); else if ( o == m_pDiffTextWindow2 ) errors = m_sd2.setData(text); else if ( o == m_pDiffTextWindow3 ) errors = m_sd3.setData(text); foreach(QString error, errors) { KMessageBox::error( m_pOptionDialog, error ); } init(); } } return true; } return QSplitter::eventFilter( o, e ); // standard event processing } void KDiff3App::slotFileOpen() { if ( !canContinue() ) return; if ( m_pDirectoryMergeWindow->isDirectoryMergeInProgress() ) { int result = KMessageBox::warningYesNo(this, i18n("You are currently doing a directory merge. Are you sure, you want to abort?"), i18n("Warning"), KGuiItem( i18n("Abort") ), KGuiItem( i18n("Continue Merging") ) ); if ( result!=KMessageBox::Yes ) return; } slotStatusMsg(i18n("Opening files...")); for(;;) { OpenDialog d(this, QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameA() : m_sd1.isFromBuffer() ? QString("") : m_sd1.getAliasName() ), QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameB() : m_sd2.isFromBuffer() ? QString("") : m_sd2.getAliasName() ), QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameC() : m_sd3.isFromBuffer() ? QString("") : m_sd3.getAliasName() ), m_bDirCompare ? ! m_pDirectoryMergeWindow->getDirNameDest().isEmpty() : !m_outputFilename.isEmpty(), QDir::toNativeSeparators( m_bDirCompare ? m_pDirectoryMergeWindow->getDirNameDest() : m_bDefaultFilename ? QString("") : m_outputFilename ), SLOT(slotConfigure()), &m_pOptionDialog->m_options ); int status = d.exec(); if ( status == QDialog::Accepted ) { m_sd1.setFilename( d.m_pLineA->currentText() ); m_sd2.setFilename( d.m_pLineB->currentText() ); m_sd3.setFilename( d.m_pLineC->currentText() ); if( d.m_pMerge->isChecked() ) { if ( d.m_pLineOut->currentText().isEmpty() ) { m_outputFilename = "unnamed.txt"; m_bDefaultFilename = true; } else { m_outputFilename = d.m_pLineOut->currentText(); m_bDefaultFilename = false; } } else m_outputFilename = ""; bool bSuccess = improveFilenames(false); if ( !bSuccess ) continue; if ( m_bDirCompare ) { m_pDirectoryMergeSplitter->show(); if ( m_pMainWidget!=0 ) { m_pMainWidget->hide(); } break; } else { m_pDirectoryMergeSplitter->hide(); init(); if ( (! m_sd1.isEmpty() && !m_sd1.hasData()) || (! m_sd2.isEmpty() && !m_sd2.hasData()) || (! m_sd3.isEmpty() && !m_sd3.hasData()) ) { QString text( i18n("Opening of these files failed:") ); text += "\n\n"; if ( ! m_sd1.isEmpty() && !m_sd1.hasData() ) text += " - " + m_sd1.getAliasName() + "\n"; if ( ! m_sd2.isEmpty() && !m_sd2.hasData() ) text += " - " + m_sd2.getAliasName() + "\n"; if ( ! m_sd3.isEmpty() && !m_sd3.hasData() ) text += " - " + m_sd3.getAliasName() + "\n"; KMessageBox::sorry( this, text, i18n("File open error") ); continue; } } } break; } slotUpdateAvailabilities(); slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotFileOpen2(QString fn1, QString fn2, QString fn3, QString ofn, QString an1, QString an2, QString an3, TotalDiffStatus* pTotalDiffStatus ) { if ( !canContinue() ) return; if(fn1=="" && fn2=="" && fn3=="" && ofn=="" && m_pMainWidget!=0 ) { m_pMainWidget->hide(); return; } slotStatusMsg(i18n("Opening files...")); m_sd1.setFilename( fn1 ); m_sd2.setFilename( fn2 ); m_sd3.setFilename( fn3 ); m_sd1.setAliasName( an1 ); m_sd2.setAliasName( an2 ); m_sd3.setAliasName( an3 ); if ( ! ofn.isEmpty() ) { m_outputFilename = ofn; m_bDefaultFilename = false; } else { m_outputFilename = ""; m_bDefaultFilename = true; } bool bDirCompare = m_bDirCompare; improveFilenames(true); // Create new window for KDiff3 for directory comparison. if( m_bDirCompare ) { } else { m_bDirCompare = bDirCompare; // Don't allow this to change here. init( false, pTotalDiffStatus ); if ( pTotalDiffStatus!=0 ) return; if ( (! m_sd1.isEmpty() && ! m_sd1.hasData()) || (! m_sd2.isEmpty() && ! m_sd2.hasData()) || (! m_sd3.isEmpty() && ! m_sd3.hasData()) ) { QString text( i18n("Opening of these files failed:") ); text += "\n\n"; if ( ! m_sd1.isEmpty() && !m_sd1.hasData() ) text += " - " + m_sd1.getAliasName() + "\n"; if ( ! m_sd2.isEmpty() && !m_sd2.hasData() ) text += " - " + m_sd2.getAliasName() + "\n"; if ( ! m_sd3.isEmpty() && !m_sd3.hasData() ) text += " - " + m_sd3.getAliasName() + "\n"; KMessageBox::sorry( this, text, i18n("File open error") ); } else { if ( m_pDirectoryMergeWindow!=0 && m_pDirectoryMergeWindow->isVisible() && ! dirShowBoth->isChecked() ) { slotDirViewToggle(); } } } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotFileNameChanged(const QString& fileName, int winIdx) { QString fn1 = m_sd1.getFilename(); QString an1 = m_sd1.getAliasName(); QString fn2 = m_sd2.getFilename(); QString an2 = m_sd2.getAliasName(); QString fn3 = m_sd3.getFilename(); QString an3 = m_sd3.getAliasName(); if (winIdx==1) { fn1 = fileName; an1 = ""; } if (winIdx==2) { fn2 = fileName; an2 = ""; } if (winIdx==3) { fn3 = fileName; an3 = ""; } slotFileOpen2( fn1, fn2, fn3, m_outputFilename, an1, an2, an3, 0 ); } void KDiff3App::slotEditCut() { slotStatusMsg(i18n("Cutting selection...")); QString s; if ( m_pMergeResultWindow!=0 ) { s = m_pMergeResultWindow->getSelection(); m_pMergeResultWindow->deleteSelection(); m_pMergeResultWindow->update(); } if ( !s.isNull() ) { QApplication::clipboard()->setText( s, QClipboard::Clipboard ); } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotEditCopy() { slotStatusMsg(i18n("Copying selection to clipboard...")); QString s; if ( m_pDiffTextWindow1!=0 ) s = m_pDiffTextWindow1->getSelection(); if ( s.isNull() && m_pDiffTextWindow2!=0 ) s = m_pDiffTextWindow2->getSelection(); if ( s.isNull() && m_pDiffTextWindow3!=0 ) s = m_pDiffTextWindow3->getSelection(); if ( s.isNull() && m_pMergeResultWindow!=0 ) s = m_pMergeResultWindow->getSelection(); if ( !s.isNull() ) { QApplication::clipboard()->setText( s, QClipboard::Clipboard ); } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotEditPaste() { slotStatusMsg(i18n("Inserting clipboard contents...")); if ( m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() ) { m_pMergeResultWindow->pasteClipboard(false); } else if ( canContinue() ) { QStringList errors; bool do_init = false; if ( m_pDiffTextWindow1->hasFocus() ) { errors = m_sd1.setData( QApplication::clipboard()->text(QClipboard::Clipboard) ); do_init = true; } else if ( m_pDiffTextWindow2->hasFocus() ) { errors = m_sd2.setData( QApplication::clipboard()->text(QClipboard::Clipboard) ); do_init = true; } else if ( m_pDiffTextWindow3->hasFocus() ) { errors = m_sd3.setData( QApplication::clipboard()->text(QClipboard::Clipboard) ); do_init = true; } foreach(QString error, errors) { KMessageBox::error( m_pOptionDialog, error ); } if(do_init) { init(); } } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotEditSelectAll() { int l=0,p=0; // needed as dummy return values if ( m_pMergeResultWindow && m_pMergeResultWindow->hasFocus() ) { m_pMergeResultWindow->setSelection( 0,0,m_pMergeResultWindow->getNofLines(),0); } else if ( m_pDiffTextWindow1 && m_pDiffTextWindow1->hasFocus() ) { m_pDiffTextWindow1 ->setSelection( 0,0,m_pDiffTextWindow1->getNofLines(),0,l,p); } else if ( m_pDiffTextWindow2 && m_pDiffTextWindow2->hasFocus() ) { m_pDiffTextWindow2 ->setSelection( 0,0,m_pDiffTextWindow2->getNofLines(),0,l,p); } else if ( m_pDiffTextWindow3 && m_pDiffTextWindow3->hasFocus() ) { m_pDiffTextWindow3 ->setSelection( 0,0,m_pDiffTextWindow3->getNofLines(),0,l,p); } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotGoCurrent() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoCurrent(); } void KDiff3App::slotGoTop() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoTop(); } void KDiff3App::slotGoBottom() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoBottom(); } void KDiff3App::slotGoPrevUnsolvedConflict() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoPrevUnsolvedConflict(); } void KDiff3App::slotGoNextUnsolvedConflict() { m_bTimerBlock = false; if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoNextUnsolvedConflict(); } void KDiff3App::slotGoPrevConflict() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoPrevConflict(); } void KDiff3App::slotGoNextConflict() { m_bTimerBlock = false; if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoNextConflict(); } void KDiff3App::slotGoPrevDelta() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoPrevDelta(); } void KDiff3App::slotGoNextDelta() { if (m_pMergeResultWindow) m_pMergeResultWindow->slotGoNextDelta(); } void KDiff3App::choose( int choice ) { if (!m_bTimerBlock ) { if ( m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->hasFocus() ) { if (choice==A) m_pDirectoryMergeWindow->slotCurrentChooseA(); if (choice==B) m_pDirectoryMergeWindow->slotCurrentChooseB(); if (choice==C) m_pDirectoryMergeWindow->slotCurrentChooseC(); chooseA->setChecked(false); chooseB->setChecked(false); chooseC->setChecked(false); } else if ( m_pMergeResultWindow ) { m_pMergeResultWindow->choose( choice ); if ( autoAdvance->isChecked() ) { m_bTimerBlock = true; QTimer::singleShot( m_pOptions->m_autoAdvanceDelay, this, SLOT( slotGoNextUnsolvedConflict() ) ); } } } } void KDiff3App::slotChooseA() { choose( A ); } void KDiff3App::slotChooseB() { choose( B ); } void KDiff3App::slotChooseC() { choose( C ); } // bConflictsOnly automatically choose for conflicts only (true) or for everywhere static void mergeChooseGlobal( MergeResultWindow* pMRW, int selector, bool bConflictsOnly, bool bWhiteSpaceOnly ) { if ( pMRW ) { pMRW->chooseGlobal(selector, bConflictsOnly, bWhiteSpaceOnly ); } } void KDiff3App::slotChooseAEverywhere() { mergeChooseGlobal( m_pMergeResultWindow, A, false, false ); } void KDiff3App::slotChooseBEverywhere() { mergeChooseGlobal( m_pMergeResultWindow, B, false, false ); } void KDiff3App::slotChooseCEverywhere() { mergeChooseGlobal( m_pMergeResultWindow, C, false, false ); } void KDiff3App::slotChooseAForUnsolvedConflicts() { mergeChooseGlobal( m_pMergeResultWindow, A, true, false ); } void KDiff3App::slotChooseBForUnsolvedConflicts() { mergeChooseGlobal( m_pMergeResultWindow, B, true, false ); } void KDiff3App::slotChooseCForUnsolvedConflicts() { mergeChooseGlobal( m_pMergeResultWindow, C, true, false ); } void KDiff3App::slotChooseAForUnsolvedWhiteSpaceConflicts() { mergeChooseGlobal( m_pMergeResultWindow, A, true, true ); } void KDiff3App::slotChooseBForUnsolvedWhiteSpaceConflicts() { mergeChooseGlobal( m_pMergeResultWindow, B, true, true ); } void KDiff3App::slotChooseCForUnsolvedWhiteSpaceConflicts() { mergeChooseGlobal( m_pMergeResultWindow, C, true, true ); } void KDiff3App::slotAutoSolve() { if (m_pMergeResultWindow ) { m_pMergeResultWindow->slotAutoSolve(); // m_pMergeWindowFrame->show(); incompatible with bPreserveCarriageReturn m_pMergeResultWindow->showNrOfConflicts(); slotUpdateAvailabilities(); } } void KDiff3App::slotUnsolve() { if (m_pMergeResultWindow ) { m_pMergeResultWindow->slotUnsolve(); } } void KDiff3App::slotMergeHistory() { if (m_pMergeResultWindow ) { m_pMergeResultWindow->slotMergeHistory(); } } void KDiff3App::slotRegExpAutoMerge() { if (m_pMergeResultWindow ) { m_pMergeResultWindow->slotRegExpAutoMerge(); } } void KDiff3App::slotSplitDiff() { int firstLine = -1; int lastLine = -1; DiffTextWindow* pDTW=0; if ( m_pDiffTextWindow1 ) { pDTW=m_pDiffTextWindow1; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); } if ( firstLine<0 && m_pDiffTextWindow2 ) { pDTW=m_pDiffTextWindow2; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); } if ( firstLine<0 && m_pDiffTextWindow3 ) { pDTW=m_pDiffTextWindow3; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); } if ( pDTW && firstLine>=0 && m_pMergeResultWindow) { pDTW->resetSelection(); m_pMergeResultWindow->slotSplitDiff( firstLine, lastLine ); } } void KDiff3App::slotJoinDiffs() { int firstLine = -1; int lastLine = -1; DiffTextWindow* pDTW=0; if ( m_pDiffTextWindow1 ) { pDTW=m_pDiffTextWindow1; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); } if ( firstLine<0 && m_pDiffTextWindow2 ) { pDTW=m_pDiffTextWindow2; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); } if ( firstLine<0 && m_pDiffTextWindow3 ) { pDTW=m_pDiffTextWindow3; pDTW->getSelectionRange(&firstLine, &lastLine, eD3LLineCoords); } if ( pDTW && firstLine>=0 && m_pMergeResultWindow) { pDTW->resetSelection(); m_pMergeResultWindow->slotJoinDiffs( firstLine, lastLine ); } } void KDiff3App::slotConfigure() { m_pOptionDialog->setState(); m_pOptionDialog->incrementInitialSize ( QSize(0,40) ); m_pOptionDialog->exec(); slotRefresh(); } void KDiff3App::slotConfigureKeys() { KShortcutsDialog::configure(actionCollection(), KShortcutsEditor::LetterShortcutsAllowed, this); } void KDiff3App::slotRefresh() { if (m_pDiffTextWindow1!=0) { m_pDiffTextWindow1->setFont(m_pOptions->m_font); m_pDiffTextWindow1->update(); } if (m_pDiffTextWindow2!=0) { m_pDiffTextWindow2->setFont(m_pOptions->m_font); m_pDiffTextWindow2->update(); } if (m_pDiffTextWindow3!=0) { m_pDiffTextWindow3->setFont(m_pOptions->m_font); m_pDiffTextWindow3->update(); } if (m_pMergeResultWindow!=0) { m_pMergeResultWindow->setFont(m_pOptions->m_font); m_pMergeResultWindow->update(); } if (m_pHScrollBar!=0) { m_pHScrollBar->setAgain(); } if ( m_pDiffWindowSplitter!=0 ) { m_pDiffWindowSplitter->setOrientation( m_pOptions->m_bHorizDiffWindowSplitting ? Qt::Horizontal : Qt::Vertical ); } if ( m_pDirectoryMergeWindow ) { m_pDirectoryMergeWindow->updateFileVisibilities(); } } void KDiff3App::slotSelectionStart() { //editCopy->setEnabled( false ); //editCut->setEnabled( false ); const QObject* s = sender(); if (m_pDiffTextWindow1 && s!=m_pDiffTextWindow1) m_pDiffTextWindow1->resetSelection(); if (m_pDiffTextWindow2 && s!=m_pDiffTextWindow2) m_pDiffTextWindow2->resetSelection(); if (m_pDiffTextWindow3 && s!=m_pDiffTextWindow3) m_pDiffTextWindow3->resetSelection(); if (m_pMergeResultWindow && s!=m_pMergeResultWindow) m_pMergeResultWindow->resetSelection(); } void KDiff3App::slotSelectionEnd() { //const QObject* s = sender(); //editCopy->setEnabled(true); //editCut->setEnabled( s==m_pMergeResultWindow ); if ( m_pOptions->m_bAutoCopySelection ) { slotEditCopy(); } else { QClipboard *clipBoard = QApplication::clipboard(); if (clipBoard->supportsSelection ()) { QString s; if ( m_pDiffTextWindow1!=0 ) s = m_pDiffTextWindow1->getSelection(); if ( s.isNull() && m_pDiffTextWindow2!=0 ) s = m_pDiffTextWindow2->getSelection(); if ( s.isNull() && m_pDiffTextWindow3!=0 ) s = m_pDiffTextWindow3->getSelection(); if ( s.isNull() && m_pMergeResultWindow!=0 ) s = m_pMergeResultWindow->getSelection(); if ( !s.isNull() ) { clipBoard->setText( s, QClipboard::Selection ); } } } } void KDiff3App::slotClipboardChanged() { QString s = QApplication::clipboard()->text(); //editPaste->setEnabled(!s.isEmpty()); } void KDiff3App::slotOutputModified(bool bModified) { if ( bModified && !m_bOutputModified ) { m_bOutputModified=true; slotUpdateAvailabilities(); } } void KDiff3App::slotAutoAdvanceToggled() { m_pOptions->m_bAutoAdvance = autoAdvance->isChecked(); } void KDiff3App::slotWordWrapToggled() { m_pOptions->m_bWordWrap = wordWrap->isChecked(); recalcWordWrap(); } void KDiff3App::slotRecalcWordWrap() { recalcWordWrap(); } void KDiff3App::recalcWordWrap(int nofVisibleColumns) // nofVisibleColumns is >=0 only for printing, otherwise the really visible width is used { bool bPrinting = nofVisibleColumns>=0; int firstD3LIdx = 0; if( m_pDiffTextWindow1 ) firstD3LIdx = m_pDiffTextWindow1->convertLineToDiff3LineIdx( m_pDiffTextWindow1->getFirstLine() ); // Convert selection to D3L-coords (converting back happens in DiffTextWindow::recalcWordWrap() if ( m_pDiffTextWindow1 ) m_pDiffTextWindow1->convertSelectionToD3LCoords(); if ( m_pDiffTextWindow2 ) m_pDiffTextWindow2->convertSelectionToD3LCoords(); if ( m_pDiffTextWindow3 ) m_pDiffTextWindow3->convertSelectionToD3LCoords(); if ( !m_diff3LineList.empty() && m_pOptions->m_bWordWrap ) { Diff3LineList::iterator i; int sumOfLines=0; for ( i=m_diff3LineList.begin(); i!=m_diff3LineList.end(); ++i ) { Diff3Line& d3l = *i; d3l.linesNeededForDisplay = 1; d3l.sumLinesNeededForDisplay = sumOfLines; sumOfLines += d3l.linesNeededForDisplay; } // Let every window calc how many lines will be needed. if ( m_pDiffTextWindow1 ) m_pDiffTextWindow1->recalcWordWrap(true,0,nofVisibleColumns); if ( m_pDiffTextWindow2 ) m_pDiffTextWindow2->recalcWordWrap(true,0,nofVisibleColumns); if ( m_pDiffTextWindow3 ) m_pDiffTextWindow3->recalcWordWrap(true,0,nofVisibleColumns); sumOfLines=0; for ( i=m_diff3LineList.begin(); i!=m_diff3LineList.end(); ++i ) { Diff3Line& d3l = *i; d3l.sumLinesNeededForDisplay = sumOfLines; sumOfLines += d3l.linesNeededForDisplay; } // Finish the initialisation: if ( m_pDiffTextWindow1 ) m_pDiffTextWindow1->recalcWordWrap(true,sumOfLines,nofVisibleColumns); if ( m_pDiffTextWindow2 ) m_pDiffTextWindow2->recalcWordWrap(true,sumOfLines,nofVisibleColumns); if ( m_pDiffTextWindow3 ) m_pDiffTextWindow3->recalcWordWrap(true,sumOfLines,nofVisibleColumns); m_neededLines = sumOfLines; } else { m_neededLines = m_diff3LineVector.size(); if ( m_pDiffTextWindow1 ) m_pDiffTextWindow1->recalcWordWrap(false,0,0); if ( m_pDiffTextWindow2 ) m_pDiffTextWindow2->recalcWordWrap(false,0,0); if ( m_pDiffTextWindow3 ) m_pDiffTextWindow3->recalcWordWrap(false,0,0); } if (bPrinting) return; if (m_pOverview) m_pOverview->slotRedraw(); if ( m_pDiffTextWindow1 ) { m_pDiffTextWindow1->setFirstLine( m_pDiffTextWindow1->convertDiff3LineIdxToLine( firstD3LIdx ) ); m_pDiffTextWindow1->update(); } if ( m_pDiffTextWindow2 ) { m_pDiffTextWindow2->setFirstLine( m_pDiffTextWindow2->convertDiff3LineIdxToLine( firstD3LIdx ) ); m_pDiffTextWindow2->update(); } if ( m_pDiffTextWindow3 ) { m_pDiffTextWindow3->setFirstLine( m_pDiffTextWindow3->convertDiff3LineIdxToLine( firstD3LIdx ) ); m_pDiffTextWindow3->update(); } if ( m_pDiffVScrollBar ) m_pDiffVScrollBar->setRange(0, max2(0, m_neededLines+1 - m_DTWHeight) ); if ( m_pDiffTextWindow1 ) { m_pDiffVScrollBar->setValue( m_pDiffTextWindow1->convertDiff3LineIdxToLine( firstD3LIdx ) ); setHScrollBarRange(); m_pHScrollBar->setValue(0); } } void KDiff3App::slotShowWhiteSpaceToggled() { m_pOptions->m_bShowWhiteSpaceCharacters = showWhiteSpaceCharacters->isChecked(); m_pOptions->m_bShowWhiteSpace = showWhiteSpace->isChecked(); showWhiteSpaceCharacters->setEnabled( showWhiteSpace->isChecked() ); if ( m_pDiffTextWindow1!=0 ) m_pDiffTextWindow1->update(); if ( m_pDiffTextWindow2!=0 ) m_pDiffTextWindow2->update(); if ( m_pDiffTextWindow3!=0 ) m_pDiffTextWindow3->update(); if ( m_pOverview!=0 ) m_pOverview->slotRedraw(); } void KDiff3App::slotShowLineNumbersToggled() { m_pOptions->m_bShowLineNumbers = showLineNumbers->isChecked(); if ( wordWrap->isChecked() ) recalcWordWrap(); if ( m_pDiffTextWindow1!=0 ) m_pDiffTextWindow1->update(); if ( m_pDiffTextWindow2!=0 ) m_pDiffTextWindow2->update(); if ( m_pDiffTextWindow3!=0 ) m_pDiffTextWindow3->update(); } /// Return true for success, else false bool KDiff3App::improveFilenames( bool bCreateNewInstance ) { m_bDirCompare = false; FileAccess f1(m_sd1.getFilename()); FileAccess f2(m_sd2.getFilename()); FileAccess f3(m_sd3.getFilename()); FileAccess f4(m_outputFilename); if ( f1.isFile() && f1.exists() ) { if ( f2.isDir() ) { f2.addPath( f1.fileName() ); if ( f2.isFile() && f2.exists() ) m_sd2.setFileAccess( f2 ); } if ( f3.isDir() ) { f3.addPath( f1.fileName() ); if ( f3.isFile() && f3.exists() ) m_sd3.setFileAccess( f3 ); } if ( f4.isDir() ) { f4.addPath( f1.fileName() ); if ( f4.isFile() && f4.exists() ) m_outputFilename = f4.absoluteFilePath(); } } else if ( f1.isDir() ) { m_bDirCompare = true; if (bCreateNewInstance) { emit createNewInstance( f1.absoluteFilePath(), f2.absoluteFilePath(), f3.absoluteFilePath() ); } else { FileAccess destDir; if (!m_bDefaultFilename) destDir = f4; m_pDirectoryMergeSplitter->show(); if (m_pMainWidget!=0) m_pMainWidget->hide(); setUpdatesEnabled(true); bool bSuccess = m_pDirectoryMergeWindow->init( f1, f2, f3, destDir, // Destdirname !m_outputFilename.isEmpty() ); m_bDirCompare = true; // This seems redundant but it might have been reset during full analysis. if (bSuccess) { m_sd1.reset(); if (m_pDiffTextWindow1!=0) m_pDiffTextWindow1->init(0,0,eLineEndStyleDos,0,0,0,0,false); m_sd2.reset(); if (m_pDiffTextWindow2!=0) m_pDiffTextWindow2->init(0,0,eLineEndStyleDos,0,0,0,0,false); m_sd3.reset(); if (m_pDiffTextWindow3!=0) m_pDiffTextWindow3->init(0,0,eLineEndStyleDos,0,0,0,0,false); } slotUpdateAvailabilities(); return bSuccess; } } return true; } void KDiff3App::slotReload() { if ( !canContinue() ) return; init(); } bool KDiff3App::canContinue() { // First test if anything must be saved. if(m_bOutputModified) { int result = KMessageBox::warningYesNoCancel(this, i18n("The merge result hasn't been saved."), i18n("Warning"), KGuiItem( i18n("Save && Continue") ), KGuiItem( i18n("Continue Without Saving") ) ); if ( result==KMessageBox::Cancel ) return false; else if ( result==KMessageBox::Yes ) { slotFileSave(); if ( m_bOutputModified ) { KMessageBox::sorry(this, i18n("Saving the merge result failed."), i18n("Warning") ); return false; } } } m_bOutputModified = false; return true; } void KDiff3App::slotCheckIfCanContinue( bool* pbContinue ) { if (pbContinue!=0) *pbContinue = canContinue(); } void KDiff3App::slotDirShowBoth() { if( dirShowBoth->isChecked() ) { if ( m_pDirectoryMergeSplitter ) m_pDirectoryMergeSplitter->setVisible( m_bDirCompare ); if ( m_pMainWidget!=0 ) m_pMainWidget->show(); } else { bool bTextDataAvailable = ( m_sd1.hasData() || m_sd2.hasData() || m_sd3.hasData() ); if ( m_pMainWidget!=0 && bTextDataAvailable ) { m_pMainWidget->show(); m_pDirectoryMergeSplitter->hide(); } else if ( m_bDirCompare ) { m_pDirectoryMergeSplitter->show(); } } slotUpdateAvailabilities(); } void KDiff3App::slotDirViewToggle() { if ( m_bDirCompare ) { if( ! m_pDirectoryMergeSplitter->isVisible() ) { m_pDirectoryMergeSplitter->show(); if (m_pMainWidget!=0) m_pMainWidget->hide(); } else { if (m_pMainWidget!=0) { m_pDirectoryMergeSplitter->hide(); m_pMainWidget->show(); } } } slotUpdateAvailabilities(); } void KDiff3App::slotShowWindowAToggled() { if ( m_pDiffTextWindow1!=0 ) { m_pDiffTextWindowFrame1->setVisible( showWindowA->isChecked() ); slotUpdateAvailabilities(); } } void KDiff3App::slotShowWindowBToggled() { if ( m_pDiffTextWindow2!=0 ) { m_pDiffTextWindowFrame2->setVisible( showWindowB->isChecked() ); slotUpdateAvailabilities(); } } void KDiff3App::slotShowWindowCToggled() { if ( m_pDiffTextWindow3!=0 ) { m_pDiffTextWindowFrame3->setVisible( showWindowC->isChecked() ); slotUpdateAvailabilities(); } } void KDiff3App::slotEditFind() { m_pFindDialog->currentLine = 0; m_pFindDialog->currentPos = 0; m_pFindDialog->currentWindow = 1; // Use currently selected text: QString s; if ( m_pDiffTextWindow1!=0 ) s = m_pDiffTextWindow1->getSelection(); if ( s.isNull() && m_pDiffTextWindow2!=0 ) s = m_pDiffTextWindow2->getSelection(); if ( s.isNull() && m_pDiffTextWindow3!=0 ) s = m_pDiffTextWindow3->getSelection(); if ( s.isNull() && m_pMergeResultWindow!=0 ) s = m_pMergeResultWindow->getSelection(); if ( !s.isNull() && !s.contains('\n') ) { m_pFindDialog->m_pSearchString->setText( s ); } if ( QDialog::Accepted == m_pFindDialog->exec() ) { slotEditFindNext(); } } void KDiff3App::slotEditFindNext() { QString s = m_pFindDialog->m_pSearchString->text(); if ( s.isEmpty() ) { slotEditFind(); return; } bool bDirDown = true; bool bCaseSensitive = m_pFindDialog->m_pCaseSensitive->isChecked(); int d3vLine = m_pFindDialog->currentLine; int posInLine = m_pFindDialog->currentPos; int l=0; int p=0; if ( m_pFindDialog->currentWindow == 1 ) { if ( m_pFindDialog->m_pSearchInA->isChecked() && m_pDiffTextWindow1!=0 && m_pDiffTextWindow1->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) ) { m_pDiffTextWindow1->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length(), l, p ); m_pDiffVScrollBar->setValue(l-m_pDiffVScrollBar->pageStep()/2); m_pHScrollBar->setValue( max2( 0, p+(int)s.length()-m_pHScrollBar->pageStep()) ); m_pFindDialog->currentLine = d3vLine; m_pFindDialog->currentPos = posInLine + 1; return; } m_pFindDialog->currentWindow = 2; m_pFindDialog->currentLine = 0; m_pFindDialog->currentPos = 0; } d3vLine = m_pFindDialog->currentLine; posInLine = m_pFindDialog->currentPos; if ( m_pFindDialog->currentWindow == 2 ) { if ( m_pFindDialog->m_pSearchInB->isChecked() && m_pDiffTextWindow2!=0 && m_pDiffTextWindow2->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) ) { m_pDiffTextWindow2->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length(),l,p ); m_pDiffVScrollBar->setValue(l-m_pDiffVScrollBar->pageStep()/2); m_pHScrollBar->setValue( max2( 0, p+(int)s.length()-m_pHScrollBar->pageStep()) ); m_pFindDialog->currentLine = d3vLine; m_pFindDialog->currentPos = posInLine + 1; return; } m_pFindDialog->currentWindow = 3; m_pFindDialog->currentLine = 0; m_pFindDialog->currentPos = 0; } d3vLine = m_pFindDialog->currentLine; posInLine = m_pFindDialog->currentPos; if ( m_pFindDialog->currentWindow == 3 ) { if ( m_pFindDialog->m_pSearchInC->isChecked() && m_pDiffTextWindow3!=0 && m_pDiffTextWindow3->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) ) { m_pDiffTextWindow3->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length(),l,p ); m_pDiffVScrollBar->setValue(l-m_pDiffVScrollBar->pageStep()/2); m_pHScrollBar->setValue( max2( 0, p+(int)s.length()-m_pHScrollBar->pageStep()) ); m_pFindDialog->currentLine = d3vLine; m_pFindDialog->currentPos = posInLine + 1; return; } m_pFindDialog->currentWindow = 4; m_pFindDialog->currentLine = 0; m_pFindDialog->currentPos = 0; } d3vLine = m_pFindDialog->currentLine; posInLine = m_pFindDialog->currentPos; if ( m_pFindDialog->currentWindow == 4 ) { if ( m_pFindDialog->m_pSearchInOutput->isChecked() && m_pMergeResultWindow!=0 && m_pMergeResultWindow->isVisible() && m_pMergeResultWindow->findString( s, d3vLine, posInLine, bDirDown, bCaseSensitive ) ) { m_pMergeResultWindow->setSelection( d3vLine, posInLine, d3vLine, posInLine+s.length() ); m_pMergeVScrollBar->setValue(d3vLine - m_pMergeVScrollBar->pageStep()/2); m_pHScrollBar->setValue( max2( 0, posInLine+(int)s.length()-m_pHScrollBar->pageStep()) ); m_pFindDialog->currentLine = d3vLine; m_pFindDialog->currentPos = posInLine + 1; return; } m_pFindDialog->currentWindow = 5; m_pFindDialog->currentLine = 0; m_pFindDialog->currentPos = 0; } KMessageBox::information(this,i18n("Search complete."),i18n("Search Complete")); m_pFindDialog->currentWindow = 1; m_pFindDialog->currentLine = 0; m_pFindDialog->currentPos = 0; } void KDiff3App::slotMergeCurrentFile() { if ( m_bDirCompare && m_pDirectoryMergeWindow->isVisible() && m_pDirectoryMergeWindow->isFileSelected() ) { m_pDirectoryMergeWindow->mergeCurrentFile(); } else if ( m_pMainWidget != 0 && m_pMainWidget->isVisible() ) { if ( !canContinue() ) return; if ( m_outputFilename.isEmpty() ) { if ( !m_sd3.isEmpty() && !m_sd3.isFromBuffer() ) { m_outputFilename = m_sd3.getFilename(); } else if ( !m_sd2.isEmpty() && !m_sd2.isFromBuffer() ) { m_outputFilename = m_sd2.getFilename(); } else if ( !m_sd1.isEmpty() && !m_sd1.isFromBuffer() ) { m_outputFilename = m_sd1.getFilename(); } else { m_outputFilename = "unnamed.txt"; m_bDefaultFilename = true; } } init(); } } void KDiff3App::slotWinFocusNext() { QWidget* focus = qApp->focusWidget(); if ( focus == m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->isVisible() && ! dirShowBoth->isChecked() ) { slotDirViewToggle(); } std::list visibleWidgetList; if ( m_pDiffTextWindow1 && m_pDiffTextWindow1->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow1); if ( m_pDiffTextWindow2 && m_pDiffTextWindow2->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow2); if ( m_pDiffTextWindow3 && m_pDiffTextWindow3->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow3); if ( m_pMergeResultWindow && m_pMergeResultWindow->isVisible() ) visibleWidgetList.push_back(m_pMergeResultWindow); if ( m_bDirCompare /*m_pDirectoryMergeWindow->isVisible()*/ ) visibleWidgetList.push_back(m_pDirectoryMergeWindow); //if ( m_pDirectoryMergeInfo->isVisible() ) visibleWidgetList.push_back(m_pDirectoryMergeInfo->getInfoList()); std::list::iterator i = std::find( visibleWidgetList.begin(), visibleWidgetList.end(), focus); ++i; if ( i==visibleWidgetList.end() ) i = visibleWidgetList.begin(); if ( i!=visibleWidgetList.end() ) { if ( *i == m_pDirectoryMergeWindow && ! dirShowBoth->isChecked() ) { slotDirViewToggle(); } (*i)->setFocus(); } } void KDiff3App::slotWinFocusPrev() { QWidget* focus = qApp->focusWidget(); if ( focus == m_pDirectoryMergeWindow && m_pDirectoryMergeWindow->isVisible() && ! dirShowBoth->isChecked() ) { slotDirViewToggle(); } std::list visibleWidgetList; if ( m_pDiffTextWindow1 && m_pDiffTextWindow1->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow1); if ( m_pDiffTextWindow2 && m_pDiffTextWindow2->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow2); if ( m_pDiffTextWindow3 && m_pDiffTextWindow3->isVisible() ) visibleWidgetList.push_back(m_pDiffTextWindow3); if ( m_pMergeResultWindow && m_pMergeResultWindow->isVisible() ) visibleWidgetList.push_back(m_pMergeResultWindow); if (m_bDirCompare /* m_pDirectoryMergeWindow->isVisible() */ ) visibleWidgetList.push_back(m_pDirectoryMergeWindow); //if ( m_pDirectoryMergeInfo->isVisible() ) visibleWidgetList.push_back(m_pDirectoryMergeInfo->getInfoList()); std::list::iterator i = std::find( visibleWidgetList.begin(), visibleWidgetList.end(), focus); if ( i==visibleWidgetList.begin() ) i=visibleWidgetList.end(); --i; if ( i!=visibleWidgetList.end() ) { if ( *i == m_pDirectoryMergeWindow && ! dirShowBoth->isChecked() ) { slotDirViewToggle(); } (*i)->setFocus(); } } void KDiff3App::slotWinToggleSplitterOrientation() { if ( m_pDiffWindowSplitter!=0 ) { m_pDiffWindowSplitter->setOrientation( m_pDiffWindowSplitter->orientation()==Qt::Vertical ? Qt::Horizontal : Qt::Vertical ); m_pOptions->m_bHorizDiffWindowSplitting = m_pDiffWindowSplitter->orientation()==Qt::Horizontal; } } void KDiff3App::slotOverviewNormal() { if ( m_pOverview != 0 ) m_pOverview->setOverviewMode( Overview::eOMNormal ); if ( m_pMergeResultWindow !=0 ) m_pMergeResultWindow->setOverviewMode( Overview::eOMNormal ); slotUpdateAvailabilities(); } void KDiff3App::slotOverviewAB() { if ( m_pOverview != 0 ) m_pOverview->setOverviewMode( Overview::eOMAvsB ); m_pMergeResultWindow->setOverviewMode( Overview::eOMAvsB ); slotUpdateAvailabilities(); } void KDiff3App::slotOverviewAC() { if ( m_pOverview != 0 ) m_pOverview->setOverviewMode( Overview::eOMAvsC ); if ( m_pMergeResultWindow !=0 ) m_pMergeResultWindow->setOverviewMode( Overview::eOMAvsC ); slotUpdateAvailabilities(); } void KDiff3App::slotOverviewBC() { if ( m_pOverview != 0 ) m_pOverview->setOverviewMode( Overview::eOMBvsC ); if ( m_pMergeResultWindow !=0 ) m_pMergeResultWindow->setOverviewMode( Overview::eOMBvsC ); slotUpdateAvailabilities(); } void KDiff3App::slotNoRelevantChangesDetected() { if ( m_bTripleDiff && ! m_outputFilename.isEmpty() ) { //KMessageBox::information( this, "No relevant changes detected", "KDiff3" ); if (!m_pOptions->m_IrrelevantMergeCmd.isEmpty()) { QString cmd = m_pOptions->m_IrrelevantMergeCmd + " \"" + m_sd1.getAliasName()+ "\" \"" + m_sd2.getAliasName() + "\" \"" + m_sd3.getAliasName(); QProcess process; process.start( cmd ); process.waitForFinished(-1); //::system( cmd.local8Bit() ); } } } static void insertManualDiffHelp( ManualDiffHelpList* pManualDiffHelpList, int winIdx, int firstLine, int lastLine ) { // The manual diff help list must be sorted and compact. // "Compact" means that upper items can't be empty if lower items contain data. // First insert the new item without regarding compactness. // If the new item overlaps with previous items then the previous items will be removed. ManualDiffHelpEntry mdhe; mdhe.firstLine( winIdx ) = firstLine; mdhe.lastLine( winIdx ) = lastLine; ManualDiffHelpList::iterator i; for( i=pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i ) { int& l1 = i->firstLine( winIdx ); int& l2 = i->lastLine( winIdx ); if (l1>=0 && l2>=0) { if ( (firstLine<=l1 && lastLine>=l1) || (firstLine <=l2 && lastLine>=l2) ) { // overlap l1 = -1; l2 = -1; } if ( firstLineinsert( i, mdhe ); break; } } } if ( i == pManualDiffHelpList->end() ) { pManualDiffHelpList->insert( i, mdhe ); } // Now make the list compact for( int wIdx=1; wIdx<=3; ++wIdx ) { ManualDiffHelpList::iterator iEmpty = pManualDiffHelpList->begin(); for( i=pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i ) { if ( iEmpty->firstLine(wIdx) >= 0 ) { ++iEmpty; continue; } if ( i->firstLine(wIdx)>=0 ) // Current item is not empty -> move it to the empty place { iEmpty->firstLine(wIdx) = i->firstLine(wIdx); iEmpty->lastLine(wIdx) = i->lastLine(wIdx); i->firstLine(wIdx) = -1; i->lastLine(wIdx) = -1; ++iEmpty; } } } pManualDiffHelpList->remove( ManualDiffHelpEntry() ); // Remove all completely empty items. } void KDiff3App::slotAddManualDiffHelp() { int firstLine = -1; int lastLine = -1; int winIdx = -1; if ( m_pDiffTextWindow1 ) { m_pDiffTextWindow1->getSelectionRange(&firstLine, &lastLine, eFileCoords); winIdx=1; } if ( firstLine<0 && m_pDiffTextWindow2 ) { m_pDiffTextWindow2->getSelectionRange(&firstLine, &lastLine, eFileCoords); winIdx=2; } if ( firstLine<0 && m_pDiffTextWindow3 ) { m_pDiffTextWindow3->getSelectionRange(&firstLine, &lastLine, eFileCoords); winIdx=3; } if ( firstLine<0 || lastLine <0 || lastLineisChecked() ) { if ( m_pDirectoryMergeSplitter!=0 ) m_pDirectoryMergeSplitter->setVisible( m_bDirCompare ); if ( m_pMainWidget!=0 && !m_pMainWidget->isVisible() && bTextDataAvailable && !m_pDirectoryMergeWindow->isScanning() ) m_pMainWidget->show(); } bool bDiffWindowVisible = m_pMainWidget != 0 && m_pMainWidget->isVisible(); bool bMergeEditorVisible = m_pMergeWindowFrame !=0 && m_pMergeWindowFrame->isVisible(); m_pDirectoryMergeWindow->updateAvailabilities( m_bDirCompare, bDiffWindowVisible, chooseA, chooseB, chooseC ); dirShowBoth->setEnabled( m_bDirCompare ); dirViewToggle->setEnabled( m_bDirCompare && ((!m_pDirectoryMergeSplitter->isVisible() && m_pMainWidget!=0 && m_pMainWidget->isVisible()) || (m_pDirectoryMergeSplitter->isVisible() && m_pMainWidget!=0 && !m_pMainWidget->isVisible() && bTextDataAvailable) ) ); bool bDirWindowHasFocus = m_pDirectoryMergeSplitter->isVisible() && m_pDirectoryMergeWindow->hasFocus(); showWhiteSpaceCharacters->setEnabled( bDiffWindowVisible ); autoAdvance->setEnabled( bMergeEditorVisible ); autoSolve->setEnabled( bMergeEditorVisible && m_bTripleDiff ); unsolve->setEnabled( bMergeEditorVisible ); if ( !bDirWindowHasFocus ) { chooseA->setEnabled( bMergeEditorVisible ); chooseB->setEnabled( bMergeEditorVisible ); chooseC->setEnabled( bMergeEditorVisible && m_bTripleDiff ); } chooseAEverywhere->setEnabled( bMergeEditorVisible ); chooseBEverywhere->setEnabled( bMergeEditorVisible ); chooseCEverywhere->setEnabled( bMergeEditorVisible && m_bTripleDiff ); chooseAForUnsolvedConflicts->setEnabled( bMergeEditorVisible ); chooseBForUnsolvedConflicts->setEnabled( bMergeEditorVisible ); chooseCForUnsolvedConflicts->setEnabled( bMergeEditorVisible && m_bTripleDiff ); chooseAForUnsolvedWhiteSpaceConflicts->setEnabled( bMergeEditorVisible ); chooseBForUnsolvedWhiteSpaceConflicts->setEnabled( bMergeEditorVisible ); chooseCForUnsolvedWhiteSpaceConflicts->setEnabled( bMergeEditorVisible && m_bTripleDiff ); mergeHistory->setEnabled( bMergeEditorVisible ); mergeRegExp->setEnabled( bMergeEditorVisible ); showWindowA->setEnabled( bDiffWindowVisible && ( m_pDiffTextWindow2->isVisible() || m_pDiffTextWindow3->isVisible() ) ); showWindowB->setEnabled( bDiffWindowVisible && ( m_pDiffTextWindow1->isVisible() || m_pDiffTextWindow3->isVisible() )); showWindowC->setEnabled( bDiffWindowVisible && m_bTripleDiff && ( m_pDiffTextWindow1->isVisible() || m_pDiffTextWindow2->isVisible() ) ); editFind->setEnabled( bDiffWindowVisible ); editFindNext->setEnabled( bDiffWindowVisible ); m_pFindDialog->m_pSearchInC->setEnabled( m_bTripleDiff ); m_pFindDialog->m_pSearchInOutput->setEnabled( bMergeEditorVisible ); bool bSavable = bMergeEditorVisible && m_pMergeResultWindow->getNrOfUnsolvedConflicts()==0; fileSave->setEnabled( m_bOutputModified && bSavable ); fileSaveAs->setEnabled( bSavable ); goTop->setEnabled( bDiffWindowVisible && m_pMergeResultWindow->isDeltaAboveCurrent() ); goBottom->setEnabled( bDiffWindowVisible && m_pMergeResultWindow->isDeltaBelowCurrent() ); goCurrent->setEnabled( bDiffWindowVisible ); goPrevUnsolvedConflict->setEnabled( bMergeEditorVisible && m_pMergeResultWindow->isUnsolvedConflictAboveCurrent() ); goNextUnsolvedConflict->setEnabled( bMergeEditorVisible && m_pMergeResultWindow->isUnsolvedConflictBelowCurrent() ); goPrevConflict->setEnabled( bDiffWindowVisible && m_pMergeResultWindow->isConflictAboveCurrent() ); goNextConflict->setEnabled( bDiffWindowVisible && m_pMergeResultWindow->isConflictBelowCurrent() ); goPrevDelta->setEnabled( bDiffWindowVisible && m_pMergeResultWindow->isDeltaAboveCurrent() ); goNextDelta->setEnabled( bDiffWindowVisible && m_pMergeResultWindow->isDeltaBelowCurrent() ); overviewModeNormal->setEnabled( m_bTripleDiff && bDiffWindowVisible ); overviewModeAB->setEnabled( m_bTripleDiff && bDiffWindowVisible ); overviewModeAC->setEnabled( m_bTripleDiff && bDiffWindowVisible ); overviewModeBC->setEnabled( m_bTripleDiff && bDiffWindowVisible ); Overview::e_OverviewMode overviewMode = m_pOverview==0 ? Overview::eOMNormal : m_pOverview->getOverviewMode(); overviewModeNormal->setChecked( overviewMode == Overview::eOMNormal ); overviewModeAB->setChecked( overviewMode == Overview::eOMAvsB ); overviewModeAC->setChecked( overviewMode == Overview::eOMAvsC ); overviewModeBC->setChecked( overviewMode == Overview::eOMBvsC ); winToggleSplitOrientation->setEnabled( bDiffWindowVisible && m_pDiffWindowSplitter!=0 ); } kdiff3-0.9.97/src-QT4/difftextwindow.cpp0000644000175100001440000016311012000244602017256 0ustar joachimusers/*************************************************************************** difftextwindow.cpp - description ------------------- begin : Mon Apr 8 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "difftextwindow.h" #include "merger.h" #include "options.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class DiffTextWindowData { public: DiffTextWindowData( DiffTextWindow* p ) { m_pDiffTextWindow = p; m_bPaintingAllowed = false; m_pLineData = 0; m_size = 0; m_bWordWrap = false; m_delayedDrawTimer = 0; m_pDiff3LineVector = 0; m_pManualDiffHelpList = 0; m_pOptions = 0; m_fastSelectorLine1 = 0; m_fastSelectorNofLines = 0; m_bTriple = 0; m_winIdx = 0; m_firstLine = 0; m_oldFirstLine = 0; m_oldFirstColumn = 0; m_firstColumn = 0; m_lineNumberWidth = 0; m_pStatusBar = 0; m_scrollDeltaX = 0; m_scrollDeltaY = 0; m_bMyUpdate = false; m_bSelectionInProgress = false; m_pTextCodec = 0; #if defined(_WIN32) || defined(Q_OS_OS2) m_eLineEndStyle = eLineEndStyleDos; #else m_eLineEndStyle = eLineEndStyleUnix; #endif } DiffTextWindow* m_pDiffTextWindow; DiffTextWindowFrame* m_pDiffTextWindowFrame; QTextCodec* m_pTextCodec; e_LineEndStyle m_eLineEndStyle; bool m_bPaintingAllowed; const LineData* m_pLineData; int m_size; QString m_filename; bool m_bWordWrap; int m_delayedDrawTimer; const Diff3LineVector* m_pDiff3LineVector; Diff3WrapLineVector m_diff3WrapLineVector; const ManualDiffHelpList* m_pManualDiffHelpList; Options* m_pOptions; QColor m_cThis; QColor m_cDiff1; QColor m_cDiff2; QColor m_cDiffBoth; int m_fastSelectorLine1; int m_fastSelectorNofLines; bool m_bTriple; int m_winIdx; int m_firstLine; int m_oldFirstLine; int m_oldFirstColumn; int m_firstColumn; int m_lineNumberWidth; void getLineInfo( const Diff3Line& d, int& lineIdx, DiffList*& pFineDiff1, DiffList*& pFineDiff2, // return values int& changed, int& changed2 ); QString getString( int d3lIdx ); QString getLineString( int line ); void writeLine( MyPainter& p, const LineData* pld, const DiffList* pLineDiff1, const DiffList* pLineDiff2, int line, int whatChanged, int whatChanged2, int srcLineIdx, int wrapLineOffset, int wrapLineLength, bool bWrapLine, const QRect& invalidRect, int deviceWidth ); void draw( MyPainter& p, const QRect& invalidRect, int deviceWidth, int beginLine, int endLine ); QStatusBar* m_pStatusBar; Selection m_selection; int m_scrollDeltaX; int m_scrollDeltaY; bool m_bMyUpdate; void myUpdate(int afterMilliSecs ); int leftInfoWidth() { return 4+m_lineNumberWidth; } // Nr of information columns on left side int convertLineOnScreenToLineInSource( int lineOnScreen, e_CoordType coordType, bool bFirstLine ); bool m_bSelectionInProgress; QPoint m_lastKnownMousePos; }; DiffTextWindow::DiffTextWindow( DiffTextWindowFrame* pParent, QStatusBar* pStatusBar, Options* pOptions, int winIdx ) : QWidget(pParent) { setObjectName(QString("DiffTextWindow%1").arg(winIdx)); setAttribute( Qt::WA_OpaquePaintEvent ); //setAttribute( Qt::WA_PaintOnScreen ); d = new DiffTextWindowData(this); d->m_pDiffTextWindowFrame = pParent; setFocusPolicy( Qt::ClickFocus ); setAcceptDrops( true ); d->m_pOptions = pOptions; init( 0, 0, d->m_eLineEndStyle, 0, 0, 0, 0, false ); setMinimumSize(QSize(20,20)); d->m_pStatusBar = pStatusBar; d->m_bPaintingAllowed = true; d->m_bWordWrap = false; d->m_winIdx = winIdx; setFont(d->m_pOptions->m_font); } DiffTextWindow::~DiffTextWindow() { delete d; } void DiffTextWindow::init( const QString& filename, QTextCodec* pTextCodec, e_LineEndStyle eLineEndStyle, const LineData* pLineData, int size, const Diff3LineVector* pDiff3LineVector, const ManualDiffHelpList* pManualDiffHelpList, bool bTriple ) { d->m_filename = filename; d->m_pLineData = pLineData; d->m_size = size; d->m_pDiff3LineVector = pDiff3LineVector; d->m_diff3WrapLineVector.clear(); d->m_pManualDiffHelpList = pManualDiffHelpList; d->m_firstLine = 0; d->m_oldFirstLine = -1; d->m_firstColumn = 0; d->m_oldFirstColumn = -1; d->m_bTriple = bTriple; d->m_scrollDeltaX=0; d->m_scrollDeltaY=0; d->m_bMyUpdate = false; d->m_fastSelectorLine1 = 0; d->m_fastSelectorNofLines = 0; d->m_lineNumberWidth = 0; d->m_selection.reset(); d->m_selection.oldFirstLine = -1; // reset is not enough here. d->m_selection.oldLastLine = -1; d->m_selection.lastLine = -1; d->m_pTextCodec = pTextCodec; d->m_eLineEndStyle = eLineEndStyle; update(); d->m_pDiffTextWindowFrame->init(); } void DiffTextWindow::reset() { d->m_pLineData=0; d->m_size=0; d->m_pDiff3LineVector=0; d->m_filename=""; d->m_diff3WrapLineVector.clear(); } void DiffTextWindow::setPaintingAllowed( bool bAllowPainting ) { if (d->m_bPaintingAllowed != bAllowPainting) { d->m_bPaintingAllowed = bAllowPainting; if ( d->m_bPaintingAllowed ) update(); else reset(); } } void DiffTextWindow::dragEnterEvent( QDragEnterEvent* e ) { e->setAccepted( e->mimeData()->hasUrls() || e->mimeData()->hasText() ); // Note that the corresponding drop is handled in KDiff3App::eventFilter(). } void DiffTextWindow::setFirstLine(int firstLine) { int fontHeight = fontMetrics().height(); int newFirstLine = max2(0,firstLine); int deltaY = fontHeight * ( d->m_firstLine - newFirstLine ); d->m_firstLine = newFirstLine; if ( d->m_bSelectionInProgress && d->m_selection.firstLine != -1 ) { int line, pos; convertToLinePos( d->m_lastKnownMousePos.x(), d->m_lastKnownMousePos.y(), line, pos ); d->m_selection.end( line, pos ); update(); } else { QWidget::scroll( 0, deltaY ); } d->m_pDiffTextWindowFrame->setFirstLine( d->m_firstLine ); } int DiffTextWindow::getFirstLine() { return d->m_firstLine; } void DiffTextWindow::setFirstColumn(int firstCol) { int fontWidth = fontMetrics().width('W'); int xOffset = d->leftInfoWidth() * fontWidth; int newFirstColumn = max2(0,firstCol); int deltaX = fontWidth * ( d->m_firstColumn - newFirstColumn ); d->m_firstColumn = newFirstColumn; QRect r( xOffset, 0, width()-xOffset, height() ); if ( d->m_pOptions->m_bRightToLeftLanguage ) { deltaX = -deltaX; r = QRect( width()-1-xOffset, 0, -(width()-xOffset), height() ).normalized(); } if ( d->m_bSelectionInProgress && d->m_selection.firstLine != -1 ) { int line, pos; convertToLinePos( d->m_lastKnownMousePos.x(), d->m_lastKnownMousePos.y(), line, pos ); d->m_selection.end( line, pos ); update(); } else { QWidget::scroll( deltaX, 0, r ); } } int DiffTextWindow::getNofColumns() { if (d->m_bWordWrap) { return getNofVisibleColumns(); } else { int nofColumns = 0; for( int i = 0; i< d->m_size; ++i ) { if ( d->m_pLineData[i].width( d->m_pOptions->m_tabSize ) > nofColumns ) nofColumns = d->m_pLineData[i].width( d->m_pOptions->m_tabSize ); } return nofColumns; } } int DiffTextWindow::getNofLines() { return d->m_bWordWrap ? d->m_diff3WrapLineVector.size() : d->m_pDiff3LineVector->size(); } int DiffTextWindow::convertLineToDiff3LineIdx( int line ) { if ( d->m_bWordWrap && d->m_diff3WrapLineVector.size()>0 ) return d->m_diff3WrapLineVector[ min2( line, (int)d->m_diff3WrapLineVector.size()-1 ) ].diff3LineIndex; else return line; } int DiffTextWindow::convertDiff3LineIdxToLine( int d3lIdx ) { if ( d->m_bWordWrap && d->m_pDiff3LineVector!=0 && d->m_pDiff3LineVector->size()>0 ) return (*d->m_pDiff3LineVector)[ min2( d3lIdx, (int)d->m_pDiff3LineVector->size()-1 ) ]->sumLinesNeededForDisplay; else return d3lIdx; } /** Returns a line number where the linerange [line, line+nofLines] can be displayed best. If it fits into the currently visible range then the returned value is the current firstLine. */ int getBestFirstLine( int line, int nofLines, int firstLine, int visibleLines ) { int newFirstLine = firstLine; if ( line < firstLine || line + nofLines + 2 > firstLine + visibleLines ) { if ( nofLines > visibleLines || nofLines <= ( 2*visibleLines / 3 - 1) ) newFirstLine = line - visibleLines/3; else newFirstLine = line - (visibleLines - nofLines); } return newFirstLine; } void DiffTextWindow::setFastSelectorRange( int line1, int nofLines ) { d->m_fastSelectorLine1 = line1; d->m_fastSelectorNofLines = nofLines; if ( isVisible() ) { int newFirstLine = getBestFirstLine( convertDiff3LineIdxToLine(d->m_fastSelectorLine1), convertDiff3LineIdxToLine(d->m_fastSelectorLine1+d->m_fastSelectorNofLines)-convertDiff3LineIdxToLine(d->m_fastSelectorLine1), d->m_firstLine, getNofVisibleLines() ); if ( newFirstLine != d->m_firstLine ) { scroll( 0, newFirstLine - d->m_firstLine ); } update(); } } void DiffTextWindow::showStatusLine(int line ) { int d3lIdx = convertLineToDiff3LineIdx( line ); if( d->m_pDiff3LineVector!=0 && d3lIdx >= 0 && d3lIdx<(int)d->m_pDiff3LineVector->size() ) { const Diff3Line* pD3l = (*d->m_pDiff3LineVector)[d3lIdx]; if ( pD3l != 0 ) { int l = pD3l->getLineInFile( d->m_winIdx ); QString s = i18n("File") + " " + d->m_filename; if ( l!=-1 ) s += ": " + i18n("Line") + " " + QString::number( l+1 ); else s += ": " + i18n("Line not available"); if (d->m_pStatusBar!=0) d->m_pStatusBar->showMessage(s); emit lineClicked( d->m_winIdx, l ); } } } void DiffTextWindow::focusInEvent(QFocusEvent* e) { emit gotFocus(); QWidget::focusInEvent(e); } void DiffTextWindow::mousePressEvent ( QMouseEvent* e ) { if ( e->button() == Qt::LeftButton ) { int line; int pos; convertToLinePos( e->x(), e->y(), line, pos ); if ( pos < d->m_firstColumn ) { emit setFastSelectorLine( convertLineToDiff3LineIdx(line) ); d->m_selection.firstLine = -1; // Disable current d->m_selection } else { // Selection resetSelection(); d->m_selection.start( line, pos ); d->m_selection.end( line, pos ); d->m_bSelectionInProgress = true; d->m_lastKnownMousePos = e->pos(); showStatusLine( line ); } } } bool isCTokenChar( QChar c ) { return (c=='_') || ( c>='A' && c<='Z' ) || ( c>='a' && c<='z' ) || (c>='0' && c<='9'); } /// Calculate where a token starts and ends, given the x-position on screen. void calcTokenPos( const QString& s, int posOnScreen, int& pos1, int& pos2, int tabSize ) { // Cursor conversions that consider g_tabSize int pos = convertToPosInText( s, max2( 0, posOnScreen ), tabSize ); if ( pos>=(int)s.length() ) { pos1=s.length(); pos2=s.length(); return; } pos1 = pos; pos2 = pos+1; if( isCTokenChar( s[pos1] ) ) { while( pos1>=0 && isCTokenChar( s[pos1] ) ) --pos1; ++pos1; while( pos2<(int)s.length() && isCTokenChar( s[pos2] ) ) ++pos2; } } void DiffTextWindow::mouseDoubleClickEvent( QMouseEvent* e ) { d->m_bSelectionInProgress = false; d->m_lastKnownMousePos = e->pos(); if ( e->button() == Qt::LeftButton ) { int line; int pos; convertToLinePos( e->x(), e->y(), line, pos ); // Get the string data of the current line QString s; if ( d->m_bWordWrap ) { if ( line<0 || line >= (int)d->m_diff3WrapLineVector.size() ) return; const Diff3WrapLine& d3wl = d->m_diff3WrapLineVector[line]; s = d->getString( d3wl.diff3LineIndex ).mid( d3wl.wrapLineOffset, d3wl.wrapLineLength ); } else { if ( line<0 || line >= (int)d->m_pDiff3LineVector->size() ) return; s = d->getString( line ); } if ( ! s.isEmpty() ) { int pos1, pos2; calcTokenPos( s, pos, pos1, pos2, d->m_pOptions->m_tabSize ); resetSelection(); d->m_selection.start( line, convertToPosOnScreen( s, pos1, d->m_pOptions->m_tabSize ) ); d->m_selection.end( line, convertToPosOnScreen( s, pos2, d->m_pOptions->m_tabSize ) ); update(); // emit d->m_selectionEnd() happens in the mouseReleaseEvent. showStatusLine( line ); } } } void DiffTextWindow::mouseReleaseEvent ( QMouseEvent* e ) { d->m_bSelectionInProgress = false; d->m_lastKnownMousePos = e->pos(); //if ( e->button() == LeftButton ) { if (d->m_delayedDrawTimer) killTimer(d->m_delayedDrawTimer); d->m_delayedDrawTimer = 0; if (d->m_selection.firstLine != -1 ) { emit selectionEnd(); } } d->m_scrollDeltaX=0; d->m_scrollDeltaY=0; } inline int sqr(int x){return x*x;} void DiffTextWindow::mouseMoveEvent ( QMouseEvent * e ) { int line; int pos; convertToLinePos( e->x(), e->y(), line, pos ); d->m_lastKnownMousePos = e->pos(); if (d->m_selection.firstLine != -1 ) { d->m_selection.end( line, pos ); showStatusLine( line ); // Scroll because mouse moved out of the window const QFontMetrics& fm = fontMetrics(); int fontWidth = fm.width('W'); int deltaX=0; int deltaY=0; if ( ! d->m_pOptions->m_bRightToLeftLanguage ) { if ( e->x() < d->leftInfoWidth()*fontWidth ) deltaX = -1 - abs(e->x()-d->leftInfoWidth()*fontWidth)/fontWidth; if ( e->x() > width() ) deltaX = +1 + abs(e->x()-width())/fontWidth; } else { if ( e->x() > width()-1-d->leftInfoWidth()*fontWidth ) deltaX=+1+ abs(e->x() - (width()-1-d->leftInfoWidth()*fontWidth)) / fontWidth; if ( e->x() < fontWidth ) deltaX=-1- abs(e->x()-fontWidth)/fontWidth; } if ( e->y() < 0 ) deltaY = -1 - sqr( e->y() ) / sqr(fm.height()); if ( e->y() > height() ) deltaY = +1 + sqr( e->y() - height() ) / sqr(fm.height()); if ( (deltaX != 0 && d->m_scrollDeltaX!=deltaX) || (deltaY!= 0 && d->m_scrollDeltaY!=deltaY) ) { d->m_scrollDeltaX = deltaX; d->m_scrollDeltaY = deltaY; emit scroll( deltaX, deltaY ); if (d->m_delayedDrawTimer) killTimer( d->m_delayedDrawTimer ); d->m_delayedDrawTimer = startTimer(50); } else { d->m_scrollDeltaX = deltaX; d->m_scrollDeltaY = deltaY; d->myUpdate(0); } } } void DiffTextWindowData::myUpdate(int afterMilliSecs) { if (m_delayedDrawTimer) m_pDiffTextWindow->killTimer( m_delayedDrawTimer ); m_bMyUpdate = true; m_delayedDrawTimer = m_pDiffTextWindow->startTimer( afterMilliSecs ); } void DiffTextWindow::timerEvent(QTimerEvent*) { killTimer(d->m_delayedDrawTimer); d->m_delayedDrawTimer = 0; if ( d->m_bMyUpdate ) { int fontHeight = fontMetrics().height(); if ( d->m_selection.oldLastLine != -1 ) { int lastLine; int firstLine; if ( d->m_selection.oldFirstLine != -1 ) { firstLine = min3( d->m_selection.oldFirstLine, d->m_selection.lastLine, d->m_selection.oldLastLine ); lastLine = max3( d->m_selection.oldFirstLine, d->m_selection.lastLine, d->m_selection.oldLastLine ); } else { firstLine = min2( d->m_selection.lastLine, d->m_selection.oldLastLine ); lastLine = max2( d->m_selection.lastLine, d->m_selection.oldLastLine ); } int y1 = ( firstLine - d->m_firstLine ) * fontHeight; int y2 = min2( height(), ( lastLine - d->m_firstLine + 1 ) * fontHeight ); if ( y10 ) { QRect invalidRect = QRect( 0, y1, width(), y2-y1 ); update( invalidRect ); } } d->m_bMyUpdate = false; } if ( d->m_scrollDeltaX != 0 || d->m_scrollDeltaY != 0 ) { d->m_selection.end( d->m_selection.lastLine + d->m_scrollDeltaY, d->m_selection.lastPos + d->m_scrollDeltaX ); emit scroll( d->m_scrollDeltaX, d->m_scrollDeltaY ); killTimer(d->m_delayedDrawTimer); d->m_delayedDrawTimer = startTimer(50); } } void DiffTextWindow::resetSelection() { d->m_selection.reset(); update(); } void DiffTextWindow::convertToLinePos( int x, int y, int& line, int& pos ) { const QFontMetrics& fm = fontMetrics(); int fontHeight = fm.height(); int fontWidth = fm.width('W'); int xOffset = ( d->leftInfoWidth() - d->m_firstColumn ) * fontWidth; int yOffset = - d->m_firstLine * fontHeight; line = ( y - yOffset ) / fontHeight; if ( ! d->m_pOptions->m_bRightToLeftLanguage ) pos = ( x - xOffset ) / fontWidth; else pos = ( (width() - 1 - x) - xOffset ) / fontWidth; } int Selection::firstPosInLine(int l) { assert( firstLine != -1 ); int l1 = firstLine; int l2 = lastLine; int p1 = firstPos; int p2 = lastPos; if ( l1>l2 ){ std::swap(l1,l2); std::swap(p1,p2); } if ( l1==l2 && p1>p2 ){ std::swap(p1,p2); } if ( l==l1 ) return p1; return 0; } int Selection::lastPosInLine(int l) { assert( firstLine != -1 ); int l1 = firstLine; int l2 = lastLine; int p1 = firstPos; int p2 = lastPos; if ( l1>l2 ){ std::swap(l1,l2); std::swap(p1,p2); } if ( l1==l2 && p1>p2 ){ std::swap(p1,p2); } if ( l==l2 ) return p2; return INT_MAX; } bool Selection::within( int l, int p ) { if ( firstLine == -1 ) return false; int l1 = firstLine; int l2 = lastLine; int p1 = firstPos; int p2 = lastPos; if ( l1>l2 ){ std::swap(l1,l2); std::swap(p1,p2); } if ( l1==l2 && p1>p2 ){ std::swap(p1,p2); } if( l1 <= l && l <= l2 ) { if ( l1==l2 ) return p>=p1 && p=p1; if ( l==l2 ) return pl2 ){ std::swap(l1,l2); } return ( l1 <= l && l <= l2 ); } class DrawTextOptimizer // Drawing continuous text is much faster than drawing one char after another. { private: QFont m_font; QPen m_pen; QString m_text; QPoint m_pos; MyPainter* m_pPainter; QFontMetrics m_fm; void draw() { if ( m_pPainter && !m_text.isEmpty() ) { m_pPainter->setFont( m_font ); m_pPainter->setPen( m_pen ); m_pPainter->drawText( m_pos.x(), m_pos.y(), m_text, true ); m_text = QString(); } } public: DrawTextOptimizer( MyPainter* pPainter ) : m_fm(pPainter->fontMetrics()) { m_pPainter = pPainter; m_font = m_pPainter->font(); m_pen = m_pPainter->pen(); } ~DrawTextOptimizer() { end(); } void setFont( const QFont& f ) { if ( f!=m_font ) { draw(); m_font = f; m_fm = m_pPainter->fontMetrics(); } } void setPen( const QPen& pen ) { if ( pen!=m_pen ) { draw(); m_pen = pen; } } void drawText( int x, int y, const QString& s ) { if ( y!=m_pos.y() || x != m_pos.x()+m_text.length()*m_fm.width("W") ) { draw(); m_pos = QPoint(x,y); } m_text += s; } void end() { draw(); } }; void DiffTextWindowData::writeLine( MyPainter& p, const LineData* pld, const DiffList* pLineDiff1, const DiffList* pLineDiff2, int line, int whatChanged, int whatChanged2, int srcLineIdx, int wrapLineOffset, int wrapLineLength, bool bWrapLine, const QRect& invalidRect, int deviceWidth ) { QFont normalFont = p.font(); QFont diffFont = normalFont; diffFont.setItalic( m_pOptions->m_bItalicForDeltas ); const QFontMetrics& fm = p.fontMetrics(); int fontHeight = fm.height(); int fontAscent = fm.ascent(); int fontDescent = fm.descent(); int fontWidth = fm.width('W'); int xOffset = (leftInfoWidth() - m_firstColumn)*fontWidth; int yOffset = (line-m_firstLine) * fontHeight; QRect lineRect( 0, yOffset, deviceWidth, fontHeight ); if ( ! invalidRect.intersects( lineRect ) ) { return; } int fastSelectorLine1 = m_pDiffTextWindow->convertDiff3LineIdxToLine(m_fastSelectorLine1); int fastSelectorLine2 = m_pDiffTextWindow->convertDiff3LineIdxToLine(m_fastSelectorLine1+m_fastSelectorNofLines)-1; bool bFastSelectionRange = (line>=fastSelectorLine1 && line<= fastSelectorLine2 ); QColor bgColor = m_pOptions->m_bgColor; QColor diffBgColor = m_pOptions->m_diffBgColor; if ( bFastSelectionRange ) { bgColor = m_pOptions->m_currentRangeBgColor; diffBgColor = m_pOptions->m_currentRangeDiffBgColor; } if ( yOffset+fontHeightm_fgColor; p.setPen(c); if ( changed == 2 ) { c = m_cDiff2; } else if ( changed == 1 ) { c = m_cDiff1; } else if ( changed == 3 ) { c = m_cDiffBoth; } p.fillRect( leftInfoWidth()*fontWidth, yOffset, deviceWidth, fontHeight, bgColor ); if (pld!=0) { // First calculate the "changed" information for each character. int i=0; QString lineString( pld->pLine, pld->size ); std::vector charChanged( pld->size ); Merger merger( pLineDiff1, pLineDiff2 ); while( ! merger.isEndReached() && isize ) { if ( i < pld->size ) { charChanged[i] = merger.whatChanged(); ++i; } merger.next(); } QString s=" "; // Convert tabs int outPos = 0; int lineLength = m_bWordWrap ? wrapLineOffset+wrapLineLength : lineString.length(); DrawTextOptimizer dto( &p ); for( i=wrapLineOffset; im_tabSize ); s[0] = ' '; } else { s[0] = lineString[i]; } QColor c = m_pOptions->m_fgColor; int cchanged = charChanged[i] | whatChanged; if ( cchanged == 2 ) { c = m_cDiff2; } else if ( cchanged == 1 ) { c = m_cDiff1; } else if ( cchanged == 3 ) { c = m_cDiffBoth; } if ( c!=m_pOptions->m_fgColor && whatChanged2==0 && !m_pOptions->m_bShowWhiteSpace ) { // The user doesn't want to see highlighted white space. c = m_pOptions->m_fgColor; } QRect outRect( xOffset + fontWidth*outPos, yOffset, fontWidth*spaces, fontHeight ); if ( m_pOptions->m_bRightToLeftLanguage ) outRect = QRect( deviceWidth-1-(xOffset + fontWidth*outPos), yOffset, -fontWidth*spaces, fontHeight ).normalized(); if ( invalidRect.intersects( outRect ) ) { if( !m_selection.within( line, outPos ) ) { if( c!=m_pOptions->m_fgColor ) { QColor lightc = diffBgColor; p.fillRect( xOffset + fontWidth*outPos, yOffset, fontWidth*spaces, fontHeight, lightc ); dto.setFont(diffFont); } dto.setPen( c ); if ( s[0]==' ' && c!=m_pOptions->m_fgColor && charChanged[i]!=0 ) { if ( m_pOptions->m_bShowWhiteSpaceCharacters && m_pOptions->m_bShowWhiteSpace) { p.fillRect( xOffset + fontWidth*outPos, yOffset+fontAscent, fontWidth*spaces-1, fontDescent, c ); } } else { dto.drawText( xOffset + fontWidth*outPos, yOffset + fontAscent, s ); } dto.setFont(normalFont); } else { p.fillRect( xOffset + fontWidth*outPos, yOffset, fontWidth*(spaces), fontHeight, m_pDiffTextWindow->palette().highlight() ); dto.setPen( m_pDiffTextWindow->palette().highlightedText().color() ); dto.drawText( xOffset + fontWidth*outPos, yOffset + fontAscent, s ); m_selection.bSelectionContainsData = true; } } outPos += spaces; } // end for dto.end(); if( m_selection.lineWithin( line ) && m_selection.lineWithin( line+1 ) ) { p.fillRect( xOffset + fontWidth*outPos, yOffset, deviceWidth, fontHeight, m_pDiffTextWindow->palette().highlight() ); } } p.fillRect( 0, yOffset, leftInfoWidth()*fontWidth, fontHeight, m_pOptions->m_bgColor ); xOffset = (m_lineNumberWidth+2)*fontWidth; int xLeft = m_lineNumberWidth*fontWidth; p.setPen( m_pOptions->m_fgColor ); if ( pld!=0 ) { if ( m_pOptions->m_bShowLineNumbers && !bWrapLine ) { QString num; num.sprintf( "%0*d", m_lineNumberWidth, srcLineIdx+1); p.drawText( 0, yOffset + fontAscent, num ); //p.drawLine( xLeft -1, yOffset, xLeft -1, yOffset+fontHeight-1 ); } if ( !bWrapLine || wrapLineLength>0 ) { p.setPen( QPen( m_pOptions->m_fgColor, 0, bWrapLine ? Qt::DotLine : Qt::SolidLine) ); p.drawLine( xOffset +1, yOffset, xOffset +1, yOffset+fontHeight-1 ); p.setPen( QPen( m_pOptions->m_fgColor, 0, Qt::SolidLine) ); } } if ( c!=m_pOptions->m_fgColor && whatChanged2==0 )//&& whatChanged==0 ) { if ( m_pOptions->m_bShowWhiteSpace ) { p.setBrushOrigin(0,0); p.fillRect( xLeft, yOffset, fontWidth*2-1, fontHeight, QBrush(c,Qt::Dense5Pattern) ); } } else { p.fillRect( xLeft, yOffset, fontWidth*2-1, fontHeight, c==m_pOptions->m_fgColor ? bgColor : c ); } if ( bFastSelectionRange ) { p.fillRect( xOffset + fontWidth-1, yOffset, 3, fontHeight, m_pOptions->m_fgColor ); } // Check if line needs a manual diff help mark ManualDiffHelpList::const_iterator ci; for( ci = m_pManualDiffHelpList->begin(); ci!=m_pManualDiffHelpList->end(); ++ci) { const ManualDiffHelpEntry& mdhe=*ci; int rangeLine1 = -1; int rangeLine2 = -1; if (m_winIdx==1 ) { rangeLine1 = mdhe.lineA1; rangeLine2= mdhe.lineA2; } if (m_winIdx==2 ) { rangeLine1 = mdhe.lineB1; rangeLine2= mdhe.lineB2; } if (m_winIdx==3 ) { rangeLine1 = mdhe.lineC1; rangeLine2= mdhe.lineC2; } if ( rangeLine1>=0 && rangeLine2>=0 && srcLineIdx >= rangeLine1 && srcLineIdx <= rangeLine2 ) { p.fillRect( xOffset - fontWidth, yOffset, fontWidth-1, fontHeight, m_pOptions->m_manualHelpRangeColor ); break; } } } void DiffTextWindow::paintEvent( QPaintEvent* e ) { QRect invalidRect = e->rect(); if ( invalidRect.isEmpty() || ! d->m_bPaintingAllowed ) return; if ( d->m_pDiff3LineVector==0 || ( d->m_diff3WrapLineVector.empty() && d->m_bWordWrap ) ) { QPainter p(this); p.fillRect( invalidRect, d->m_pOptions->m_bgColor ); return; } bool bOldSelectionContainsData = d->m_selection.bSelectionContainsData; d->m_selection.bSelectionContainsData = false; int endLine = min2( d->m_firstLine + getNofVisibleLines()+2, getNofLines() ); //if ( invalidRect.size()==size() ) { // double buffering, obsolete with Qt4 //QPainter painter(this); // Remove for Qt4 //QPixmap pixmap( invalidRect.size() );// Remove for Qt4 MyPainter p( this, d->m_pOptions->m_bRightToLeftLanguage, width(), fontMetrics().width('W') ); // For Qt4 change pixmap to this //p.translate( -invalidRect.x(), -invalidRect.y() );// Remove for Qt4 p.setFont( font() ); p.QPainter::fillRect( invalidRect, d->m_pOptions->m_bgColor ); d->draw( p, invalidRect, width(), d->m_firstLine, endLine ); // p.drawLine( m_invalidRect.x(), m_invalidRect.y(), m_invalidRect.right(), m_invalidRect.bottom() ); // For test only p.end(); //painter.drawPixmap( invalidRect.x(), invalidRect.y(), pixmap );// Remove for Qt4 } // else // { // no double buffering // MyPainter p( this, d->m_pOptions->m_bRightToLeftLanguage, width(), fontMetrics().width('W') ); // p.setFont( font() ); // p.QPainter::fillRect( invalidRect, d->m_pOptions->m_bgColor ); // d->draw( p, invalidRect, width(), d->m_firstLine, endLine ); // } d->m_oldFirstLine = d->m_firstLine; d->m_oldFirstColumn = d->m_firstColumn; d->m_selection.oldLastLine = -1; if ( d->m_selection.oldFirstLine !=-1 ) d->m_selection.oldFirstLine = -1; if( !bOldSelectionContainsData && d->m_selection.bSelectionContainsData ) emit newSelection(); } void DiffTextWindow::print( MyPainter& p, const QRect&, int firstLine, int nofLinesPerPage ) { if ( d->m_pDiff3LineVector==0 || ! d->m_bPaintingAllowed || ( d->m_diff3WrapLineVector.empty() && d->m_bWordWrap ) ) return; resetSelection(); // MyPainter p( this, d->m_pOptions->m_bRightToLeftLanguage, width(), fontMetrics().width('W') ); int oldFirstLine = d->m_firstLine; d->m_firstLine = firstLine; QRect invalidRect = QRect(0,0,1000000000,1000000000); QColor bgColor = d->m_pOptions->m_bgColor; d->m_pOptions->m_bgColor = Qt::white; d->draw( p, invalidRect, p.window().width(), firstLine, min2(firstLine+nofLinesPerPage,getNofLines()) ); d->m_pOptions->m_bgColor = bgColor; d->m_firstLine = oldFirstLine; } void DiffTextWindowData::draw( MyPainter& p, const QRect& invalidRect, int deviceWidth, int beginLine, int endLine ) { m_lineNumberWidth = m_pOptions->m_bShowLineNumbers ? (int)log10((double)qMax(m_size,1))+1 : 0; if ( m_winIdx==1 ) { m_cThis = m_pOptions->m_colorA; m_cDiff1 = m_pOptions->m_colorB; m_cDiff2 = m_pOptions->m_colorC; } if ( m_winIdx==2 ) { m_cThis = m_pOptions->m_colorB; m_cDiff1 = m_pOptions->m_colorC; m_cDiff2 = m_pOptions->m_colorA; } if ( m_winIdx==3 ) { m_cThis = m_pOptions->m_colorC; m_cDiff1 = m_pOptions->m_colorA; m_cDiff2 = m_pOptions->m_colorB; } m_cDiffBoth = m_pOptions->m_colorForConflict; // Conflict color p.setPen( m_cThis ); for ( int line = beginLine; line 0 && m_diff3WrapLineVector[line-1].pD3L == d3l; } else { d3l = (*m_pDiff3LineVector)[line]; } DiffList* pFineDiff1; DiffList* pFineDiff2; int changed=0; int changed2=0; int srcLineIdx=-1; getLineInfo( *d3l, srcLineIdx, pFineDiff1, pFineDiff2, changed, changed2 ); writeLine( p, // QPainter srcLineIdx == -1 ? 0 : &m_pLineData[srcLineIdx], // Text in this line pFineDiff1, pFineDiff2, line, // Line on the screen changed, changed2, srcLineIdx, wrapLineOffset, wrapLineLength, bWrapLine, invalidRect, deviceWidth ); } } QString DiffTextWindowData::getString( int d3lIdx ) { if ( d3lIdx<0 || d3lIdx>=(int)m_pDiff3LineVector->size() ) return QString(); const Diff3Line* d3l = (*m_pDiff3LineVector)[d3lIdx]; DiffList* pFineDiff1; DiffList* pFineDiff2; int changed=0; int changed2=0; int lineIdx; getLineInfo( *d3l, lineIdx, pFineDiff1, pFineDiff2, changed, changed2 ); if (lineIdx==-1) return QString(); else { const LineData* ld = &m_pLineData[lineIdx]; return QString( ld->pLine, ld->size ); } return QString(); } QString DiffTextWindowData::getLineString( int line ) { if ( m_bWordWrap ) { int d3LIdx = m_pDiffTextWindow->convertLineToDiff3LineIdx(line); return getString( d3LIdx ).mid( m_diff3WrapLineVector[line].wrapLineOffset, m_diff3WrapLineVector[line].wrapLineLength ); } else { return getString( line ); } } void DiffTextWindowData::getLineInfo( const Diff3Line& d3l, int& lineIdx, DiffList*& pFineDiff1, DiffList*& pFineDiff2, // return values int& changed, int& changed2 ) { changed=0; changed2=0; bool bAEqB = d3l.bAEqB || ( d3l.bWhiteLineA && d3l.bWhiteLineB ); bool bAEqC = d3l.bAEqC || ( d3l.bWhiteLineA && d3l.bWhiteLineC ); bool bBEqC = d3l.bBEqC || ( d3l.bWhiteLineB && d3l.bWhiteLineC ); if ( m_winIdx == 1 ) { lineIdx=d3l.lineA; pFineDiff1=d3l.pFineAB; pFineDiff2=d3l.pFineCA; changed |= ((d3l.lineB==-1)!=(lineIdx==-1) ? 1 : 0) + ((d3l.lineC==-1)!=(lineIdx==-1) && m_bTriple ? 2 : 0); changed2 |= ( bAEqB ? 0 : 1 ) + (bAEqC || !m_bTriple ? 0 : 2); } else if ( m_winIdx == 2 ) { lineIdx=d3l.lineB; pFineDiff1=d3l.pFineBC; pFineDiff2=d3l.pFineAB; changed |= ((d3l.lineC==-1)!=(lineIdx==-1) && m_bTriple ? 1 : 0) + ((d3l.lineA==-1)!=(lineIdx==-1) ? 2 : 0); changed2 |= ( bBEqC || !m_bTriple ? 0 : 1 ) + (bAEqB ? 0 : 2); } else if ( m_winIdx == 3 ) { lineIdx=d3l.lineC; pFineDiff1=d3l.pFineCA; pFineDiff2=d3l.pFineBC; changed |= ((d3l.lineA==-1)!=(lineIdx==-1) ? 1 : 0) + ((d3l.lineB==-1)!=(lineIdx==-1) ? 2 : 0); changed2 |= ( bAEqC ? 0 : 1 ) + (bBEqC ? 0 : 2); } else assert(false); } void DiffTextWindow::resizeEvent( QResizeEvent* e ) { QSize s = e->size(); QFontMetrics fm = fontMetrics(); int visibleLines = s.height()/fm.height()-2; int visibleColumns = s.width()/fm.width('W') - d->leftInfoWidth(); emit resizeSignal( visibleColumns, visibleLines ); QWidget::resizeEvent(e); } int DiffTextWindow::getNofVisibleLines() { QFontMetrics fm = fontMetrics(); int fmh = fm.height(); int h = height(); return h/fmh -1;//height()/fm.height()-2; } int DiffTextWindow::getNofVisibleColumns() { QFontMetrics fm = fontMetrics(); return width()/fm.width('W') - d->leftInfoWidth(); } QString DiffTextWindow::getSelection() { if ( d->m_pLineData==0 ) return QString(); QString selectionString; int line=0; int lineIdx=0; int it; int vectorSize = d->m_bWordWrap ? d->m_diff3WrapLineVector.size() : d->m_pDiff3LineVector->size(); for( it=0; itm_bWordWrap ? d->m_diff3WrapLineVector[it].pD3L : (*d->m_pDiff3LineVector)[it]; if ( d->m_winIdx == 1 ) { lineIdx=d3l->lineA; } else if ( d->m_winIdx == 2 ) { lineIdx=d3l->lineB; } else if ( d->m_winIdx == 3 ) { lineIdx=d3l->lineC; } else assert(false); if( lineIdx != -1 ) { const QChar* pLine = d->m_pLineData[lineIdx].pLine; int size = d->m_pLineData[lineIdx].size; QString lineString = QString( pLine, size ); if ( d->m_bWordWrap ) { size = d->m_diff3WrapLineVector[it].wrapLineLength; lineString = lineString.mid( d->m_diff3WrapLineVector[it].wrapLineOffset, size ); } // Consider tabs int outPos = 0; for( int i=0; im_pOptions->m_tabSize ); } if( d->m_selection.within( line, outPos ) ) { selectionString += lineString[i]; } outPos += spaces; } if( d->m_selection.within( line, outPos ) && !( d->m_bWordWrap && it+1m_diff3WrapLineVector[it+1].pD3L ) ) { #if defined(_WIN32) || defined(Q_OS_OS2) selectionString += '\r'; #endif selectionString += '\n'; } } ++line; } return selectionString; } bool DiffTextWindow::findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive ) { int it = d3vLine; int endIt = bDirDown ? (int)d->m_pDiff3LineVector->size() : -1; int step = bDirDown ? 1 : -1; int startPos = posInLine; for( ; it!=endIt; it+=step ) { QString line = d->getString( it ); if ( !line.isEmpty() ) { int pos = line.indexOf( s, startPos, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive ); if ( pos != -1 ) { d3vLine = it; posInLine = pos; return true; } startPos = 0; } } return false; } void DiffTextWindow::convertD3LCoordsToLineCoords( int d3LIdx, int d3LPos, int& line, int& pos ) { if( d->m_bWordWrap ) { int wrapPos = d3LPos; int wrapLine = convertDiff3LineIdxToLine(d3LIdx); while ( wrapPos > d->m_diff3WrapLineVector[wrapLine].wrapLineLength ) { wrapPos -= d->m_diff3WrapLineVector[wrapLine].wrapLineLength; ++wrapLine; } pos = wrapPos; line = wrapLine; } else { pos = d3LPos; line = d3LIdx; } } void DiffTextWindow::convertLineCoordsToD3LCoords( int line, int pos, int& d3LIdx, int& d3LPos ) { if( d->m_bWordWrap ) { d3LPos = pos; d3LIdx = convertLineToDiff3LineIdx( line ); int wrapLine = convertDiff3LineIdxToLine(d3LIdx); // First wrap line belonging to this d3LIdx while ( wrapLine < line ) { d3LPos += d->m_diff3WrapLineVector[wrapLine].wrapLineLength; ++wrapLine; } } else { d3LPos = pos; d3LIdx = line; } } void DiffTextWindow::setSelection( int firstLine, int startPos, int lastLine, int endPos, int& l, int& p ) { d->m_selection.reset(); if ( lastLine >= getNofLines() ) { lastLine = getNofLines()-1; const Diff3Line* d3l = (*d->m_pDiff3LineVector)[convertLineToDiff3LineIdx(lastLine)]; int line = -1; if ( d->m_winIdx==1 ) line = d3l->lineA; if ( d->m_winIdx==2 ) line = d3l->lineB; if ( d->m_winIdx==3 ) line = d3l->lineC; if (line>=0) endPos = d->m_pLineData[line].width( d->m_pOptions->m_tabSize); } if ( d->m_bWordWrap && d->m_pDiff3LineVector!=0 ) { QString s1 = d->getString(firstLine); int firstWrapLine = convertDiff3LineIdxToLine(firstLine); int wrapStartPos = startPos; while ( wrapStartPos > d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength ) { wrapStartPos -= d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength; s1 = s1.mid(d->m_diff3WrapLineVector[firstWrapLine].wrapLineLength); ++firstWrapLine; } QString s2 = d->getString(lastLine); int lastWrapLine = convertDiff3LineIdxToLine(lastLine); int wrapEndPos = endPos; while ( wrapEndPos > d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength ) { wrapEndPos -= d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength; s2 = s2.mid(d->m_diff3WrapLineVector[lastWrapLine].wrapLineLength); ++lastWrapLine; } d->m_selection.start( firstWrapLine, convertToPosOnScreen( s1, wrapStartPos, d->m_pOptions->m_tabSize ) ); d->m_selection.end( lastWrapLine, convertToPosOnScreen( s2, wrapEndPos, d->m_pOptions->m_tabSize ) ); l=firstWrapLine; p=wrapStartPos; } else { d->m_selection.start( firstLine, convertToPosOnScreen( d->getString(firstLine), startPos, d->m_pOptions->m_tabSize ) ); d->m_selection.end( lastLine, convertToPosOnScreen( d->getString(lastLine), endPos, d->m_pOptions->m_tabSize ) ); l=firstLine; p=startPos; } update(); } int DiffTextWindowData::convertLineOnScreenToLineInSource( int lineOnScreen, e_CoordType coordType, bool bFirstLine ) { int line=-1; if (lineOnScreen>=0) { if (coordType==eWrapCoords) return lineOnScreen; int d3lIdx = m_pDiffTextWindow->convertLineToDiff3LineIdx( lineOnScreen ); if ( !bFirstLine && d3lIdx >= (int)m_pDiff3LineVector->size() ) d3lIdx = m_pDiff3LineVector->size()-1; if (coordType==eD3LLineCoords) return d3lIdx; while ( line<0 && d3lIdx<(int)m_pDiff3LineVector->size() && d3lIdx>=0 ) { const Diff3Line* d3l = (*m_pDiff3LineVector)[d3lIdx]; if ( m_winIdx==1 ) line = d3l->lineA; if ( m_winIdx==2 ) line = d3l->lineB; if ( m_winIdx==3 ) line = d3l->lineC; if ( bFirstLine ) ++d3lIdx; else --d3lIdx; } if (coordType==eFileCoords) return line; } return line; } void DiffTextWindow::getSelectionRange( int* pFirstLine, int* pLastLine, e_CoordType coordType ) { if (pFirstLine) *pFirstLine = d->convertLineOnScreenToLineInSource( d->m_selection.beginLine(), coordType, true ); if (pLastLine) *pLastLine = d->convertLineOnScreenToLineInSource( d->m_selection.endLine(), coordType, false ); } // Returns the number of wrapped lines // if pWrappedLines != 0 then the stringlist will contain the wrapped lines. int wordWrap( const QString& origLine, int nofColumns, Diff3WrapLine* pDiff3WrapLine ) { if (nofColumns<=0) nofColumns = 1; int nofNeededLines = 0; int length = origLine.length(); if (length==0) { nofNeededLines = 1; if( pDiff3WrapLine ) { pDiff3WrapLine->wrapLineOffset=0; pDiff3WrapLine->wrapLineLength=0; } } else { int pos = 0; while ( pos < length ) { int wrapPos = pos + nofColumns; if ( length-pos <= nofColumns ) { wrapPos = length; } else { int wsPos = max2( origLine.lastIndexOf( ' ', wrapPos ), origLine.lastIndexOf( '\t', wrapPos ) ); if ( wsPos > pos ) { // Wrap line at wsPos wrapPos = wsPos; } } if ( pDiff3WrapLine ) { pDiff3WrapLine->wrapLineOffset = pos; pDiff3WrapLine->wrapLineLength = wrapPos-pos; ++pDiff3WrapLine; } pos = wrapPos; ++nofNeededLines; } } return nofNeededLines; } void DiffTextWindow::convertSelectionToD3LCoords() { if ( d->m_pDiff3LineVector==0 || ! d->m_bPaintingAllowed || !isVisible() || d->m_selection.isEmpty() ) { return; } // convert the d->m_selection to unwrapped coordinates: Later restore to new coords int firstD3LIdx, firstD3LPos; QString s = d->getLineString( d->m_selection.beginLine() ); int firstPosInText = convertToPosInText( s, d->m_selection.beginPos(), d->m_pOptions->m_tabSize ); convertLineCoordsToD3LCoords( d->m_selection.beginLine(), firstPosInText, firstD3LIdx, firstD3LPos ); int lastD3LIdx, lastD3LPos; s = d->getLineString( d->m_selection.endLine() ); int lastPosInText = convertToPosInText( s, d->m_selection.endPos(), d->m_pOptions->m_tabSize ); convertLineCoordsToD3LCoords( d->m_selection.endLine(), lastPosInText, lastD3LIdx, lastD3LPos ); //d->m_selection.reset(); d->m_selection.start( firstD3LIdx, firstD3LPos ); d->m_selection.end( lastD3LIdx, lastD3LPos ); } void DiffTextWindow::recalcWordWrap( bool bWordWrap, int wrapLineVectorSize, int nofVisibleColumns ) { if ( d->m_pDiff3LineVector==0 || ! d->m_bPaintingAllowed || !isVisible() ) { d->m_bWordWrap = bWordWrap; if (!bWordWrap) d->m_diff3WrapLineVector.resize( 0 ); return; } d->m_bWordWrap = bWordWrap; if ( bWordWrap ) { d->m_lineNumberWidth = d->m_pOptions->m_bShowLineNumbers ? (int)log10((double)qMax(d->m_size,1))+1 : 0; d->m_diff3WrapLineVector.resize( wrapLineVectorSize ); if (nofVisibleColumns<0) nofVisibleColumns = getNofVisibleColumns(); else nofVisibleColumns-= d->leftInfoWidth(); int i; int wrapLineIdx = 0; int size = d->m_pDiff3LineVector->size(); for( i=0; igetString( i ); int linesNeeded = wordWrap( s, nofVisibleColumns, wrapLineVectorSize==0 ? 0 : &d->m_diff3WrapLineVector[wrapLineIdx] ); Diff3Line& d3l = *(*d->m_pDiff3LineVector)[i]; if ( d3l.linesNeededForDisplay0 ) { int j; for( j=0; jm_diff3WrapLineVector[wrapLineIdx]; d3wl.diff3LineIndex = i; d3wl.pD3L = (*d->m_pDiff3LineVector)[i]; if ( j>=linesNeeded ) { d3wl.wrapLineOffset=0; d3wl.wrapLineLength=0; } } } } if ( wrapLineVectorSize>0 ) { d->m_firstLine = min2( d->m_firstLine, wrapLineVectorSize-1 ); d->m_firstColumn = 0; d->m_pDiffTextWindowFrame->setFirstLine( d->m_firstLine ); } } else { d->m_diff3WrapLineVector.resize( 0 ); } if ( !d->m_selection.isEmpty() && ( !d->m_bWordWrap || wrapLineVectorSize>0 ) ) { // Assume unwrapped coordinates //( Why? ->Conversion to unwrapped coords happened a few lines above in this method. // Also see KDiff3App::recalcWordWrap() on the role of wrapLineVectorSize) // Wrap them now. // convert the d->m_selection to unwrapped coordinates. int firstLine, firstPos; convertD3LCoordsToLineCoords( d->m_selection.beginLine(), d->m_selection.beginPos(), firstLine, firstPos ); int lastLine, lastPos; convertD3LCoordsToLineCoords( d->m_selection.endLine(), d->m_selection.endPos(), lastLine, lastPos ); //d->m_selection.reset(); d->m_selection.start( firstLine, convertToPosOnScreen( d->getLineString( firstLine ), firstPos, d->m_pOptions->m_tabSize ) ); d->m_selection.end( lastLine, convertToPosOnScreen( d->getLineString( lastLine ),lastPos, d->m_pOptions->m_tabSize ) ); } } class DiffTextWindowFrameData { public: DiffTextWindow* m_pDiffTextWindow; QLineEdit* m_pFileSelection; QPushButton* m_pBrowseButton; Options* m_pOptions; QLabel* m_pLabel; QLabel* m_pTopLine; QLabel* m_pEncoding; QLabel* m_pLineEndStyle; QWidget* m_pTopLineWidget; int m_winIdx; }; DiffTextWindowFrame::DiffTextWindowFrame( QWidget* pParent, QStatusBar* pStatusBar, Options* pOptions, int winIdx, SourceData* psd) : QWidget( pParent ) { d = new DiffTextWindowFrameData; d->m_winIdx = winIdx; setAutoFillBackground(true); d->m_pOptions = pOptions; d->m_pTopLineWidget = new QWidget(this); d->m_pFileSelection = new QLineEdit(d->m_pTopLineWidget); d->m_pBrowseButton = new QPushButton( "...",d->m_pTopLineWidget ); d->m_pBrowseButton->setFixedWidth( 30 ); connect(d->m_pBrowseButton,SIGNAL(clicked()), this, SLOT(slotBrowseButtonClicked())); connect(d->m_pFileSelection,SIGNAL(returnPressed()), this, SLOT(slotReturnPressed())); d->m_pLabel = new QLabel("A:",d->m_pTopLineWidget); d->m_pTopLine = new QLabel(d->m_pTopLineWidget); d->m_pDiffTextWindow = 0; d->m_pDiffTextWindow = new DiffTextWindow( this, pStatusBar, pOptions, winIdx ); QVBoxLayout* pVTopLayout = new QVBoxLayout(d->m_pTopLineWidget); pVTopLayout->setMargin(2); pVTopLayout->setSpacing(0); QHBoxLayout* pHL = new QHBoxLayout(); QHBoxLayout* pHL2 = new QHBoxLayout(); pVTopLayout->addLayout(pHL); pVTopLayout->addLayout(pHL2); // Upper line: pHL->setMargin(0); pHL->setSpacing(2); pHL->addWidget( d->m_pLabel, 0 ); pHL->addWidget( d->m_pFileSelection, 1 ); pHL->addWidget( d->m_pBrowseButton, 0 ); pHL->addWidget( d->m_pTopLine, 0 ); // Lower line pHL2->setMargin(0); pHL2->setSpacing(2); pHL2->addWidget( d->m_pTopLine, 0 ); d->m_pEncoding = new EncodingLabel(i18n("Encoding:"), this, psd, pOptions); d->m_pLineEndStyle = new QLabel(i18n("Line end style:")); pHL2->addWidget(d->m_pEncoding); pHL2->addWidget(d->m_pLineEndStyle); QVBoxLayout* pVL = new QVBoxLayout( this ); pVL->setMargin(0); pVL->setSpacing(0); pVL->addWidget( d->m_pTopLineWidget, 0 ); pVL->addWidget( d->m_pDiffTextWindow, 1 ); d->m_pDiffTextWindow->installEventFilter( this ); d->m_pFileSelection->installEventFilter( this ); d->m_pBrowseButton->installEventFilter( this ); init(); } DiffTextWindowFrame::~DiffTextWindowFrame() { delete d; } void DiffTextWindowFrame::init() { DiffTextWindow* pDTW = d->m_pDiffTextWindow; if ( pDTW ) { QString s = QDir::toNativeSeparators( pDTW->d->m_filename ); d->m_pFileSelection->setText( s ); QString winId = pDTW->d->m_winIdx==1 ? ( pDTW->d->m_bTriple?"A (Base)":"A") : ( pDTW->d->m_winIdx==2 ? "B" : "C" ); d->m_pLabel->setText( winId + ":" ); d->m_pEncoding->setText( i18n("Encoding:") + " " + (pDTW->d->m_pTextCodec!=0 ? pDTW->d->m_pTextCodec->name() : QString()) ); d->m_pLineEndStyle->setText( i18n("Line end style:") + " " + (pDTW->d->m_eLineEndStyle==eLineEndStyleDos ? i18n("DOS") : i18n("Unix")) ); } } // Search for the first visible line (search loop needed when no line exist for this file.) int DiffTextWindow::calcTopLineInFile( int firstLine ) { int l=-1; for ( int i = convertLineToDiff3LineIdx(firstLine); i<(int)d->m_pDiff3LineVector->size(); ++i ) { const Diff3Line* d3l = (*d->m_pDiff3LineVector)[i]; l = d3l->getLineInFile(d->m_winIdx); if (l!=-1) break; } return l; } void DiffTextWindowFrame::setFirstLine( int firstLine ) { DiffTextWindow* pDTW = d->m_pDiffTextWindow; if ( pDTW && pDTW->d->m_pDiff3LineVector ) { QString s= i18n("Top line"); int lineNumberWidth = (int)log10((double)qMax(pDTW->d->m_size,1))+1; int l=pDTW->calcTopLineInFile(firstLine); int w = d->m_pTopLine->fontMetrics().width( s+" "+QString().fill('0',lineNumberWidth)); d->m_pTopLine->setMinimumWidth( w ); if (l==-1) s = i18n("End"); else s += " " + QString::number( l+1 ); d->m_pTopLine->setText( s ); d->m_pTopLine->repaint(); } } DiffTextWindow* DiffTextWindowFrame::getDiffTextWindow() { return d->m_pDiffTextWindow; } bool DiffTextWindowFrame::eventFilter( QObject* o, QEvent* e ) { DiffTextWindow* pDTW = d->m_pDiffTextWindow; if ( e->type()==QEvent::FocusIn || e->type()==QEvent::FocusOut ) { QColor c1 = d->m_pOptions->m_bgColor; QColor c2; if ( d->m_winIdx==1 ) c2 = d->m_pOptions->m_colorA; else if ( d->m_winIdx==2 ) c2 = d->m_pOptions->m_colorB; else if ( d->m_winIdx==3 ) c2 = d->m_pOptions->m_colorC; QPalette p = d->m_pTopLineWidget->palette(); if ( e->type()==QEvent::FocusOut ) std::swap(c1,c2); p.setColor(QPalette::Window, c2); setPalette( p ); p.setColor(QPalette::WindowText, c1); d->m_pLabel->setPalette( p ); d->m_pTopLine->setPalette( p ); d->m_pEncoding->setPalette( p ); d->m_pLineEndStyle->setPalette( p ); } if (o == d->m_pFileSelection && e->type()==QEvent::Drop) { QDropEvent* d = static_cast(e); if ( d->mimeData()->hasUrls() ) { QList lst = d->mimeData()->urls(); if ( lst.count() > 0 ) { static_cast(o)->setText( lst[0].toString() ); static_cast(o)->setFocus(); emit fileNameChanged( lst[0].toString(), pDTW->d->m_winIdx ); return true; } } } return false; } void DiffTextWindowFrame::slotReturnPressed() { DiffTextWindow* pDTW = d->m_pDiffTextWindow; if ( pDTW->d->m_filename != d->m_pFileSelection->text() ) { emit fileNameChanged( d->m_pFileSelection->text(), pDTW->d->m_winIdx ); } } void DiffTextWindowFrame::slotBrowseButtonClicked() { QString current = d->m_pFileSelection->text(); KUrl newURL = KFileDialog::getOpenUrl( current, 0, this); if ( !newURL.isEmpty() ) { DiffTextWindow* pDTW = d->m_pDiffTextWindow; emit fileNameChanged( newURL.url(), pDTW->d->m_winIdx ); } } void DiffTextWindowFrame::sendEncodingChangedSignal(QTextCodec* c) { emit encodingChanged(c); } EncodingLabel::EncodingLabel( const QString & text, DiffTextWindowFrame* pDiffTextWindowFrame, SourceData * pSD, Options* pOptions) : QLabel(text) { m_pDiffTextWindowFrame = pDiffTextWindowFrame; m_pOptions = pOptions; m_pSourceData = pSD; m_pContextEncodingMenu = 0; setMouseTracking(true); } void EncodingLabel::mouseMoveEvent(QMouseEvent *) { // When there is no data to display or it came from clipboard, // we will be use UTF-8 only, // in that case there is no possibility to change the encoding in the SourceData // so, we should hide the HandCursor and display usual ArrowCursor if (m_pSourceData->isFromBuffer()||m_pSourceData->isEmpty()) setCursor(QCursor(Qt::ArrowCursor)); else setCursor(QCursor(Qt::PointingHandCursor)); } void EncodingLabel::mousePressEvent(QMouseEvent *) { if (!(m_pSourceData->isFromBuffer()||m_pSourceData->isEmpty())) { delete m_pContextEncodingMenu; m_pContextEncodingMenu = new QMenu(this); QMenu* pContextEncodingSubMenu = new QMenu(m_pContextEncodingMenu); int currentTextCodecEnum = m_pSourceData->getEncoding()->mibEnum(); // the codec that will be checked in the context menu QList mibs = QTextCodec::availableMibs(); QList codecEnumList; // Adding "main" encodings insertCodec( i18n("Unicode, 8 bit"), QTextCodec::codecForName("UTF-8"), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum); insertCodec( "", QTextCodec::codecForName("System"), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum); // Adding recent encodings if (m_pOptions!=0) { QStringList& recentEncodings = m_pOptions->m_recentEncodings; foreach(QString s, recentEncodings) { insertCodec("", QTextCodec::codecForName(s.toAscii()), codecEnumList, m_pContextEncodingMenu, currentTextCodecEnum); } } // Submenu to add the rest of available encodings pContextEncodingSubMenu->setTitle(i18n("Other")); foreach(int i, mibs) { QTextCodec* c = QTextCodec::codecForMib(i); if ( c!=0 ) insertCodec("", c, codecEnumList, pContextEncodingSubMenu, currentTextCodecEnum); } m_pContextEncodingMenu->addMenu(pContextEncodingSubMenu); m_pContextEncodingMenu->exec(QCursor::pos()); } } void EncodingLabel::insertCodec( const QString& visibleCodecName, QTextCodec* pCodec, QList &codecEnumList, QMenu* pMenu, int currentTextCodecEnum) { int CodecMIBEnum = pCodec->mibEnum(); if ( pCodec!=0 && !codecEnumList.contains(CodecMIBEnum) ) { QAction* pAction = new QAction( pMenu ); // menu takes ownership, so deleting the menu deletes the action too. pAction->setText( visibleCodecName.isEmpty() ? QString(pCodec->name()) : visibleCodecName+" ("+pCodec->name()+")" ); pAction->setData(CodecMIBEnum); pAction->setCheckable(true); if (currentTextCodecEnum==CodecMIBEnum) pAction->setChecked(true); pMenu->addAction(pAction); connect(pAction, SIGNAL(triggered()), this, SLOT(slotEncodingChanged())); codecEnumList.append(CodecMIBEnum); } } void EncodingLabel::slotEncodingChanged() { QAction *pAction = qobject_cast(sender()); if (pAction) { QTextCodec * pCodec = QTextCodec::codecForMib(pAction->data().toInt()); if (pCodec!=0) { QString s( pCodec->name() ); QStringList& recentEncodings = m_pOptions->m_recentEncodings; if ( !recentEncodings.contains(s) && s!="UTF-8" && s!="System" ) { int itemsToRemove = recentEncodings.size() - m_maxRecentEncodings + 1; for (int i=0; isendEncodingChangedSignal(pCodec); } } kdiff3-0.9.97/src-QT4/kdiff3_os2.ico0000644000175100001440000000236012000244602016131 0ustar joachimusersBA(xCI @CI BA(CI  CIp DODDDOOOOOOOOOODDDOOOOODOD""""DOODOOOOOOOODOOOOODOODDDOOOODOOOODDOkdiff3-0.9.97/src-QT4/kdiff3_shell.h0000644000175100001440000000474011626145614016236 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2007 Joachim Eibl * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef _KDIFF3SHELL_H_ #define _KDIFF3SHELL_H_ #include #include #include class KToggleAction; /** * This is the application "Shell". It has a menubar, toolbar, and * statusbar but relies on the "Part" to do all the real work. * * @short Application Shell * @author Joachim Eibl */ class KDiff3Shell : public KParts::MainWindow { Q_OBJECT public: /** * Default Constructor */ KDiff3Shell(bool bCompleteInit=true); /** * Default Destructor */ virtual ~KDiff3Shell(); bool queryClose(); bool queryExit(); virtual void closeEvent(QCloseEvent*e); private slots: void optionsShowToolbar(); void optionsShowStatusbar(); void optionsConfigureKeys(); void optionsConfigureToolbars(); void applyNewToolbarConfig(); void slotNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 ); private: KParts::ReadWritePart *m_part; KToggleAction *m_toolbarAction; KToggleAction *m_statusbarAction; bool m_bUnderConstruction; }; #endif // _KDIFF3_H_ kdiff3-0.9.97/src-QT4/version.h0000644000175100001440000000005012000275742015345 0ustar joachimusers#undef VERSION #define VERSION "0.9.97" kdiff3-0.9.97/src-QT4/directorymergewindow.cpp0000644000175100001440000035665612000244602020510 0ustar joachimusers/*************************************************************************** directorymergewindow.cpp ----------------- begin : Sat Oct 19 2002 copyright : (C) 2002-2011 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "stable.h" #include "directorymergewindow.h" #include "options.h" #include "progress.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include #include "guiutils.h" static bool conflictingFileTypes(MergeFileInfos& mfi); static QPixmap getOnePixmap( e_Age eAge, bool bLink, bool bDir ); class StatusInfo : public QDialog { QTextEdit* m_pTextEdit; public: StatusInfo(QWidget* pParent) : QDialog( pParent ) { QVBoxLayout* pVLayout = new QVBoxLayout( this ); m_pTextEdit = new QTextEdit(this); pVLayout->addWidget( m_pTextEdit ); setObjectName("StatusInfo"); setWindowFlags(Qt::Dialog); m_pTextEdit->setWordWrapMode(QTextOption::NoWrap); m_pTextEdit->setReadOnly(true); QPushButton* pClose = new QPushButton(tr("Close")); connect( pClose, SIGNAL(clicked()), this, SLOT(accept())); pVLayout->addWidget(pClose); } bool isEmpty(){ return m_pTextEdit->toPlainText().isEmpty(); } void addText(const QString& s ) { m_pTextEdit->append(s); } void clear() { m_pTextEdit->clear(); } void setVisible(bool bVisible) { if (bVisible) { m_pTextEdit->moveCursor ( QTextCursor::End ); m_pTextEdit->moveCursor ( QTextCursor::StartOfLine ); m_pTextEdit->ensureCursorVisible(); } QDialog::setVisible(bVisible); if ( bVisible ) setWindowState( windowState() | Qt::WindowMaximized ); } }; class TempRemover { public: TempRemover( const QString& origName, FileAccess& fa ); ~TempRemover(); QString name() { return m_name; } bool success() { return m_bSuccess; } private: QString m_name; bool m_bTemp; bool m_bSuccess; }; TempRemover::TempRemover(const QString& origName, FileAccess& fa) { if ( fa.isLocal() ) { m_name = origName; m_bTemp = false; m_bSuccess = true; } else { m_name = FileAccess::tempFileName(); m_bSuccess = fa.copyFile( m_name ); m_bTemp = m_bSuccess; } } TempRemover::~TempRemover() { if ( m_bTemp && ! m_name.isEmpty() ) FileAccess::removeTempFile(m_name); } enum Columns { s_NameCol = 0, s_ACol = 1, s_BCol = 2, s_CCol = 3, s_OpCol = 4, s_OpStatusCol = 5, s_UnsolvedCol = 6, // Nr of unsolved conflicts (for 3 input files) s_SolvedCol = 7, // Nr of auto-solvable conflicts (for 3 input files) s_NonWhiteCol = 8, // Nr of nonwhite deltas (for 2 input files) s_WhiteCol = 9 // Nr of white deltas (for 2 input files) }; enum e_OperationStatus { eOpStatusNone, eOpStatusDone, eOpStatusError, eOpStatusSkipped, eOpStatusNotSaved, eOpStatusInProgress, eOpStatusToDo }; class MergeFileInfos { public: MergeFileInfos() { m_bEqualAB=false; m_bEqualAC=false; m_bEqualBC=false; m_pParent=0; m_bOperationComplete=false; m_bSimOpComplete = false; m_eMergeOperation=eNoOperation; m_eOpStatus = eOpStatusNone; m_ageA = eNotThere; m_ageB=eNotThere; m_ageC=eNotThere; m_bConflictingAges=false; m_pFileInfoA = 0; m_pFileInfoB = 0; m_pFileInfoC = 0; } ~MergeFileInfos() { //for( int i=0; i( const MergeFileInfos& ); QString subPath() const { return m_pFileInfoA && m_pFileInfoA->exists() ? m_pFileInfoA->filePath() : m_pFileInfoB && m_pFileInfoB->exists() ? m_pFileInfoB->filePath() : m_pFileInfoC && m_pFileInfoC->exists() ? m_pFileInfoC->filePath() : QString(""); } QString fileName() const { return m_pFileInfoA && m_pFileInfoA->exists() ? m_pFileInfoA->fileName() : m_pFileInfoB && m_pFileInfoB->exists() ? m_pFileInfoB->fileName() : m_pFileInfoC && m_pFileInfoC->exists() ? m_pFileInfoC->fileName() : QString(""); } bool dirA() const { return m_pFileInfoA ? m_pFileInfoA->isDir() : false; } bool dirB() const { return m_pFileInfoB ? m_pFileInfoB->isDir() : false; } bool dirC() const { return m_pFileInfoC ? m_pFileInfoC->isDir() : false; } bool isLinkA() const { return m_pFileInfoA ? m_pFileInfoA->isSymLink() : false; } bool isLinkB() const { return m_pFileInfoB ? m_pFileInfoB->isSymLink() : false; } bool isLinkC() const { return m_pFileInfoC ? m_pFileInfoC->isSymLink() : false; } bool existsInA() const { return m_pFileInfoA!=0; } bool existsInB() const { return m_pFileInfoB!=0; } bool existsInC() const { return m_pFileInfoC!=0; } MergeFileInfos* m_pParent; FileAccess* m_pFileInfoA; FileAccess* m_pFileInfoB; FileAccess* m_pFileInfoC; TotalDiffStatus m_totalDiffStatus; QList m_children; e_MergeOperation m_eMergeOperation : 5; e_OperationStatus m_eOpStatus : 4; e_Age m_ageA : 3; e_Age m_ageB : 3; e_Age m_ageC : 3; bool m_bOperationComplete : 1; bool m_bSimOpComplete : 1; bool m_bEqualAB : 1; bool m_bEqualAC : 1; bool m_bEqualBC : 1; bool m_bConflictingAges : 1; // Equal age but files are not! }; class DirectoryMergeWindow::Data : public QAbstractItemModel { public: DirectoryMergeWindow* q; Data( DirectoryMergeWindow* pDMW ) { q = pDMW; m_pOptions = 0; m_pIconLoader = 0; m_pDirectoryMergeInfo = 0; m_bSimulatedMergeStarted=false; m_bRealMergeStarted=false; m_bError = false; m_bSyncMode = false; m_pStatusInfo = new StatusInfo(q); m_pStatusInfo->hide(); m_bScanning = false; m_bCaseSensitive = true; m_bUnfoldSubdirs = false; m_bSkipDirStatus = false; m_pRoot = new MergeFileInfos; } ~Data() { delete m_pRoot; } // Implement QAbstractItemModel QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const; //Qt::ItemFlags flags ( const QModelIndex & index ) const QModelIndex parent ( const QModelIndex & index ) const { MergeFileInfos* pMFI = getMFI( index ); if ( pMFI == 0 || pMFI==m_pRoot || pMFI->m_pParent==m_pRoot ) return QModelIndex(); else { MergeFileInfos* pParentsParent = pMFI->m_pParent->m_pParent; return createIndex( pParentsParent->m_children.indexOf(pMFI->m_pParent), 0, pMFI->m_pParent ); } } int rowCount ( const QModelIndex & parent = QModelIndex() ) const { MergeFileInfos* pParentMFI = getMFI( parent ); if ( pParentMFI!=0 ) return pParentMFI->m_children.count(); else return m_pRoot->m_children.count(); } int columnCount ( const QModelIndex & /*parent*/ ) const { return 10; } QModelIndex index ( int row, int column, const QModelIndex & parent ) const { MergeFileInfos* pParentMFI = getMFI( parent ); if ( pParentMFI == 0 && row < m_pRoot->m_children.count() ) return createIndex( row, column, m_pRoot->m_children[row] ); else if ( pParentMFI != 0 && row < pParentMFI->m_children.count() ) return createIndex( row, column, pParentMFI->m_children[row] ); else return QModelIndex(); } QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const; void sort( int column, Qt::SortOrder order ); // private data and helper methods MergeFileInfos* getMFI( const QModelIndex& mi ) const { if ( mi.isValid() ) return (MergeFileInfos*)mi.internalPointer(); else return 0; } MergeFileInfos* m_pRoot; QString fullNameA( const MergeFileInfos& mfi ) { return mfi.existsInA() ? mfi.m_pFileInfoA->absoluteFilePath() : m_dirA.absoluteFilePath() + "/" + mfi.subPath(); } QString fullNameB( const MergeFileInfos& mfi ) { return mfi.existsInB() ? mfi.m_pFileInfoB->absoluteFilePath() : m_dirB.absoluteFilePath() + "/" + mfi.subPath(); } QString fullNameC( const MergeFileInfos& mfi ) { return mfi.existsInC() ? mfi.m_pFileInfoC->absoluteFilePath() : m_dirC.absoluteFilePath() + "/" + mfi.subPath(); } QString fullNameDest( const MergeFileInfos& mfi ) { if ( m_dirDestInternal.prettyAbsPath() == m_dirC.prettyAbsPath() ) return fullNameC(mfi); else if ( m_dirDestInternal.prettyAbsPath() == m_dirB.prettyAbsPath() ) return fullNameB(mfi); else return m_dirDestInternal.absoluteFilePath() + "/" + mfi.subPath(); } FileAccess m_dirA; FileAccess m_dirB; FileAccess m_dirC; FileAccess m_dirDest; FileAccess m_dirDestInternal; Options* m_pOptions; void calcDirStatus( bool bThreeDirs, const QModelIndex& mi, int& nofFiles, int& nofDirs, int& nofEqualFiles, int& nofManualMerges ); void mergeContinue( bool bStart, bool bVerbose ); void prepareListView(ProgressProxy& pp); void calcSuggestedOperation( const QModelIndex& mi, e_MergeOperation eDefaultOperation ); void setAllMergeOperations( e_MergeOperation eDefaultOperation ); friend class MergeFileInfos; bool canContinue(); QModelIndex treeIterator( QModelIndex mi, bool bVisitChildren=true, bool bFindInvisible=false ); void prepareMergeStart( const QModelIndex& miBegin, const QModelIndex& miEnd, bool bVerbose ); bool executeMergeOperation( MergeFileInfos& mfi, bool& bSingleFileMerge ); void scanDirectory( const QString& dirName, t_DirectoryList& dirList ); void scanLocalDirectory( const QString& dirName, t_DirectoryList& dirList ); bool fastFileComparison( FileAccess& fi1, FileAccess& fi2, bool& bError, QString& status ); void compareFilesAndCalcAges( MergeFileInfos& mfi ); void setMergeOperation( const QModelIndex& mi, e_MergeOperation eMergeOp, bool bRecursive = true ); bool isDir( const QModelIndex& mi ); QString getFileName( const QModelIndex& mi ); bool copyFLD( const QString& srcName, const QString& destName ); bool deleteFLD( const QString& name, bool bCreateBackup ); bool makeDir( const QString& name, bool bQuiet=false ); bool renameFLD( const QString& srcName, const QString& destName ); bool mergeFLD( const QString& nameA,const QString& nameB,const QString& nameC, const QString& nameDest, bool& bSingleFileMerge ); t_DirectoryList m_dirListA; t_DirectoryList m_dirListB; t_DirectoryList m_dirListC; QString m_dirMergeStateFilename; class FileKey { public: const FileAccess* m_pFA; FileKey( const FileAccess& fa ) : m_pFA( &fa ){} int getParents( const FileAccess* pFA, const FileAccess* v[] ) const { int s = 0; for(s=0; pFA->parent() != 0 ; pFA=pFA->parent(), ++s ) v[s] = pFA ; return s; } // This is essentially the same as // int r = filePath().compare( fa.filePath() ) // if ( r<0 ) return true; // if ( r==0 ) return m_col < fa.m_col; // return false; bool operator< ( const FileKey& fk ) const { const FileAccess* v1[100]; const FileAccess* v2[100]; int v1Size = getParents(m_pFA, v1); int v2Size = getParents(fk.m_pFA, v2); for( int i=0; ifileName().compare( v2[v2Size-i-1]->fileName() ); if ( r < 0 ) return true; else if ( r > 0 ) return false; } if ( v1Size < v2Size ) return true; return false; } }; typedef QMap t_fileMergeMap; t_fileMergeMap m_fileMergeMap; bool m_bFollowDirLinks; bool m_bFollowFileLinks; bool m_bSimulatedMergeStarted; bool m_bRealMergeStarted; bool m_bError; bool m_bSyncMode; bool m_bDirectoryMerge; // if true, then merge is the default operation, otherwise it's diff. bool m_bCaseSensitive; bool m_bUnfoldSubdirs; bool m_bSkipDirStatus; bool m_bScanning; // true while in init() KIconLoader* m_pIconLoader; DirectoryMergeInfo* m_pDirectoryMergeInfo; StatusInfo* m_pStatusInfo; typedef std::list< QModelIndex > MergeItemList; // linked list MergeItemList m_mergeItemList; MergeItemList::iterator m_currentIndexForOperation; QModelIndex m_selection1Index; QModelIndex m_selection2Index; QModelIndex m_selection3Index; void selectItemAndColumn( const QModelIndex& mi, bool bContextMenu); friend class DirMergeItem; KAction* m_pDirStartOperation; KAction* m_pDirRunOperationForCurrentItem; KAction* m_pDirCompareCurrent; KAction* m_pDirMergeCurrent; KAction* m_pDirRescan; KAction* m_pDirChooseAEverywhere; KAction* m_pDirChooseBEverywhere; KAction* m_pDirChooseCEverywhere; KAction* m_pDirAutoChoiceEverywhere; KAction* m_pDirDoNothingEverywhere; KAction* m_pDirFoldAll; KAction* m_pDirUnfoldAll; KToggleAction* m_pDirShowIdenticalFiles; KToggleAction* m_pDirShowDifferentFiles; KToggleAction* m_pDirShowFilesOnlyInA; KToggleAction* m_pDirShowFilesOnlyInB; KToggleAction* m_pDirShowFilesOnlyInC; KToggleAction* m_pDirSynchronizeDirectories; KToggleAction* m_pDirChooseNewerFiles; KAction* m_pDirCompareExplicit; KAction* m_pDirMergeExplicit; KAction* m_pDirCurrentDoNothing; KAction* m_pDirCurrentChooseA; KAction* m_pDirCurrentChooseB; KAction* m_pDirCurrentChooseC; KAction* m_pDirCurrentMerge; KAction* m_pDirCurrentDelete; KAction* m_pDirCurrentSyncDoNothing; KAction* m_pDirCurrentSyncCopyAToB; KAction* m_pDirCurrentSyncCopyBToA; KAction* m_pDirCurrentSyncDeleteA; KAction* m_pDirCurrentSyncDeleteB; KAction* m_pDirCurrentSyncDeleteAAndB; KAction* m_pDirCurrentSyncMergeToA; KAction* m_pDirCurrentSyncMergeToB; KAction* m_pDirCurrentSyncMergeToAAndB; KAction* m_pDirSaveMergeState; KAction* m_pDirLoadMergeState; bool init( FileAccess& dirA, FileAccess& dirB, FileAccess& dirC, FileAccess& dirDest, bool bDirectoryMerge, bool bReload ); void setOpStatus( const QModelIndex& mi, e_OperationStatus eOpStatus ) { if ( MergeFileInfos* pMFI = getMFI(mi) ) { pMFI->m_eOpStatus = eOpStatus; emit dataChanged( mi, mi ); } } }; QVariant DirectoryMergeWindow::Data::data( const QModelIndex & index, int role ) const { MergeFileInfos* pMFI = getMFI( index ); if ( pMFI ) { if ( role == Qt::DisplayRole ) { switch ( index.column() ) { case s_NameCol: return QFileInfo(pMFI->subPath()).fileName(); case s_ACol: return "A"; case s_BCol: return "B"; case s_CCol: return "C"; //case s_OpCol: return i18n("Operation"); //case s_OpStatusCol: return i18n("Status"); case s_UnsolvedCol: return i18n("Unsolved"); case s_SolvedCol: return i18n("Solved"); case s_NonWhiteCol: return i18n("Nonwhite"); case s_WhiteCol: return i18n("White"); //default : return QVariant(); } if ( s_OpCol == index.column() ) { bool bDir = pMFI->dirA() || pMFI->dirB() || pMFI->dirC(); switch( pMFI->m_eMergeOperation ) { case eNoOperation: return ""; break; case eCopyAToB: return i18n("Copy A to B"); break; case eCopyBToA: return i18n("Copy B to A"); break; case eDeleteA: return i18n("Delete A"); break; case eDeleteB: return i18n("Delete B"); break; case eDeleteAB: return i18n("Delete A & B"); break; case eMergeToA: return i18n("Merge to A"); break; case eMergeToB: return i18n("Merge to B"); break; case eMergeToAB: return i18n("Merge to A & B"); break; case eCopyAToDest: return "A"; break; case eCopyBToDest: return "B"; break; case eCopyCToDest: return "C"; break; case eDeleteFromDest: return i18n("Delete (if exists)"); break; case eMergeABCToDest: return bDir ? i18n("Merge") : i18n("Merge (manual)"); break; case eMergeABToDest: return bDir ? i18n("Merge") : i18n("Merge (manual)"); break; case eConflictingFileTypes: return i18n("Error: Conflicting File Types"); break; case eChangedAndDeleted: return i18n("Error: Changed and Deleted"); break; case eConflictingAges: return i18n("Error: Dates are equal but files are not."); break; default: assert(false); break; } } if ( s_OpStatusCol == index.column() ) { switch( pMFI->m_eOpStatus ) { case eOpStatusNone: return ""; case eOpStatusDone: return i18n("Done"); case eOpStatusError: return i18n("Error"); case eOpStatusSkipped: return i18n("Skipped."); case eOpStatusNotSaved:return i18n("Not saved."); case eOpStatusInProgress: return i18n("In progress..."); case eOpStatusToDo: return i18n("To do."); } } } else if ( role == Qt::DecorationRole ) { if ( s_NameCol == index.column() ) { return getOnePixmap( eAgeEnd, pMFI->isLinkA() || pMFI->isLinkB() || pMFI->isLinkC(), pMFI->dirA() || pMFI->dirB() || pMFI->dirC() ); } if ( s_ACol == index.column() ) { return getOnePixmap( pMFI->m_ageA, pMFI->isLinkA(), pMFI->dirA() ); } if ( s_BCol == index.column() ) { return getOnePixmap( pMFI->m_ageB, pMFI->isLinkB(), pMFI->dirB() ); } if ( s_CCol == index.column() ) { return getOnePixmap( pMFI->m_ageC, pMFI->isLinkC(), pMFI->dirC() ); } } else if ( role == Qt::TextAlignmentRole ) { if ( s_UnsolvedCol == index.column() || s_SolvedCol == index.column() || s_NonWhiteCol == index.column() || s_WhiteCol == index.column() ) return Qt::AlignRight; } } return QVariant(); } QVariant DirectoryMergeWindow::Data::headerData ( int section, Qt::Orientation orientation, int role ) const { if ( orientation == Qt::Horizontal && section>=0 && sectiond) { } void paint( QPainter * p, const QStyleOptionViewItem & option, const QModelIndex & index ) const { int column = index.column(); if (column == s_ACol || column == s_BCol || column == s_CCol ) { QVariant value = index.data( Qt::DecorationRole ); QPixmap icon; if ( value.isValid() ) { if (value.type() == QVariant::Icon) { icon = qvariant_cast(value).pixmap(16,16); //icon = qvariant_cast(value); //decorationRect = QRect(QPoint(0, 0), icon.actualSize(option.decorationSize, iconMode, iconState)); } else { icon = qvariant_cast(value); //decorationRect = QRect(QPoint(0, 0), option.decorationSize).intersected(pixmap.rect()); } } int x = option.rect.left(); int y = option.rect.top(); //QPixmap icon = value.value(); //pixmap(column); if ( !icon.isNull() ) { int yOffset = (sizeHint(option,index).height() - icon.height()) / 2; p->drawPixmap( x+2, y+yOffset, icon ); int i = index==d->m_selection1Index ? 1 : index==d->m_selection2Index ? 2 : index==d->m_selection3Index ? 3 : 0 ; if ( i!=0 ) { Options* pOpts = d->m_pOptions; QColor c ( i==1 ? pOpts->m_colorA : i==2 ? pOpts->m_colorB : pOpts->m_colorC ); p->setPen( c );// highlight() ); p->drawRect( x+2, y+yOffset, icon.width(), icon.height()); p->setPen( QPen( c, 0, Qt::DotLine) ); p->drawRect( x+1, y+yOffset-1, icon.width()+2, icon.height()+2); p->setPen( Qt::white ); QString s( QChar('A'+i-1) ); p->drawText( x+2 + (icon.width() - p->fontMetrics().width(s))/2, y+yOffset + (icon.height() + p->fontMetrics().ascent())/2-1, s ); } else { p->setPen( m_pDMW->palette().background().color() ); p->drawRect( x+1, y+yOffset-1, icon.width()+2, icon.height()+2); } return; } } QStyleOptionViewItem option2 = option; if ( column>=s_UnsolvedCol ) { option2.displayAlignment = Qt::AlignRight; } QItemDelegate::paint( p, option2, index ); } QSize sizeHint( const QStyleOptionViewItem & option, const QModelIndex & index ) const { QSize sz = QItemDelegate::sizeHint( option, index ); return sz.expandedTo( QSize(0,18) ); } }; DirectoryMergeWindow::DirectoryMergeWindow( QWidget* pParent, Options* pOptions, KIconLoader* pIconLoader ) : QTreeView( pParent ) { d = new Data(this); setModel( d ); setItemDelegate( new DirMergeItemDelegate(this) ); connect( this, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(onDoubleClick(const QModelIndex&))); connect( this, SIGNAL(expanded(const QModelIndex&)), this, SLOT(onExpanded())); d->m_pOptions = pOptions; d->m_pIconLoader = pIconLoader; setSortingEnabled(true); } DirectoryMergeWindow::~DirectoryMergeWindow() { delete d; } QString DirectoryMergeWindow::getDirNameA(){ return d->m_dirA.prettyAbsPath(); } QString DirectoryMergeWindow::getDirNameB(){ return d->m_dirB.prettyAbsPath(); } QString DirectoryMergeWindow::getDirNameC(){ return d->m_dirC.prettyAbsPath(); } QString DirectoryMergeWindow::getDirNameDest(){ return d->m_dirDest.prettyAbsPath(); } void DirectoryMergeWindow::setDirectoryMergeInfo(DirectoryMergeInfo* p){ d->m_pDirectoryMergeInfo=p; } bool DirectoryMergeWindow::isDirectoryMergeInProgress() { return d->m_bRealMergeStarted; } bool DirectoryMergeWindow::isSyncMode() { return d->m_bSyncMode; } bool DirectoryMergeWindow::isScanning() { return d->m_bScanning; } bool DirectoryMergeWindow::Data::fastFileComparison( FileAccess& fi1, FileAccess& fi2, bool& bError, QString& status ) { ProgressProxy pp; status = ""; bool bEqual = false; bError = true; if ( !m_bFollowFileLinks ) { if ( fi1.isSymLink() != fi2.isSymLink() ) { status = i18n("Mix of links and normal files."); return bEqual; } else if ( fi1.isSymLink() && fi2.isSymLink() ) { bError = false; bEqual = fi1.readLink() == fi2.readLink(); status = i18n("Link: "); return bEqual; } } if ( fi1.size()!=fi2.size() ) { bEqual = false; status = i18n("Size. "); return bEqual; } else if ( m_pOptions->m_bDmTrustSize ) { bEqual = true; return bEqual; } if ( m_pOptions->m_bDmTrustDate ) { bEqual = ( fi1.lastModified() == fi2.lastModified() && fi1.size()==fi2.size() ); bError = false; status = i18n("Date & Size: "); return bEqual; } if ( m_pOptions->m_bDmTrustDateFallbackToBinary ) { bEqual = ( fi1.lastModified() == fi2.lastModified() && fi1.size()==fi2.size() ); if ( bEqual ) { bError = false; status = i18n("Date & Size: "); return bEqual; } } QString fileName1 = fi1.absoluteFilePath(); QString fileName2 = fi2.absoluteFilePath(); TempRemover tr1( fileName1, fi1 ); if ( !tr1.success() ) { status = i18n("Creating temp copy of %1 failed.",fileName1); return bEqual; } TempRemover tr2( fileName2, fi2 ); if ( !tr2.success() ) { status = i18n("Creating temp copy of %1 failed.",fileName2); return bEqual; } std::vector buf1(100000); std::vector buf2(buf1.size()); QFile file1( tr1.name() ); if ( ! file1.open(QIODevice::ReadOnly) ) { status = i18n("Opening %1 failed.",fileName1); return bEqual; } QFile file2( tr2.name() ); if ( ! file2.open(QIODevice::ReadOnly) ) { status = i18n("Opening %1 failed.",fileName2); return bEqual; } pp.setInformation( i18n("Comparing file..."), 0, false ); typedef qint64 t_FileSize; t_FileSize fullSize = file1.size(); t_FileSize sizeLeft = fullSize; while( sizeLeft>0 && ! pp.wasCancelled() ) { int len = min2( sizeLeft, (t_FileSize)buf1.size() ); if( len != file1.read( &buf1[0], len ) ) { status = i18n("Error reading from %1",fileName1); return bEqual; } if( len != file2.read( &buf2[0], len ) ) { status = i18n("Error reading from %1",fileName2); return bEqual; } if ( memcmp( &buf1[0], &buf2[0], len ) != 0 ) { bError = false; return bEqual; } sizeLeft-=len; pp.setCurrent(double(fullSize-sizeLeft)/fullSize, false ); } // If the program really arrives here, then the files are really equal. bError = false; bEqual = true; return bEqual; } int DirectoryMergeWindow::totalColumnWidth() { int w=0; for (int i=0; im_dirA, d->m_dirB, d->m_dirC, d->m_dirDest, d->m_bDirectoryMerge, true ); } // Copy pm2 onto pm1, but preserve the alpha value from pm1 where pm2 is transparent. static QPixmap pixCombiner( const QPixmap* pm1, const QPixmap* pm2 ) { QImage img1 = pm1->toImage().convertToFormat(QImage::Format_ARGB32); QImage img2 = pm2->toImage().convertToFormat(QImage::Format_ARGB32); for (int y = 0; y < img1.height(); y++) { quint32 *line1 = reinterpret_cast(img1.scanLine(y)); quint32 *line2 = reinterpret_cast(img2.scanLine(y)); for (int x = 0; x < img1.width(); x++) { if ( qAlpha( line2[x] ) >0 ) line1[x] = (line2[x] | 0xff000000); } } return QPixmap::fromImage(img1); } // like pixCombiner but let the pm1 color shine through static QPixmap pixCombiner2( const QPixmap* pm1, const QPixmap* pm2 ) { QPixmap pix=*pm1; QPainter p(&pix); p.setOpacity(0.5); p.drawPixmap( 0,0,*pm2 ); p.end(); return pix; } void DirectoryMergeWindow::Data::calcDirStatus( bool bThreeDirs, const QModelIndex& mi, int& nofFiles, int& nofDirs, int& nofEqualFiles, int& nofManualMerges ) { MergeFileInfos* pMFI = getMFI(mi); if ( pMFI->dirA() || pMFI->dirB() || pMFI->dirC() ) { ++nofDirs; } else { ++nofFiles; if ( pMFI->m_bEqualAB && (!bThreeDirs || pMFI->m_bEqualAC )) { ++nofEqualFiles; } else { if ( pMFI->m_eMergeOperation==eMergeABCToDest || pMFI->m_eMergeOperation==eMergeABToDest ) ++nofManualMerges; } } for( int childIdx=0; childIdxinit( dirA, dirB, dirC, dirDest, bDirectoryMerge, bReload ); } bool DirectoryMergeWindow::Data::init ( FileAccess& dirA, FileAccess& dirB, FileAccess& dirC, FileAccess& dirDest, bool bDirectoryMerge, bool bReload ) { if ( m_pOptions->m_bDmFullAnalysis ) { // A full analysis uses the same ressources that a normal text-diff/merge uses. // So make sure that the user saves his data first. bool bCanContinue=false; emit q->checkIfCanContinue( &bCanContinue ); if ( !bCanContinue ) return false; emit q->startDiffMerge("","","","","","","",0); // hide main window } q->show(); q->setUpdatesEnabled(true); std::map expandedDirsMap; if ( bReload ) { // Remember expanded items TODO //QTreeWidgetItemIterator it( this ); //while ( *it ) //{ // DirMergeItem* pDMI = static_cast( *it ); // t_ItemInfo& ii = expandedDirsMap[ pDMI->m_pMFI->subPath() ]; // ii.bExpanded = pDMI->isExpanded(); // ii.bOperationComplete = pDMI->m_pMFI->m_bOperationComplete; // ii.status = pDMI->text( s_OpStatusCol ); // ii.eMergeOperation = pDMI->m_pMFI->m_eMergeOperation; // ++it; //} } ProgressProxy pp; m_bFollowDirLinks = m_pOptions->m_bDmFollowDirLinks; m_bFollowFileLinks = m_pOptions->m_bDmFollowFileLinks; m_bSimulatedMergeStarted=false; m_bRealMergeStarted=false; m_bError=false; m_bDirectoryMerge = bDirectoryMerge; m_selection1Index = QModelIndex(); m_selection2Index = QModelIndex(); m_selection3Index = QModelIndex(); m_bCaseSensitive = m_pOptions->m_bDmCaseSensitiveFilenameComparison; m_bUnfoldSubdirs = m_pOptions->m_bDmUnfoldSubdirs; m_bSkipDirStatus = m_pOptions->m_bDmSkipDirStatus; m_pRoot->m_children.clear(); m_mergeItemList.clear(); reset(); m_currentIndexForOperation = m_mergeItemList.end(); m_dirA = dirA; m_dirB = dirB; m_dirC = dirC; m_dirDest = dirDest; if ( !bReload ) { m_pDirShowIdenticalFiles->setChecked(true); m_pDirShowDifferentFiles->setChecked(true); m_pDirShowFilesOnlyInA->setChecked(true); m_pDirShowFilesOnlyInB->setChecked(true); m_pDirShowFilesOnlyInC->setChecked(true); } // Check if all input directories exist and are valid. The dest dir is not tested now. // The test will happen only when we are going to write to it. if ( !m_dirA.isDir() || !m_dirB.isDir() || (m_dirC.isValid() && !m_dirC.isDir()) ) { QString text( i18n("Opening of directories failed:") ); text += "\n\n"; if ( !dirA.isDir() ) { text += i18n("Dir A \"%1\" does not exist or is not a directory.\n",m_dirA.prettyAbsPath()); } if ( !dirB.isDir() ) { text += i18n("Dir B \"%1\" does not exist or is not a directory.\n",m_dirB.prettyAbsPath()); } if ( m_dirC.isValid() && !m_dirC.isDir() ) { text += i18n("Dir C \"%1\" does not exist or is not a directory.\n",m_dirC.prettyAbsPath()); } KMessageBox::sorry( q, text, i18n("Directory Open Error") ); return false; } if ( m_dirC.isValid() && (m_dirDest.prettyAbsPath() == m_dirA.prettyAbsPath() || m_dirDest.prettyAbsPath()==m_dirB.prettyAbsPath() ) ) { KMessageBox::error(q, i18n( "The destination directory must not be the same as A or B when " "three directories are merged.\nCheck again before continuing."), i18n("Parameter Warning")); return false; } m_bScanning = true; emit q->statusBarMessage(i18n("Scanning directories...")); m_bSyncMode = m_pOptions->m_bDmSyncMode && !m_dirC.isValid() && !m_dirDest.isValid(); if ( m_dirDest.isValid() ) m_dirDestInternal = m_dirDest; else m_dirDestInternal = m_dirC.isValid() ? m_dirC : m_dirB; QString origCurrentDirectory = QDir::currentPath(); m_fileMergeMap.clear(); t_DirectoryList::iterator i; // calc how many directories will be read: double nofScans = ( m_dirA.isValid() ? 1 : 0 )+( m_dirB.isValid() ? 1 : 0 )+( m_dirC.isValid() ? 1 : 0 ); int currentScan = 0; //TODO setColumnWidthMode(s_UnsolvedCol, Q3ListView::Manual); // setColumnWidthMode(s_SolvedCol, Q3ListView::Manual); // setColumnWidthMode(s_WhiteCol, Q3ListView::Manual); // setColumnWidthMode(s_NonWhiteCol, Q3ListView::Manual); q->setColumnHidden( s_CCol, !m_dirC.isValid() ); q->setColumnHidden( s_WhiteCol, !m_pOptions->m_bDmFullAnalysis ); q->setColumnHidden( s_NonWhiteCol, !m_pOptions->m_bDmFullAnalysis ); q->setColumnHidden( s_UnsolvedCol, !m_pOptions->m_bDmFullAnalysis ); q->setColumnHidden( s_SolvedCol, !( m_pOptions->m_bDmFullAnalysis && m_dirC.isValid() ) ); bool bListDirSuccessA = true; bool bListDirSuccessB = true; bool bListDirSuccessC = true; m_dirListA.clear(); m_dirListB.clear(); m_dirListC.clear(); if ( m_dirA.isValid() ) { pp.setInformation(i18n("Reading Directory A")); pp.setSubRangeTransformation(currentScan/nofScans, (currentScan+1)/nofScans); ++currentScan; bListDirSuccessA = m_dirA.listDir( &m_dirListA, m_pOptions->m_bDmRecursiveDirs, m_pOptions->m_bDmFindHidden, m_pOptions->m_DmFilePattern, m_pOptions->m_DmFileAntiPattern, m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks, m_pOptions->m_bDmUseCvsIgnore); for (i=m_dirListA.begin(); i!=m_dirListA.end();++i ) { MergeFileInfos& mfi = m_fileMergeMap[FileKey(*i)]; //std::cout <filePath()<m_bDmRecursiveDirs, m_pOptions->m_bDmFindHidden, m_pOptions->m_DmFilePattern, m_pOptions->m_DmFileAntiPattern, m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks, m_pOptions->m_bDmUseCvsIgnore); for (i=m_dirListB.begin(); i!=m_dirListB.end();++i ) { MergeFileInfos& mfi = m_fileMergeMap[FileKey(*i)]; mfi.m_pFileInfoB = &(*i); if ( mfi.m_pFileInfoA && mfi.m_pFileInfoA->fileName() == mfi.m_pFileInfoB->fileName() ) mfi.m_pFileInfoB->setSharedName(mfi.m_pFileInfoA->fileName()); // Reduce memory by sharing the name. } } e_MergeOperation eDefaultMergeOp; if ( m_dirC.isValid() ) { pp.setInformation(i18n("Reading Directory C")); pp.setSubRangeTransformation(currentScan/nofScans, (currentScan+1)/nofScans); ++currentScan; bListDirSuccessC = m_dirC.listDir( &m_dirListC, m_pOptions->m_bDmRecursiveDirs, m_pOptions->m_bDmFindHidden, m_pOptions->m_DmFilePattern, m_pOptions->m_DmFileAntiPattern, m_pOptions->m_DmDirAntiPattern, m_pOptions->m_bDmFollowDirLinks, m_pOptions->m_bDmUseCvsIgnore); for (i=m_dirListC.begin(); i!=m_dirListC.end();++i ) { MergeFileInfos& mfi = m_fileMergeMap[FileKey(*i)]; mfi.m_pFileInfoC = &(*i); } eDefaultMergeOp = eMergeABCToDest; } else eDefaultMergeOp = m_bSyncMode ? eMergeToAB : eMergeABToDest; bool bContinue = true; if ( !bListDirSuccessA || !bListDirSuccessB || !bListDirSuccessC ) { QString s = i18n("Some subdirectories were not readable in"); if ( !bListDirSuccessA ) s += "\nA: " + m_dirA.prettyAbsPath(); if ( !bListDirSuccessB ) s += "\nB: " + m_dirB.prettyAbsPath(); if ( !bListDirSuccessC ) s += "\nC: " + m_dirC.prettyAbsPath(); s+="\n"; s+= i18n("Check the permissions of the subdirectories."); bContinue = KMessageBox::Continue == KMessageBox::warningContinueCancel( q, s ); } if ( bContinue ) { prepareListView(pp); q->updateFileVisibilities(); for( int childIdx = 0; childIdxsortByColumn(0,Qt::AscendingOrder); for (int i=0;iresizeColumnToContents(i); // Try to improve the view a little bit. QWidget* pParent = q->parentWidget(); QSplitter* pSplitter = static_cast(pParent); if (pSplitter!=0) { QList sizes = pSplitter->sizes(); int total = sizes[0] + sizes[1]; if ( total < 10 ) total = 100; sizes[0]=total*6/10; sizes[1]=total - sizes[0]; pSplitter->setSizes( sizes ); } QDir::setCurrent(origCurrentDirectory); m_bScanning = false; emit q->statusBarMessage(i18n("Ready.")); if ( bContinue && !m_bSkipDirStatus ) { // Generate a status report int nofFiles=0; int nofDirs=0; int nofEqualFiles=0; int nofManualMerges=0; //TODO for( int childIdx = 0; childIdx0 ) //{ // topLevelItem(0)->setSelected(true); // setCurrentItem( topLevelItem(0) ); //} } if ( bReload ) { // Remember expanded items //TODO //QTreeWidgetItemIterator it( this ); //while ( *it ) //{ // DirMergeItem* pDMI = static_cast( *it ); // std::map::iterator i = expandedDirsMap.find( pDMI->m_pMFI->subPath() ); // if ( i!=expandedDirsMap.end() ) // { // t_ItemInfo& ii = i->second; // pDMI->setExpanded( ii.bExpanded ); // //pDMI->m_pMFI->setMergeOperation( ii.eMergeOperation, false ); unsafe, might have changed // pDMI->m_pMFI->m_bOperationComplete = ii.bOperationComplete; // pDMI->setText( s_OpStatusCol, ii.status ); // } // ++it; //} } else if (m_bUnfoldSubdirs) { m_pDirUnfoldAll->trigger(); } return true; } void DirectoryMergeWindow::onExpanded() { resizeColumnToContents(s_NameCol); } void DirectoryMergeWindow::slotChooseAEverywhere(){ d->setAllMergeOperations( eCopyAToDest ); } void DirectoryMergeWindow::slotChooseBEverywhere(){ d->setAllMergeOperations( eCopyBToDest ); } void DirectoryMergeWindow::slotChooseCEverywhere(){ d->setAllMergeOperations( eCopyCToDest ); } void DirectoryMergeWindow::slotAutoChooseEverywhere() { e_MergeOperation eDefaultMergeOp = d->m_dirC.isValid() ? eMergeABCToDest : d->m_bSyncMode ? eMergeToAB : eMergeABToDest; d->setAllMergeOperations(eDefaultMergeOp ); } void DirectoryMergeWindow::slotNoOpEverywhere(){ d->setAllMergeOperations(eNoOperation); } void DirectoryMergeWindow::slotFoldAllSubdirs() { collapseAll(); } void DirectoryMergeWindow::slotUnfoldAllSubdirs() { expandAll(); } // Merge current item (merge mode) void DirectoryMergeWindow::slotCurrentDoNothing() { d->setMergeOperation(currentIndex(), eNoOperation ); } void DirectoryMergeWindow::slotCurrentChooseA() { d->setMergeOperation(currentIndex(), d->m_bSyncMode ? eCopyAToB : eCopyAToDest ); } void DirectoryMergeWindow::slotCurrentChooseB() { d->setMergeOperation(currentIndex(), d->m_bSyncMode ? eCopyBToA : eCopyBToDest ); } void DirectoryMergeWindow::slotCurrentChooseC() { d->setMergeOperation(currentIndex(), eCopyCToDest ); } void DirectoryMergeWindow::slotCurrentMerge() { bool bThreeDirs = d->m_dirC.isValid(); d->setMergeOperation(currentIndex(), bThreeDirs ? eMergeABCToDest : eMergeABToDest ); } void DirectoryMergeWindow::slotCurrentDelete() { d->setMergeOperation(currentIndex(), eDeleteFromDest ); } // Sync current item void DirectoryMergeWindow::slotCurrentCopyAToB() { d->setMergeOperation(currentIndex(), eCopyAToB ); } void DirectoryMergeWindow::slotCurrentCopyBToA() { d->setMergeOperation(currentIndex(), eCopyBToA ); } void DirectoryMergeWindow::slotCurrentDeleteA() { d->setMergeOperation(currentIndex(), eDeleteA ); } void DirectoryMergeWindow::slotCurrentDeleteB() { d->setMergeOperation(currentIndex(), eDeleteB ); } void DirectoryMergeWindow::slotCurrentDeleteAAndB() { d->setMergeOperation(currentIndex(), eDeleteAB ); } void DirectoryMergeWindow::slotCurrentMergeToA() { d->setMergeOperation(currentIndex(), eMergeToA ); } void DirectoryMergeWindow::slotCurrentMergeToB() { d->setMergeOperation(currentIndex(), eMergeToB ); } void DirectoryMergeWindow::slotCurrentMergeToAAndB() { d->setMergeOperation(currentIndex(), eMergeToAB ); } void DirectoryMergeWindow::keyPressEvent( QKeyEvent* e ) { if ( (e->QInputEvent::modifiers() & Qt::ControlModifier)!=0 ) { bool bThreeDirs = d->m_dirC.isValid(); MergeFileInfos* pMFI = d->getMFI( currentIndex() ); if ( pMFI==0 ) return; bool bMergeMode = bThreeDirs || !d->m_bSyncMode; bool bFTConflict = pMFI==0 ? false : conflictingFileTypes(*pMFI); if ( bMergeMode ) { switch(e->key()) { case Qt::Key_1: if(pMFI->existsInA()){ slotCurrentChooseA(); } return; case Qt::Key_2: if(pMFI->existsInB()){ slotCurrentChooseB(); } return; case Qt::Key_3: if(pMFI->existsInC()){ slotCurrentChooseC(); } return; case Qt::Key_Space: slotCurrentDoNothing(); return; case Qt::Key_4: if ( !bFTConflict ) { slotCurrentMerge(); } return; case Qt::Key_Delete: slotCurrentDelete(); return; default: break; } } else { switch(e->key()) { case Qt::Key_1: if(pMFI->existsInA()){ slotCurrentCopyAToB(); } return; case Qt::Key_2: if(pMFI->existsInB()){ slotCurrentCopyBToA(); } return; case Qt::Key_Space: slotCurrentDoNothing(); return; case Qt::Key_4: if ( !bFTConflict ) { slotCurrentMergeToAAndB(); } return; case Qt::Key_Delete: if( pMFI->existsInA() && pMFI->existsInB() ) slotCurrentDeleteAAndB(); else if( pMFI->existsInA() ) slotCurrentDeleteA(); else if( pMFI->existsInB() ) slotCurrentDeleteB(); return; default: break; } } } else if ( e->key()==Qt::Key_Return || e->key()==Qt::Key_Enter ) { onDoubleClick( currentIndex() ); return; } QTreeView::keyPressEvent(e); } void DirectoryMergeWindow::focusInEvent(QFocusEvent*) { updateAvailabilities(); } void DirectoryMergeWindow::focusOutEvent(QFocusEvent*) { updateAvailabilities(); } void DirectoryMergeWindow::Data::setAllMergeOperations( e_MergeOperation eDefaultOperation ) { if ( KMessageBox::Yes == KMessageBox::warningYesNo(q, i18n("This affects all merge operations."), i18n("Changing All Merge Operations"), KStandardGuiItem::cont(), KStandardGuiItem::cancel() ) ) { for( int i=0; i dateMap; if( mfi.existsInA() ) { dateMap[ mfi.m_pFileInfoA->lastModified() ] = 0; } if( mfi.existsInB() ) { dateMap[ mfi.m_pFileInfoB->lastModified() ] = 1; } if( mfi.existsInC() ) { dateMap[ mfi.m_pFileInfoC->lastModified() ] = 2; } if ( m_pOptions->m_bDmFullAnalysis ) { if( (mfi.existsInA() && mfi.dirA()) || (mfi.existsInB() && mfi.dirB()) || (mfi.existsInC() && mfi.dirC()) ) { // If any input is a directory, don't start any comparison. mfi.m_bEqualAB=mfi.existsInA() && mfi.existsInB(); mfi.m_bEqualAC=mfi.existsInA() && mfi.existsInC(); mfi.m_bEqualBC=mfi.existsInB() && mfi.existsInC(); } else { emit q->startDiffMerge( mfi.existsInA() ? mfi.m_pFileInfoA->absoluteFilePath() : QString(""), mfi.existsInB() ? mfi.m_pFileInfoB->absoluteFilePath() : QString(""), mfi.existsInC() ? mfi.m_pFileInfoC->absoluteFilePath() : QString(""), "", "","","",&mfi.m_totalDiffStatus ); int nofNonwhiteConflicts = mfi.m_totalDiffStatus.nofUnsolvedConflicts + mfi.m_totalDiffStatus.nofSolvedConflicts - mfi.m_totalDiffStatus.nofWhitespaceConflicts; if (m_pOptions->m_bDmWhiteSpaceEqual && nofNonwhiteConflicts == 0) { mfi.m_bEqualAB = mfi.existsInA() && mfi.existsInB(); mfi.m_bEqualAC = mfi.existsInA() && mfi.existsInC(); mfi.m_bEqualBC = mfi.existsInB() && mfi.existsInC(); } else { mfi.m_bEqualAB = mfi.m_totalDiffStatus.bBinaryAEqB; mfi.m_bEqualBC = mfi.m_totalDiffStatus.bBinaryBEqC; mfi.m_bEqualAC = mfi.m_totalDiffStatus.bBinaryAEqC; } } } else { bool bError; QString eqStatus; if( mfi.existsInA() && mfi.existsInB() ) { if( mfi.dirA() ) mfi.m_bEqualAB=true; else mfi.m_bEqualAB = fastFileComparison( *mfi.m_pFileInfoA, *mfi.m_pFileInfoB, bError, eqStatus ); } if( mfi.existsInA() && mfi.existsInC() ) { if( mfi.dirA() ) mfi.m_bEqualAC=true; else mfi.m_bEqualAC = fastFileComparison( *mfi.m_pFileInfoA, *mfi.m_pFileInfoC, bError, eqStatus ); } if( mfi.existsInB() && mfi.existsInC() ) { if (mfi.m_bEqualAB && mfi.m_bEqualAC) mfi.m_bEqualBC = true; else { if( mfi.dirB() ) mfi.m_bEqualBC=true; else mfi.m_bEqualBC = fastFileComparison( *mfi.m_pFileInfoB, *mfi.m_pFileInfoC, bError, eqStatus ); } } } if (mfi.isLinkA()!=mfi.isLinkB()) mfi.m_bEqualAB=false; if (mfi.isLinkA()!=mfi.isLinkC()) mfi.m_bEqualAC=false; if (mfi.isLinkB()!=mfi.isLinkC()) mfi.m_bEqualBC=false; if (mfi.dirA()!=mfi.dirB()) mfi.m_bEqualAB=false; if (mfi.dirA()!=mfi.dirC()) mfi.m_bEqualAC=false; if (mfi.dirB()!=mfi.dirC()) mfi.m_bEqualBC=false; assert(eNew==0 && eMiddle==1 && eOld==2); // The map automatically sorts the keys. int age = eNew; std::map::reverse_iterator i; for( i=dateMap.rbegin(); i!=dateMap.rend(); ++i ) { int n = i->second; if ( n==0 && mfi.m_ageA==eNotThere ) { mfi.m_ageA = (e_Age)age; ++age; if ( mfi.m_bEqualAB ) { mfi.m_ageB = mfi.m_ageA; ++age; } if ( mfi.m_bEqualAC ) { mfi.m_ageC = mfi.m_ageA; ++age; } } else if ( n==1 && mfi.m_ageB==eNotThere ) { mfi.m_ageB = (e_Age)age; ++age; if ( mfi.m_bEqualAB ) { mfi.m_ageA = mfi.m_ageB; ++age; } if ( mfi.m_bEqualBC ) { mfi.m_ageC = mfi.m_ageB; ++age; } } else if ( n==2 && mfi.m_ageC==eNotThere) { mfi.m_ageC = (e_Age)age; ++age; if ( mfi.m_bEqualAC ) { mfi.m_ageA = mfi.m_ageC; ++age; } if ( mfi.m_bEqualBC ) { mfi.m_ageB = mfi.m_ageC; ++age; } } } // The checks below are necessary when the dates of the file are equal but the // files are not. One wouldn't expect this to happen, yet it happens sometimes. if ( mfi.existsInC() && mfi.m_ageC==eNotThere ) { mfi.m_ageC = (e_Age)age; ++age; mfi.m_bConflictingAges = true; } if ( mfi.existsInB() && mfi.m_ageB==eNotThere ) { mfi.m_ageB = (e_Age)age; ++age; mfi.m_bConflictingAges = true; } if ( mfi.existsInA() && mfi.m_ageA==eNotThere ) { mfi.m_ageA = (e_Age)age; ++age; mfi.m_bConflictingAges = true; } if ( mfi.m_ageA != eOld && mfi.m_ageB != eOld && mfi.m_ageC != eOld ) { if (mfi.m_ageA == eMiddle) mfi.m_ageA = eOld; if (mfi.m_ageB == eMiddle) mfi.m_ageB = eOld; if (mfi.m_ageC == eMiddle) mfi.m_ageC = eOld; } } static QPixmap* s_pm_dir; static QPixmap* s_pm_file; static QPixmap* pmNotThere; static QPixmap* pmNew; static QPixmap* pmOld; static QPixmap* pmMiddle; static QPixmap* pmLink; static QPixmap* pmDirLink; static QPixmap* pmFileLink; static QPixmap* pmNewLink; static QPixmap* pmOldLink; static QPixmap* pmMiddleLink; static QPixmap* pmNewDir; static QPixmap* pmMiddleDir; static QPixmap* pmOldDir; static QPixmap* pmNewDirLink; static QPixmap* pmMiddleDirLink; static QPixmap* pmOldDirLink; static QPixmap colorToPixmap(QColor c) { QPixmap pm(16,16); QPainter p(&pm); p.setPen( Qt::black ); p.setBrush( c ); p.drawRect(0,0,pm.width(),pm.height()); return pm; } static void initPixmaps( QColor newest, QColor oldest, QColor middle, QColor notThere ) { if (pmNew==0) { pmNotThere = new QPixmap; pmNew = new QPixmap; pmOld = new QPixmap; pmMiddle = new QPixmap; #include "xpm/link_arrow.xpm" pmLink = new QPixmap(link_arrow); pmDirLink = new QPixmap; pmFileLink = new QPixmap; pmNewLink = new QPixmap; pmOldLink = new QPixmap; pmMiddleLink = new QPixmap; pmNewDir = new QPixmap; pmMiddleDir = new QPixmap; pmOldDir = new QPixmap; pmNewDirLink = new QPixmap; pmMiddleDirLink = new QPixmap; pmOldDirLink = new QPixmap; } *pmNotThere = colorToPixmap(notThere); *pmNew = colorToPixmap(newest); *pmOld = colorToPixmap(oldest); *pmMiddle = colorToPixmap(middle); *pmDirLink = pixCombiner( s_pm_dir, pmLink); *pmFileLink = pixCombiner( s_pm_file, pmLink ); *pmNewLink = pixCombiner( pmNew, pmLink); *pmOldLink = pixCombiner( pmOld, pmLink); *pmMiddleLink = pixCombiner( pmMiddle, pmLink); *pmNewDir = pixCombiner2( pmNew, s_pm_dir); *pmMiddleDir = pixCombiner2( pmMiddle, s_pm_dir); *pmOldDir = pixCombiner2( pmOld, s_pm_dir); *pmNewDirLink = pixCombiner( pmNewDir, pmLink); *pmMiddleDirLink = pixCombiner( pmMiddleDir, pmLink); *pmOldDirLink = pixCombiner( pmOldDir, pmLink); } static QPixmap getOnePixmap( e_Age eAge, bool bLink, bool bDir ) { static QPixmap* ageToPm[]= { pmNew, pmMiddle, pmOld, pmNotThere, s_pm_file }; static QPixmap* ageToPmLink[]= { pmNewLink, pmMiddleLink, pmOldLink, pmNotThere, pmFileLink }; static QPixmap* ageToPmDir[]= { pmNewDir, pmMiddleDir, pmOldDir, pmNotThere, s_pm_dir }; static QPixmap* ageToPmDirLink[]={ pmNewDirLink, pmMiddleDirLink, pmOldDirLink, pmNotThere, pmDirLink }; QPixmap** ppPm = bDir ? ( bLink ? ageToPmDirLink : ageToPmDir ): ( bLink ? ageToPmLink : ageToPm ); return *ppPm[eAge]; } static void setPixmaps( MergeFileInfos& mfi, bool ) { if ( mfi.dirA() || mfi.dirB() || mfi.dirC() ) { mfi.m_ageA=eNotThere; mfi.m_ageB=eNotThere; mfi.m_ageC=eNotThere; int age = eNew; if ( mfi.existsInC() ) { mfi.m_ageC = (e_Age)age; if (mfi.m_bEqualAC) mfi.m_ageA = (e_Age)age; if (mfi.m_bEqualBC) mfi.m_ageB = (e_Age)age; ++age; } if ( mfi.existsInB() && mfi.m_ageB==eNotThere ) { mfi.m_ageB = (e_Age)age; if (mfi.m_bEqualAB) mfi.m_ageA = (e_Age)age; ++age; } if ( mfi.existsInA() && mfi.m_ageA==eNotThere ) { mfi.m_ageA = (e_Age)age; } if ( mfi.m_ageA != eOld && mfi.m_ageB != eOld && mfi.m_ageC != eOld ) { if (mfi.m_ageA == eMiddle) mfi.m_ageA = eOld; if (mfi.m_ageB == eMiddle) mfi.m_ageB = eOld; if (mfi.m_ageC == eMiddle) mfi.m_ageC = eOld; } } } static QModelIndex nextSibling(const QModelIndex& mi) { QModelIndex miParent = mi.parent(); int currentIdx = mi.row(); if ( currentIdx+1 < mi.model()->rowCount(miParent) ) return mi.model()->index(mi.row()+1,0,miParent); // next child of parent return QModelIndex(); } // Iterate through the complete tree. Start by specifying QListView::firstChild(). QModelIndex DirectoryMergeWindow::Data::treeIterator( QModelIndex mi, bool bVisitChildren, bool bFindInvisible ) { if( mi.isValid() ) { do { if ( bVisitChildren && mi.model()->rowCount(mi) != 0 ) mi = mi.model()->index(0,0,mi); else { QModelIndex miNextSibling = nextSibling(mi); if ( miNextSibling.isValid() ) mi = miNextSibling; else { mi = mi.parent(); while ( mi.isValid() ) { QModelIndex miNextSibling = nextSibling(mi); if( miNextSibling.isValid() ) { mi = miNextSibling; break; } else { mi = mi.parent(); } } } } } while( mi.isValid() && q->isRowHidden(mi.row(),mi.parent()) && !bFindInvisible ); } return mi; } void DirectoryMergeWindow::Data::prepareListView( ProgressProxy& pp ) { static bool bFirstTime = true; if (bFirstTime) { #include "xpm/file.xpm" #include "xpm/folder.xpm" // FIXME specify correct icon loader group s_pm_dir = new QPixmap( m_pIconLoader->loadIcon("folder", KIconLoader::NoGroup, KIconLoader::Small ) ); if (s_pm_dir->size()!=QSize(16,16)) { delete s_pm_dir; s_pm_dir = new QPixmap( folder_pm ); } s_pm_file= new QPixmap( file_pm ); bFirstTime=false; } //TODO clear(); initPixmaps( m_pOptions->m_newestFileColor, m_pOptions->m_oldestFileColor, m_pOptions->m_midAgeFileColor, m_pOptions->m_missingFileColor ); q->setRootIsDecorated( true ); bool bCheckC = m_dirC.isValid(); t_fileMergeMap::iterator j; int nrOfFiles = m_fileMergeMap.size(); int currentIdx = 1; QTime t; t.start(); for( j=m_fileMergeMap.begin(); j!=m_fileMergeMap.end(); ++j ) { MergeFileInfos& mfi = j.value(); // const QString& fileName = j->first; const QString& fileName = mfi.subPath(); pp.setInformation( i18n("Processing ") + QString::number(currentIdx) +" / "+ QString::number(nrOfFiles) +"\n" + fileName, double(currentIdx) / nrOfFiles, false ); if ( pp.wasCancelled() ) break; ++currentIdx; // The comparisons and calculations for each file take place here. compareFilesAndCalcAges( mfi ); // Get dirname from fileName: Search for "/" from end: int pos = fileName.lastIndexOf('/'); QString dirPart; QString filePart; if (pos==-1) { // Top dir filePart = fileName; } else { dirPart = fileName.left(pos); filePart = fileName.mid(pos+1); } if ( dirPart.isEmpty() ) // Top level { m_pRoot->m_children.push_back(&mfi); //new DirMergeItem( this, filePart, &mfi ); mfi.m_pParent = m_pRoot; } else { FileAccess* pFA = mfi.m_pFileInfoA ? mfi.m_pFileInfoA : mfi.m_pFileInfoB ? mfi.m_pFileInfoB : mfi.m_pFileInfoC; MergeFileInfos& dirMfi = pFA->parent() ? m_fileMergeMap[FileKey(*pFA->parent())] : *m_pRoot; // parent dirMfi.m_children.push_back(&mfi);//new DirMergeItem( dirMfi.m_pDMI, filePart, &mfi ); mfi.m_pParent = &dirMfi; // // Equality for parent dirs is set in updateFileVisibilities() } setPixmaps( mfi, bCheckC ); } reset(); } static bool conflictingFileTypes(MergeFileInfos& mfi) { // Now check if file/dir-types fit. if ( mfi.isLinkA() || mfi.isLinkB() || mfi.isLinkC() ) { if ( (mfi.existsInA() && ! mfi.isLinkA()) || (mfi.existsInB() && ! mfi.isLinkB()) || (mfi.existsInC() && ! mfi.isLinkC()) ) { return true; } } if ( mfi.dirA() || mfi.dirB() || mfi.dirC() ) { if ( (mfi.existsInA() && ! mfi.dirA()) || (mfi.existsInB() && ! mfi.dirB()) || (mfi.existsInC() && ! mfi.dirC()) ) { return true; } } return false; } void DirectoryMergeWindow::Data::calcSuggestedOperation( const QModelIndex& mi, e_MergeOperation eDefaultMergeOp ) { MergeFileInfos* pMFI = getMFI(mi); if ( pMFI==0 ) return; MergeFileInfos& mfi = *pMFI; bool bCheckC = m_dirC.isValid(); bool bCopyNewer = m_pOptions->m_bDmCopyNewer; bool bOtherDest = !( (m_dirDestInternal.absoluteFilePath() == m_dirA.absoluteFilePath()) || (m_dirDestInternal.absoluteFilePath() == m_dirB.absoluteFilePath()) || (bCheckC && m_dirDestInternal.absoluteFilePath() == m_dirC.absoluteFilePath()) ); if ( eDefaultMergeOp == eMergeABCToDest && !bCheckC ) { eDefaultMergeOp = eMergeABToDest; } if ( eDefaultMergeOp == eMergeToAB && bCheckC ) { assert(false); } if ( eDefaultMergeOp == eMergeToA || eDefaultMergeOp == eMergeToB || eDefaultMergeOp == eMergeABCToDest || eDefaultMergeOp == eMergeABToDest || eDefaultMergeOp == eMergeToAB ) { if ( !bCheckC ) { if ( mfi.m_bEqualAB ) { setMergeOperation( mi, bOtherDest ? eCopyBToDest : eNoOperation ); } else if ( mfi.existsInA() && mfi.existsInB() ) { if ( !bCopyNewer || mfi.dirA() ) setMergeOperation( mi, eDefaultMergeOp ); else if ( bCopyNewer && mfi.m_bConflictingAges ) { setMergeOperation( mi, eConflictingAges ); } else { if ( mfi.m_ageA == eNew ) setMergeOperation( mi, eDefaultMergeOp == eMergeToAB ? eCopyAToB : eCopyAToDest ); else setMergeOperation( mi, eDefaultMergeOp == eMergeToAB ? eCopyBToA : eCopyBToDest ); } } else if ( !mfi.existsInA() && mfi.existsInB() ) { if ( eDefaultMergeOp==eMergeABToDest ) setMergeOperation( mi, eCopyBToDest ); else if ( eDefaultMergeOp==eMergeToB ) setMergeOperation( mi, eNoOperation ); else setMergeOperation( mi, eCopyBToA ); } else if ( mfi.existsInA() && !mfi.existsInB() ) { if ( eDefaultMergeOp==eMergeABToDest ) setMergeOperation( mi, eCopyAToDest ); else if ( eDefaultMergeOp==eMergeToA ) setMergeOperation( mi, eNoOperation ); else setMergeOperation( mi, eCopyAToB ); } else //if ( !mfi.existsInA() && !mfi.existsInB() ) { setMergeOperation( mi, eNoOperation ); assert(false); } } else { if ( mfi.m_bEqualAB && mfi.m_bEqualAC ) { setMergeOperation( mi, bOtherDest ? eCopyCToDest : eNoOperation ); } else if ( mfi.existsInA() && mfi.existsInB() && mfi.existsInC()) { if ( mfi.m_bEqualAB ) setMergeOperation( mi, eCopyCToDest ); else if ( mfi.m_bEqualAC ) setMergeOperation( mi, eCopyBToDest ); else if ( mfi.m_bEqualBC ) setMergeOperation( mi, eCopyCToDest ); else setMergeOperation( mi, eMergeABCToDest ); } else if ( mfi.existsInA() && mfi.existsInB() && !mfi.existsInC() ) { if ( mfi.m_bEqualAB ) setMergeOperation( mi, eDeleteFromDest ); else setMergeOperation( mi, eChangedAndDeleted ); } else if ( mfi.existsInA() && !mfi.existsInB() && mfi.existsInC() ) { if ( mfi.m_bEqualAC ) setMergeOperation( mi, eDeleteFromDest ); else setMergeOperation( mi, eChangedAndDeleted ); } else if ( !mfi.existsInA() && mfi.existsInB() && mfi.existsInC() ) { if ( mfi.m_bEqualBC ) setMergeOperation( mi, eCopyCToDest ); else setMergeOperation( mi, eMergeABCToDest ); } else if ( !mfi.existsInA() && !mfi.existsInB() && mfi.existsInC() ) { setMergeOperation( mi, eCopyCToDest ); } else if ( !mfi.existsInA() && mfi.existsInB() && !mfi.existsInC() ) { setMergeOperation( mi, eCopyBToDest ); } else if ( mfi.existsInA() && !mfi.existsInB() && !mfi.existsInC()) { setMergeOperation( mi, eDeleteFromDest ); } else //if ( !mfi.existsInA() && !mfi.existsInB() && !mfi.existsInC() ) { setMergeOperation( mi, eNoOperation ); assert(false); } } // Now check if file/dir-types fit. if ( conflictingFileTypes(mfi) ) { setMergeOperation( mi, eConflictingFileTypes ); } } else { e_MergeOperation eMO = eDefaultMergeOp; switch ( eDefaultMergeOp ) { case eConflictingFileTypes: case eChangedAndDeleted: case eConflictingAges: case eDeleteA: case eDeleteB: case eDeleteAB: case eDeleteFromDest: case eNoOperation: break; case eCopyAToB: if ( !mfi.existsInA() ) { eMO = eDeleteB; } break; case eCopyBToA: if ( !mfi.existsInB() ) { eMO = eDeleteA; } break; case eCopyAToDest: if ( !mfi.existsInA() ) { eMO = eDeleteFromDest; } break; case eCopyBToDest: if ( !mfi.existsInB() ) { eMO = eDeleteFromDest; } break; case eCopyCToDest: if ( !mfi.existsInC() ) { eMO = eDeleteFromDest; } break; case eMergeToA: case eMergeToB: case eMergeToAB: case eMergeABCToDest: case eMergeABToDest: default: assert(false); } setMergeOperation( mi, eMO ); } } void DirectoryMergeWindow::onDoubleClick( const QModelIndex& mi ) { if ( ! mi.isValid() ) return; d->m_bSimulatedMergeStarted = false; if ( d->m_bDirectoryMerge ) mergeCurrentFile(); else compareCurrentFile(); } void DirectoryMergeWindow::currentChanged ( const QModelIndex & current, const QModelIndex & previous ) { QTreeView::currentChanged( current, previous ); MergeFileInfos* pMFI = d->getMFI( current ); if ( pMFI==0 ) return; d->m_pDirectoryMergeInfo->setInfo( d->m_dirA, d->m_dirB, d->m_dirC, d->m_dirDestInternal, *pMFI ); } void DirectoryMergeWindow::mousePressEvent( QMouseEvent* e ) { QTreeView::mousePressEvent(e); QModelIndex mi = indexAt( e->pos() ); int c = mi.column(); QPoint p = e->globalPos(); MergeFileInfos* pMFI = d->getMFI( mi ); if ( pMFI==0 ) return; MergeFileInfos& mfi = *pMFI; if ( c==s_OpCol ) { bool bThreeDirs = d->m_dirC.isValid(); KMenu m(this); if ( bThreeDirs ) { m.addAction( d->m_pDirCurrentDoNothing ); int count=0; if ( mfi.existsInA() ) { m.addAction( d->m_pDirCurrentChooseA ); ++count; } if ( mfi.existsInB() ) { m.addAction( d->m_pDirCurrentChooseB ); ++count; } if ( mfi.existsInC() ) { m.addAction( d->m_pDirCurrentChooseC ); ++count; } if ( !conflictingFileTypes(mfi) && count>1 ) m.addAction( d->m_pDirCurrentMerge ); m.addAction( d->m_pDirCurrentDelete ); } else if ( d->m_bSyncMode ) { m.addAction( d->m_pDirCurrentSyncDoNothing ); if ( mfi.existsInA() ) m.addAction( d->m_pDirCurrentSyncCopyAToB ); if ( mfi.existsInB() ) m.addAction( d->m_pDirCurrentSyncCopyBToA ); if ( mfi.existsInA() ) m.addAction( d->m_pDirCurrentSyncDeleteA ); if ( mfi.existsInB() ) m.addAction( d->m_pDirCurrentSyncDeleteB ); if ( mfi.existsInA() && mfi.existsInB() ) { m.addAction( d->m_pDirCurrentSyncDeleteAAndB ); if ( !conflictingFileTypes(mfi)) { m.addAction( d->m_pDirCurrentSyncMergeToA ); m.addAction( d->m_pDirCurrentSyncMergeToB ); m.addAction( d->m_pDirCurrentSyncMergeToAAndB ); } } } else { m.addAction( d->m_pDirCurrentDoNothing ); if ( mfi.existsInA() ) { m.addAction( d->m_pDirCurrentChooseA ); } if ( mfi.existsInB() ) { m.addAction( d->m_pDirCurrentChooseB ); } if ( !conflictingFileTypes(mfi) && mfi.existsInA() && mfi.existsInB() ) m.addAction( d->m_pDirCurrentMerge ); m.addAction( d->m_pDirCurrentDelete ); } m.exec( p ); } else if ( c == s_ACol || c==s_BCol || c==s_CCol ) { QString itemPath; if ( c == s_ACol && mfi.existsInA() ){ itemPath = d->fullNameA(mfi); } else if ( c == s_BCol && mfi.existsInB() ){ itemPath = d->fullNameB(mfi); } else if ( c == s_CCol && mfi.existsInC() ){ itemPath = d->fullNameC(mfi); } if (!itemPath.isEmpty()) { d->selectItemAndColumn( mi, e->button()==Qt::RightButton ); } } } void DirectoryMergeWindow::contextMenuEvent(QContextMenuEvent* e) { QModelIndex mi = indexAt( e->pos() ); int c = mi.column(); QPoint p = e->globalPos(); MergeFileInfos* pMFI = d->getMFI(mi); if (pMFI==0) return; if ( c == s_ACol || c==s_BCol || c==s_CCol ) { QString itemPath; if ( c == s_ACol && pMFI->existsInA() ){ itemPath = d->fullNameA(*pMFI); } else if ( c == s_BCol && pMFI->existsInB() ){ itemPath = d->fullNameB(*pMFI); } else if ( c == s_CCol && pMFI->existsInC() ){ itemPath = d->fullNameC(*pMFI); } if (!itemPath.isEmpty()) { d->selectItemAndColumn(mi, true); KMenu m(this); m.addAction( d->m_pDirCompareExplicit ); m.addAction( d->m_pDirMergeExplicit ); #ifndef _WIN32 m.exec( p ); #else void showShellContextMenu( const QString&, QPoint, QWidget*, QMenu* ); showShellContextMenu( itemPath, p, this, &m ); #endif } } } QString DirectoryMergeWindow::Data::getFileName( const QModelIndex& mi ) { MergeFileInfos* pMFI = getMFI( mi ); if ( pMFI != 0 ) { return mi.column() == s_ACol ? pMFI->m_pFileInfoA->absoluteFilePath() : mi.column() == s_BCol ? pMFI->m_pFileInfoB->absoluteFilePath() : mi.column() == s_CCol ? pMFI->m_pFileInfoC->absoluteFilePath() : QString(""); } return ""; } bool DirectoryMergeWindow::Data::isDir( const QModelIndex& mi ) { MergeFileInfos* pMFI = getMFI( mi ); if ( pMFI != 0 ) { return mi.column() == s_ACol ? pMFI->dirA() : mi.column() == s_BCol ? pMFI->dirB() : pMFI->dirC(); } return false; } void DirectoryMergeWindow::Data::selectItemAndColumn(const QModelIndex& mi, bool bContextMenu) { if ( bContextMenu && ( mi==m_selection1Index || mi==m_selection2Index || mi==m_selection3Index ) ) return; QModelIndex old1=m_selection1Index; QModelIndex old2=m_selection2Index; QModelIndex old3=m_selection3Index; bool bReset = false; if ( m_selection1Index.isValid() ) { if (isDir( m_selection1Index )!=isDir( mi )) bReset = true; } if ( bReset || m_selection3Index.isValid() || mi==m_selection1Index || mi==m_selection2Index || mi==m_selection3Index ) { // restart m_selection1Index = QModelIndex(); m_selection2Index = QModelIndex(); m_selection3Index = QModelIndex(); } else if ( !m_selection1Index.isValid() ) { m_selection1Index = mi; m_selection2Index = QModelIndex(); m_selection3Index = QModelIndex(); } else if ( !m_selection2Index.isValid() ) { m_selection2Index = mi; m_selection3Index = QModelIndex(); } else if ( !m_selection3Index.isValid() ) { m_selection3Index = mi; } if (old1.isValid()) dataChanged( old1, old1 ); if (old2.isValid()) dataChanged( old2, old2 ); if (old3.isValid()) dataChanged( old3, old3 ); if (m_selection1Index.isValid()) dataChanged( m_selection1Index, m_selection1Index ); if (m_selection2Index.isValid()) dataChanged( m_selection2Index, m_selection2Index ); if (m_selection3Index.isValid()) dataChanged( m_selection3Index, m_selection3Index ); emit q->updateAvailabilities(); } //TODO //void DirMergeItem::init(MergeFileInfos* pMFI) //{ // pMFI->m_pDMI = this; // m_pMFI = pMFI; // TotalDiffStatus& tds = pMFI->m_totalDiffStatus; // if ( m_pMFI->dirA() || m_pMFI->dirB() || m_pMFI->dirC() ) // { // } // else // { // setText( s_UnsolvedCol, QString::number( tds.nofUnsolvedConflicts ) ); // setText( s_SolvedCol, QString::number( tds.nofSolvedConflicts ) ); // setText( s_NonWhiteCol, QString::number( tds.nofUnsolvedConflicts + tds.nofSolvedConflicts - tds.nofWhitespaceConflicts ) ); // setText( s_WhiteCol, QString::number( tds.nofWhitespaceConflicts ) ); // } // setSizeHint( s_ACol, QSize(17,17) ); // Iconsize // setSizeHint( s_BCol, QSize(17,17) ); // Iconsize // setSizeHint( s_CCol, QSize(17,17) ); // Iconsize //} class MfiLessThan { int m_sortColumn; public: MfiLessThan( int sortColumn ) : m_sortColumn( sortColumn ) { } bool operator()( MergeFileInfos* pMFI1, MergeFileInfos* pMFI2 ) { bool bDir1 = pMFI1->dirA() || pMFI1->dirB() || pMFI1->dirC(); bool bDir2 = pMFI2->dirA() || pMFI2->dirB() || pMFI2->dirC(); if ( bDir1 == bDir2 ) { //if(col==s_UnsolvedCol || col==s_SolvedCol || col==s_NonWhiteCol || col==s_WhiteCol) // return text(col).toInt() > i.text(col).toInt(); //if ( s_sortColumn == s_NameCol ) return pMFI1->fileName().compare( pMFI2->fileName(), Qt::CaseInsensitive )<0; //else // return QTreeWidgetItem::operator<(i); } else return bDir1; } }; static void sortHelper( MergeFileInfos* pMFI, int sortColumn, Qt::SortOrder order ) { qSort( pMFI->m_children.begin(), pMFI->m_children.end(), MfiLessThan(sortColumn) ); if ( order == Qt::DescendingOrder ) std::reverse( pMFI->m_children.begin(), pMFI->m_children.end() ); for( int i=0; im_children.count(); ++i ) sortHelper( pMFI->m_children[i], sortColumn, order ); } void DirectoryMergeWindow::Data::sort( int column, Qt::SortOrder order ) { sortHelper( m_pRoot, column, order ); reset(); } // //DirMergeItem::~DirMergeItem() //{ // m_pMFI->m_pDMI = 0; //} void DirectoryMergeWindow::Data::setMergeOperation( const QModelIndex& mi, e_MergeOperation eMOp, bool bRecursive ) { MergeFileInfos* pMFI = getMFI( mi ); if ( pMFI == 0 ) return; MergeFileInfos& mfi = *pMFI; if ( eMOp != mfi.m_eMergeOperation ) { mfi.m_bOperationComplete = false; setOpStatus( mi, eOpStatusNone ); } mfi.m_eMergeOperation = eMOp; QString s; if ( bRecursive ) { e_MergeOperation eChildrenMergeOp = mfi.m_eMergeOperation; if ( eChildrenMergeOp == eConflictingFileTypes ) eChildrenMergeOp = eMergeABCToDest; for( int childIdx=0; childIdxcanContinue()) return; if ( d->m_bRealMergeStarted ) { KMessageBox::sorry(this,i18n("This operation is currently not possible."),i18n("Operation Not Possible")); return; } if ( MergeFileInfos* pMFI = d->getMFI(currentIndex()) ) { if ( !(pMFI->dirA() || pMFI->dirB() || pMFI->dirC()) ) { emit startDiffMerge( pMFI->existsInA() ? pMFI->m_pFileInfoA->absoluteFilePath() : QString(""), pMFI->existsInB() ? pMFI->m_pFileInfoB->absoluteFilePath() : QString(""), pMFI->existsInC() ? pMFI->m_pFileInfoC->absoluteFilePath() : QString(""), "", "","","",0 ); } } emit updateAvailabilities(); } void DirectoryMergeWindow::slotCompareExplicitlySelectedFiles() { if ( ! d->isDir(d->m_selection1Index) && !d->canContinue() ) return; if ( d->m_bRealMergeStarted ) { KMessageBox::sorry(this,i18n("This operation is currently not possible."),i18n("Operation Not Possible")); return; } emit startDiffMerge( d->getFileName( d->m_selection1Index ), d->getFileName( d->m_selection2Index ), d->getFileName( d->m_selection3Index ), "", "","","",0 ); d->m_selection1Index=QModelIndex(); d->m_selection2Index=QModelIndex(); d->m_selection3Index=QModelIndex(); emit updateAvailabilities(); update(); } void DirectoryMergeWindow::slotMergeExplicitlySelectedFiles() { if ( ! d->isDir(d->m_selection1Index) && !d->canContinue() ) return; if ( d->m_bRealMergeStarted ) { KMessageBox::sorry(this,i18n("This operation is currently not possible."),i18n("Operation Not Possible")); return; } QString fn1 = d->getFileName( d->m_selection1Index ); QString fn2 = d->getFileName( d->m_selection2Index ); QString fn3 = d->getFileName( d->m_selection3Index ); emit startDiffMerge( fn1, fn2, fn3, fn3.isEmpty() ? fn2 : fn3, "","","",0 ); d->m_selection1Index=QModelIndex(); d->m_selection2Index=QModelIndex(); d->m_selection3Index=QModelIndex(); emit updateAvailabilities(); update(); } bool DirectoryMergeWindow::isFileSelected() { if ( MergeFileInfos* pMFI = d->getMFI(currentIndex()) ) { return ! (pMFI->dirA() || pMFI->dirB() || pMFI->dirC() || conflictingFileTypes(*pMFI) ); } return false; } void DirectoryMergeWindow::mergeResultSaved(const QString& fileName) { QModelIndex mi = (d->m_mergeItemList.empty() || d->m_currentIndexForOperation==d->m_mergeItemList.end() ) ? QModelIndex() : *d->m_currentIndexForOperation; MergeFileInfos* pMFI = d->getMFI(mi); if ( pMFI==0 ) { KMessageBox::error( this, i18n("This should never happen: \n\nmergeResultSaved: m_pMFI=0\n\nIf you know how to reproduce this, please contact the program author."),i18n("Program Error") ); return; } if ( fileName == d->fullNameDest(*pMFI) ) { MergeFileInfos& mfi = *pMFI; if ( mfi.m_eMergeOperation==eMergeToAB ) { bool bSuccess = d->copyFLD( d->fullNameB(mfi), d->fullNameA(mfi) ); if (!bSuccess) { KMessageBox::error(this, i18n("An error occurred while copying.\n"), i18n("Error") ); d->m_pStatusInfo->setWindowTitle(i18n("Merge Error")); d->m_pStatusInfo->exec(); //if ( m_pStatusInfo->firstChild()!=0 ) // m_pStatusInfo->ensureItemVisible( m_pStatusInfo->last() ); d->m_bError = true; d->setOpStatus( mi, eOpStatusError ); mfi.m_eMergeOperation = eCopyBToA; return; } } d->setOpStatus( mi, eOpStatusDone ); pMFI->m_bOperationComplete = true; if ( d->m_mergeItemList.size()==1 ) { d->m_mergeItemList.clear(); d->m_bRealMergeStarted=false; } } emit updateAvailabilities(); } bool DirectoryMergeWindow::Data::canContinue() { bool bCanContinue=false; q->checkIfCanContinue( &bCanContinue ); if ( bCanContinue && !m_bError ) { QModelIndex mi = (m_mergeItemList.empty() || m_currentIndexForOperation==m_mergeItemList.end() ) ? QModelIndex() : *m_currentIndexForOperation; MergeFileInfos* pMFI = getMFI(mi); if ( pMFI && ! pMFI->m_bOperationComplete ) { setOpStatus( mi, eOpStatusNotSaved ); pMFI->m_bOperationComplete = true; if ( m_mergeItemList.size()==1 ) { m_mergeItemList.clear(); m_bRealMergeStarted=false; } } } return bCanContinue; } bool DirectoryMergeWindow::Data::executeMergeOperation( MergeFileInfos& mfi, bool& bSingleFileMerge ) { bool bCreateBackups = m_pOptions->m_bDmCreateBakFiles; // First decide destname QString destName; switch( mfi.m_eMergeOperation ) { case eNoOperation: break; case eDeleteAB: break; case eMergeToAB: // let the user save in B. In mergeResultSaved() the file will be copied to A. case eMergeToB: case eDeleteB: case eCopyAToB: destName = fullNameB(mfi); break; case eMergeToA: case eDeleteA: case eCopyBToA: destName = fullNameA(mfi); break; case eMergeABToDest: case eMergeABCToDest: case eCopyAToDest: case eCopyBToDest: case eCopyCToDest: case eDeleteFromDest: destName = fullNameDest(mfi); break; default: KMessageBox::error( q, i18n("Unknown merge operation. (This must never happen!)"), i18n("Error") ); assert(false); } bool bSuccess = false; bSingleFileMerge = false; switch( mfi.m_eMergeOperation ) { case eNoOperation: bSuccess = true; break; case eCopyAToDest: case eCopyAToB: bSuccess = copyFLD( fullNameA(mfi), destName ); break; case eCopyBToDest: case eCopyBToA: bSuccess = copyFLD( fullNameB(mfi), destName ); break; case eCopyCToDest: bSuccess = copyFLD( fullNameC(mfi), destName ); break; case eDeleteFromDest: case eDeleteA: case eDeleteB: bSuccess = deleteFLD( destName, bCreateBackups ); break; case eDeleteAB: bSuccess = deleteFLD( fullNameA(mfi), bCreateBackups ) && deleteFLD( fullNameB(mfi), bCreateBackups ); break; case eMergeABToDest: case eMergeToA: case eMergeToAB: case eMergeToB: bSuccess = mergeFLD( fullNameA(mfi), fullNameB(mfi), "", destName, bSingleFileMerge ); break; case eMergeABCToDest:bSuccess = mergeFLD( mfi.existsInA() ? fullNameA(mfi) : QString(""), mfi.existsInB() ? fullNameB(mfi) : QString(""), mfi.existsInC() ? fullNameC(mfi) : QString(""), destName, bSingleFileMerge ); break; default: KMessageBox::error( q, i18n("Unknown merge operation."), i18n("Error") ); assert(false); } return bSuccess; } // Check if the merge can start, and prepare the m_mergeItemList which then contains all // items that must be merged. void DirectoryMergeWindow::Data::prepareMergeStart( const QModelIndex& miBegin, const QModelIndex& miEnd, bool bVerbose ) { if ( bVerbose ) { int status = KMessageBox::warningYesNoCancel(q, i18n("The merge is about to begin.\n\n" "Choose \"Do it\" if you have read the instructions and know what you are doing.\n" "Choosing \"Simulate it\" will tell you what would happen.\n\n" "Be aware that this program still has beta status " "and there is NO WARRANTY whatsoever! Make backups of your vital data!"), i18n("Starting Merge"), KGuiItem( i18n("Do It") ), KGuiItem( i18n("Simulate It") ) ); if (status==KMessageBox::Yes) m_bRealMergeStarted = true; else if (status==KMessageBox::No ) m_bSimulatedMergeStarted = true; else return; } else { m_bRealMergeStarted = true; } m_mergeItemList.clear(); if ( !miBegin.isValid() ) return; for( QModelIndex mi = miBegin; mi!=miEnd; mi = treeIterator( mi ) ) { MergeFileInfos* pMFI = getMFI( mi ); if ( pMFI && ! pMFI->m_bOperationComplete ) { m_mergeItemList.push_back(mi); QString errorText; if (pMFI->m_eMergeOperation == eConflictingFileTypes ) { errorText = i18n("The highlighted item has a different type in the different directories. Select what to do."); } if (pMFI->m_eMergeOperation == eConflictingAges ) { errorText = i18n("The modification dates of the file are equal but the files are not. Select what to do."); } if (pMFI->m_eMergeOperation == eChangedAndDeleted ) { errorText = i18n("The highlighted item was changed in one directory and deleted in the other. Select what to do."); } if ( !errorText.isEmpty() ) { q->scrollTo( mi, QAbstractItemView::EnsureVisible ); q->setCurrentIndex( mi ); KMessageBox::error(q, errorText, i18n("Error")); m_mergeItemList.clear(); m_bRealMergeStarted=false; return; } } } m_currentIndexForOperation = m_mergeItemList.begin(); return; } void DirectoryMergeWindow::slotRunOperationForCurrentItem() { if ( ! d->canContinue() ) return; bool bVerbose = false; if ( d->m_mergeItemList.empty() ) { QModelIndex miBegin = currentIndex(); QModelIndex miEnd = d->treeIterator(miBegin,false,false); // find next visible sibling (no children) d->prepareMergeStart( miBegin, miEnd, bVerbose ); d->mergeContinue(true, bVerbose); } else d->mergeContinue(false, bVerbose); } void DirectoryMergeWindow::slotRunOperationForAllItems() { if ( ! d->canContinue() ) return; bool bVerbose = true; if ( d->m_mergeItemList.empty() ) { QModelIndex miBegin = d->rowCount()>0 ? d->index(0,0,QModelIndex()) : QModelIndex(); d->prepareMergeStart( miBegin, QModelIndex(), bVerbose ); d->mergeContinue(true, bVerbose); } else d->mergeContinue(false, bVerbose); } void DirectoryMergeWindow::mergeCurrentFile() { if (!d->canContinue()) return; if ( d->m_bRealMergeStarted ) { KMessageBox::sorry(this,i18n("This operation is currently not possible because directory merge is currently running."),i18n("Operation Not Possible")); return; } if ( isFileSelected() ) { MergeFileInfos* pMFI = d->getMFI( currentIndex() ); if ( pMFI != 0 ) { MergeFileInfos& mfi = *pMFI; d->m_mergeItemList.clear(); d->m_mergeItemList.push_back( currentIndex() ); d->m_currentIndexForOperation = d->m_mergeItemList.begin(); bool bDummy=false; d->mergeFLD( mfi.existsInA() ? mfi.m_pFileInfoA->absoluteFilePath() : QString(""), mfi.existsInB() ? mfi.m_pFileInfoB->absoluteFilePath() : QString(""), mfi.existsInC() ? mfi.m_pFileInfoC->absoluteFilePath() : QString(""), d->fullNameDest(mfi), bDummy ); } } emit updateAvailabilities(); } // When bStart is true then m_currentIndexForOperation must still be processed. // When bVerbose is true then a messagebox will tell when the merge is complete. void DirectoryMergeWindow::Data::mergeContinue(bool bStart, bool bVerbose) { ProgressProxy pp; if ( m_mergeItemList.empty() ) return; int nrOfItems = 0; int nrOfCompletedItems = 0; int nrOfCompletedSimItems = 0; // Count the number of completed items (for the progress bar). for( MergeItemList::iterator i = m_mergeItemList.begin(); i!=m_mergeItemList.end(); ++i ) { MergeFileInfos* pMFI = getMFI( *i ); ++nrOfItems; if ( pMFI->m_bOperationComplete ) ++nrOfCompletedItems; if ( pMFI->m_bSimOpComplete ) ++nrOfCompletedSimItems; } m_pStatusInfo->hide(); m_pStatusInfo->clear(); QModelIndex miCurrent = m_currentIndexForOperation==m_mergeItemList.end() ? QModelIndex() : *m_currentIndexForOperation; bool bContinueWithCurrentItem = bStart; // true for first item, else false bool bSkipItem = false; if ( !bStart && m_bError && miCurrent.isValid() ) { int status = KMessageBox::warningYesNoCancel(q, i18n("There was an error in the last step.\n" "Do you want to continue with the item that caused the error or do you want to skip this item?"), i18n("Continue merge after an error"), KGuiItem( i18n("Continue With Last Item") ), KGuiItem( i18n("Skip Item") ) ); if (status==KMessageBox::Yes) bContinueWithCurrentItem = true; else if (status==KMessageBox::No ) bSkipItem = true; else return; m_bError = false; } bool bSuccess = true; bool bSingleFileMerge = false; bool bSim = m_bSimulatedMergeStarted; while( bSuccess ) { MergeFileInfos* pMFI = getMFI(miCurrent); if ( pMFI==0 ) { m_mergeItemList.clear(); m_bRealMergeStarted=false; break; } if ( pMFI!=0 && !bContinueWithCurrentItem ) { if ( bSim ) { if( rowCount(miCurrent)==0 ) { pMFI->m_bSimOpComplete = true; } } else { if( rowCount( miCurrent )==0 ) { if( !pMFI->m_bOperationComplete ) { setOpStatus( miCurrent, bSkipItem ? eOpStatusSkipped : eOpStatusDone ); pMFI->m_bOperationComplete = true; bSkipItem = false; } } else { setOpStatus( miCurrent, eOpStatusInProgress ); } } } if ( ! bContinueWithCurrentItem ) { // Depth first QModelIndex miPrev = miCurrent; ++m_currentIndexForOperation; miCurrent = m_currentIndexForOperation==m_mergeItemList.end() ? QModelIndex() : *m_currentIndexForOperation; if ( (!miCurrent.isValid() || miCurrent.parent()!=miPrev.parent()) && miPrev.parent().isValid() ) { // Check if the parent may be set to "Done" QModelIndex miParent = miPrev.parent(); bool bDone = true; while ( bDone && miParent.isValid() ) { for( int childIdx = 0; childIdxm_bOperationComplete) || (bSim && pMFI->m_bSimOpComplete) ) { bDone=false; break; } } if ( bDone ) { MergeFileInfos* pMFI = getMFI(miParent); if (bSim) pMFI->m_bSimOpComplete = bDone; else { setOpStatus( miParent, eOpStatusDone ); pMFI->m_bOperationComplete = bDone; } } miParent = miParent.parent(); } } } if ( !miCurrent.isValid() ) // end? { if ( m_bRealMergeStarted ) { if (bVerbose) { KMessageBox::information( q, i18n("Merge operation complete."), i18n("Merge Complete") ); } m_bRealMergeStarted = false; m_pStatusInfo->setWindowTitle(i18n("Merge Complete")); } if ( m_bSimulatedMergeStarted ) { m_bSimulatedMergeStarted = false; QModelIndex mi = rowCount()>0 ? index(0,0,QModelIndex()) : QModelIndex(); for( ; mi.isValid(); mi=treeIterator(mi) ) { getMFI( mi )->m_bSimOpComplete = false; } m_pStatusInfo->setWindowTitle(i18n("Simulated merge complete: Check if you agree with the proposed operations.")); m_pStatusInfo->exec(); } m_mergeItemList.clear(); m_bRealMergeStarted=false; return; } MergeFileInfos& mfi = *getMFI(miCurrent); pp.setInformation( mfi.subPath(), bSim ? double(nrOfCompletedSimItems)/nrOfItems : double(nrOfCompletedItems)/nrOfItems, false // bRedrawUpdate ); bSuccess = executeMergeOperation( mfi, bSingleFileMerge ); // Here the real operation happens. if ( bSuccess ) { if(bSim) ++nrOfCompletedSimItems; else ++nrOfCompletedItems; bContinueWithCurrentItem = false; } if( pp.wasCancelled() ) break; } // end while //g_pProgressDialog->hide(); q->setCurrentIndex( miCurrent ); q->scrollTo( miCurrent, EnsureVisible ); if ( !bSuccess && !bSingleFileMerge ) { KMessageBox::error(q, i18n("An error occurred. Press OK to see detailed information.\n"), i18n("Error") ); m_pStatusInfo->setWindowTitle(i18n("Merge Error")); m_pStatusInfo->exec(); //if ( m_pStatusInfo->firstChild()!=0 ) // m_pStatusInfo->ensureItemVisible( m_pStatusInfo->last() ); m_bError = true; setOpStatus( miCurrent, eOpStatusError ); } else { m_bError = false; } emit q->updateAvailabilities(); if ( m_currentIndexForOperation==m_mergeItemList.end() ) { m_mergeItemList.clear(); m_bRealMergeStarted=false; } } bool DirectoryMergeWindow::Data::deleteFLD( const QString& name, bool bCreateBackup ) { FileAccess fi(name, true); if ( !fi.exists() ) return true; if ( bCreateBackup ) { bool bSuccess = renameFLD( name, name+".orig" ); if (!bSuccess) { m_pStatusInfo->addText( i18n("Error: While deleting %1: Creating backup failed.",name) ); return false; } } else { if ( fi.isDir() && !fi.isSymLink() ) m_pStatusInfo->addText(i18n("delete directory recursively( %1 )",name)); else m_pStatusInfo->addText(i18n("delete( %1 )",name)); if ( m_bSimulatedMergeStarted ) { return true; } if ( fi.isDir() && !fi.isSymLink() )// recursive directory delete only for real dirs, not symlinks { t_DirectoryList dirList; bool bSuccess = fi.listDir( &dirList, false, true, "*", "", "", false, false ); // not recursive, find hidden files if ( !bSuccess ) { // No Permission to read directory or other error. m_pStatusInfo->addText( i18n("Error: delete dir operation failed while trying to read the directory.") ); return false; } t_DirectoryList::iterator it; // create list iterator for ( it=dirList.begin(); it!=dirList.end(); ++it ) // for each file... { FileAccess& fi2 = *it; if ( fi2.fileName() == "." || fi2.fileName()==".." ) continue; bSuccess = deleteFLD( fi2.absoluteFilePath(), false ); if (!bSuccess) break; } if (bSuccess) { bSuccess = FileAccess::removeDir( name ); if ( !bSuccess ) { m_pStatusInfo->addText( i18n("Error: rmdir( %1 ) operation failed.",name)); return false; } } } else { bool bSuccess = FileAccess::removeFile( name ); if ( !bSuccess ) { m_pStatusInfo->addText( i18n("Error: delete operation failed.") ); return false; } } } return true; } bool DirectoryMergeWindow::Data::mergeFLD( const QString& nameA,const QString& nameB,const QString& nameC,const QString& nameDest, bool& bSingleFileMerge ) { FileAccess fi(nameA); if (fi.isDir()) { return makeDir(nameDest); } // Make sure that the dir exists, into which we will save the file later. int pos=nameDest.lastIndexOf('/'); if ( pos>0 ) { QString parentName = nameDest.left(pos); bool bSuccess = makeDir(parentName, true /*quiet*/); if (!bSuccess) return false; } m_pStatusInfo->addText(i18n("manual merge( %1, %2, %3 -> %4)",nameA,nameB,nameC,nameDest)); if ( m_bSimulatedMergeStarted ) { m_pStatusInfo->addText(i18n(" Note: After a manual merge the user should continue by pressing F7.") ); return true; } bSingleFileMerge = true; setOpStatus(*m_currentIndexForOperation, eOpStatusInProgress ); q->scrollTo( *m_currentIndexForOperation, EnsureVisible ); emit q->startDiffMerge( nameA, nameB, nameC, nameDest, "","","",0 ); return false; } bool DirectoryMergeWindow::Data::copyFLD( const QString& srcName, const QString& destName ) { if ( srcName == destName ) return true; FileAccess fi( srcName ); FileAccess faDest(destName, true); if ( faDest.exists() && !( fi.isDir() && faDest.isDir() && (fi.isSymLink()==faDest.isSymLink())) ) { bool bSuccess = deleteFLD( destName, m_pOptions->m_bDmCreateBakFiles ); if ( !bSuccess ) { m_pStatusInfo->addText(i18n("Error: copy( %1 -> %2 ) failed." "Deleting existing destination failed.",srcName,destName)); return false; } } if ( fi.isSymLink() && ((fi.isDir() && !m_bFollowDirLinks) || (!fi.isDir() && !m_bFollowFileLinks)) ) { m_pStatusInfo->addText(i18n("copyLink( %1 -> %2 )",srcName,destName)); #if defined(_WIN32) || defined(Q_OS_OS2) // What are links? #else if ( m_bSimulatedMergeStarted ) { return true; } FileAccess destFi(destName); if ( !destFi.isLocal() || !fi.isLocal() ) { m_pStatusInfo->addText(i18n("Error: copyLink failed: Remote links are not yet supported.")); return false; } QString linkTarget = fi.readLink(); bool bSuccess = FileAccess::symLink( linkTarget, destName ); if (!bSuccess) m_pStatusInfo->addText(i18n("Error: copyLink failed.")); return bSuccess; #endif } if ( fi.isDir() ) { if ( faDest.exists() ) return true; else { bool bSuccess = makeDir( destName ); return bSuccess; } } int pos=destName.lastIndexOf('/'); if ( pos>0 ) { QString parentName = destName.left(pos); bool bSuccess = makeDir(parentName, true /*quiet*/); if (!bSuccess) return false; } m_pStatusInfo->addText(i18n("copy( %1 -> %2 )",srcName,destName)); if ( m_bSimulatedMergeStarted ) { return true; } FileAccess faSrc ( srcName ); bool bSuccess = faSrc.copyFile( destName ); if (! bSuccess ) m_pStatusInfo->addText( faSrc.getStatusText() ); return bSuccess; } // Rename is not an operation that can be selected by the user. // It will only be used to create backups. // Hence it will delete an existing destination without making a backup (of the old backup.) bool DirectoryMergeWindow::Data::renameFLD( const QString& srcName, const QString& destName ) { if ( srcName == destName ) return true; if ( FileAccess(destName, true).exists() ) { bool bSuccess = deleteFLD( destName, false /*no backup*/ ); if (!bSuccess) { m_pStatusInfo->addText( i18n("Error during rename( %1 -> %2 ): " "Cannot delete existing destination." ,srcName,destName)); return false; } } m_pStatusInfo->addText(i18n("rename( %1 -> %2 )",srcName,destName)); if ( m_bSimulatedMergeStarted ) { return true; } bool bSuccess = FileAccess( srcName ).rename( destName ); if (!bSuccess) { m_pStatusInfo->addText( i18n("Error: Rename failed.") ); return false; } return true; } bool DirectoryMergeWindow::Data::makeDir( const QString& name, bool bQuiet ) { FileAccess fi(name, true); if( fi.exists() && fi.isDir() ) return true; if( fi.exists() && !fi.isDir() ) { bool bSuccess = deleteFLD( name, true ); if (!bSuccess) { m_pStatusInfo->addText( i18n("Error during makeDir of %1. " "Cannot delete existing file." ,name)); return false; } } int pos=name.lastIndexOf('/'); if ( pos>0 ) { QString parentName = name.left(pos); bool bSuccess = makeDir(parentName,true); if (!bSuccess) return false; } if ( ! bQuiet ) m_pStatusInfo->addText(i18n("makeDir( %1 )",name)); if ( m_bSimulatedMergeStarted ) { return true; } bool bSuccess = FileAccess::makeDir( name ); if ( bSuccess == false ) { m_pStatusInfo->addText( i18n("Error while creating directory.") ); return false; } return true; } DirectoryMergeInfo::DirectoryMergeInfo( QWidget* pParent ) : QFrame(pParent) { QVBoxLayout *topLayout = new QVBoxLayout( this ); topLayout->setMargin(0); QGridLayout *grid = new QGridLayout(); topLayout->addLayout(grid); grid->setColumnStretch(1,10); int line=0; m_pA = new QLabel("A",this); grid->addWidget( m_pA,line, 0 ); m_pInfoA = new QLabel(this); grid->addWidget( m_pInfoA,line,1 ); ++line; m_pB = new QLabel("B",this); grid->addWidget( m_pB,line, 0 ); m_pInfoB = new QLabel(this); grid->addWidget( m_pInfoB,line,1 ); ++line; m_pC = new QLabel("C",this); grid->addWidget( m_pC,line, 0 ); m_pInfoC = new QLabel(this); grid->addWidget( m_pInfoC,line,1 ); ++line; m_pDest = new QLabel(i18n("Dest"),this); grid->addWidget( m_pDest,line, 0 ); m_pInfoDest = new QLabel(this); grid->addWidget( m_pInfoDest,line,1 ); ++line; m_pInfoList = new QTreeWidget(this); topLayout->addWidget( m_pInfoList ); m_pInfoList->setHeaderLabels( QStringList() << i18n("Dir") << i18n("Type") << i18n("Size") << i18n("Attr") << i18n("Last Modification") << i18n("Link-Destination") ); setMinimumSize( 100,100 ); m_pInfoList->installEventFilter(this); m_pInfoList->setRootIsDecorated( false ); } bool DirectoryMergeInfo::eventFilter(QObject*o, QEvent* e) { if ( e->type()==QEvent::FocusIn && o==m_pInfoList ) emit gotFocus(); return false; } static void addListViewItem( QTreeWidget* pListView, const QString& dir, const QString& basePath, FileAccess* fi ) { if ( basePath.isEmpty() ) { return; } else { if ( fi!=0 && fi->exists() ) { QString dateString = fi->lastModified().toString("yyyy-MM-dd hh:mm:ss"); new QTreeWidgetItem( pListView, QStringList() << dir << QString( fi->isDir() ? i18n("Dir") : i18n("File") ) + (fi->isSymLink() ? "-Link" : "") << QString::number(fi->size()) << QString(fi->isReadable() ? "r" : " ") + (fi->isWritable()?"w" : " ") #ifdef _WIN32 /*Future: Use GetFileAttributes()*/ << #else + (fi->isExecutable()?"x" : " ") << #endif dateString << QString(fi->isSymLink() ? (" -> " + fi->readLink()) : QString("")) ); } else { new QTreeWidgetItem( pListView, QStringList() << dir << i18n("not available") << "" << "" << "" << "" ); } } } void DirectoryMergeInfo::setInfo( const FileAccess& dirA, const FileAccess& dirB, const FileAccess& dirC, const FileAccess& dirDest, MergeFileInfos& mfi ) { bool bHideDest = false; if ( dirA.absoluteFilePath()==dirDest.absoluteFilePath() ) { m_pA->setText( i18n("A (Dest): ") ); bHideDest=true; } else m_pA->setText( !dirC.isValid() ? QString("A: ") : i18n("A (Base): ")); m_pInfoA->setText( dirA.prettyAbsPath() ); if ( dirB.absoluteFilePath()==dirDest.absoluteFilePath() ) { m_pB->setText( i18n("B (Dest): ") ); bHideDest=true; } else m_pB->setText( "B: " ); m_pInfoB->setText( dirB.prettyAbsPath() ); if ( dirC.absoluteFilePath()==dirDest.absoluteFilePath() ) { m_pC->setText( i18n("C (Dest): ") ); bHideDest=true; } else m_pC->setText( "C: " ); m_pInfoC->setText( dirC.prettyAbsPath() ); m_pDest->setText( i18n("Dest: ") ); m_pInfoDest->setText( dirDest.prettyAbsPath() ); if (!dirC.isValid()) { m_pC->hide(); m_pInfoC->hide(); } else { m_pC->show(); m_pInfoC->show(); } if (!dirDest.isValid()||bHideDest) { m_pDest->hide(); m_pInfoDest->hide(); } else { m_pDest->show(); m_pInfoDest->show(); } m_pInfoList->clear(); addListViewItem( m_pInfoList, "A", dirA.prettyAbsPath(), mfi.m_pFileInfoA ); addListViewItem( m_pInfoList, "B", dirB.prettyAbsPath(), mfi.m_pFileInfoB ); addListViewItem( m_pInfoList, "C", dirC.prettyAbsPath(), mfi.m_pFileInfoC ); if (!bHideDest) { FileAccess fiDest( dirDest.prettyAbsPath() + "/" + mfi.subPath(), true ); addListViewItem( m_pInfoList, i18n("Dest"), dirDest.prettyAbsPath(), &fiDest ); } for (int i=0;icolumnCount();++i) m_pInfoList->resizeColumnToContents ( i ); } QTextStream& operator<<( QTextStream& ts, MergeFileInfos& mfi ) { ts << "{\n"; ValueMap vm; vm.writeEntry( "SubPath", mfi.subPath() ); vm.writeEntry( "ExistsInA", mfi.existsInA() ); vm.writeEntry( "ExistsInB", mfi.existsInB() ); vm.writeEntry( "ExistsInC", mfi.existsInC() ); vm.writeEntry( "EqualAB", mfi.m_bEqualAB ); vm.writeEntry( "EqualAC", mfi.m_bEqualAC ); vm.writeEntry( "EqualBC", mfi.m_bEqualBC ); //DirMergeItem* m_pDMI; //MergeFileInfos* m_pParent; vm.writeEntry( "MergeOperation", (int) mfi.m_eMergeOperation ); vm.writeEntry( "DirA", mfi.dirA() ); vm.writeEntry( "DirB", mfi.dirB() ); vm.writeEntry( "DirC", mfi.dirC() ); vm.writeEntry( "LinkA", mfi.isLinkA() ); vm.writeEntry( "LinkB", mfi.isLinkB() ); vm.writeEntry( "LinkC", mfi.isLinkC() ); vm.writeEntry( "OperationComplete", mfi.m_bOperationComplete ); //bool m_bSimOpComplete ); vm.writeEntry( "AgeA", (int) mfi.m_ageA ); vm.writeEntry( "AgeB", (int) mfi.m_ageB ); vm.writeEntry( "AgeC", (int) mfi.m_ageC ); vm.writeEntry( "ConflictingAges", mfi.m_bConflictingAges ); // Equal age but files are not! //FileAccess m_fileInfoA; //FileAccess m_fileInfoB; //FileAccess m_fileInfoC; //TotalDiffStatus m_totalDiffStatus; vm.save(ts); ts << "}\n"; return ts; } void DirectoryMergeWindow::slotSaveMergeState() { //slotStatusMsg(i18n("Saving Directory Merge State ...")); //QString s = KFileDialog::getSaveUrl( QDir::currentPath(), 0, this, i18n("Save As...") ).url(); QString s = KFileDialog::getSaveFileName( QDir::currentPath(), 0, this, i18n("Save Directory Merge State As...") ); if(!s.isEmpty()) { d->m_dirMergeStateFilename = s; QFile file(d->m_dirMergeStateFilename); bool bSuccess = file.open( QIODevice::WriteOnly ); if ( bSuccess ) { QTextStream ts( &file ); QModelIndex mi( d->index(0,0,QModelIndex()) ); while ( mi.isValid() ) { MergeFileInfos* pMFI = d->getMFI(mi); ts << *pMFI; mi = d->treeIterator(mi,true,true); } } } //slotStatusMsg(i18n("Ready.")); } void DirectoryMergeWindow::slotLoadMergeState() { } void DirectoryMergeWindow::updateFileVisibilities() { bool bShowIdentical = d->m_pDirShowIdenticalFiles->isChecked(); bool bShowDifferent = d->m_pDirShowDifferentFiles->isChecked(); bool bShowOnlyInA = d->m_pDirShowFilesOnlyInA->isChecked(); bool bShowOnlyInB = d->m_pDirShowFilesOnlyInB->isChecked(); bool bShowOnlyInC = d->m_pDirShowFilesOnlyInC->isChecked(); bool bThreeDirs = d->m_dirC.isValid(); d->m_selection1Index = QModelIndex(); d->m_selection2Index = QModelIndex(); d->m_selection3Index = QModelIndex(); // in first run set all dirs to equal and determine if they are not equal. // on second run don't change the equal-status anymore; it is needed to // set the visibility (when bShowIdentical is false). for( int loop=0; loop<2; ++loop ) { QModelIndex mi = d->rowCount()>0 ? d->index(0,0,QModelIndex()) : QModelIndex(); while( mi.isValid() ) { MergeFileInfos* pMFI = d->getMFI(mi); bool bDir = pMFI->dirA() || pMFI->dirB() || pMFI->dirC(); if ( loop==0 && bDir ) { bool bChange = false; if ( !pMFI->m_bEqualAB && pMFI->dirA() == pMFI->dirB() && pMFI->isLinkA()== pMFI->isLinkB() ) { pMFI->m_bEqualAB = true; bChange=true; } if ( !pMFI->m_bEqualBC && pMFI->dirC() == pMFI->dirB() && pMFI->isLinkC()== pMFI->isLinkB() ) { pMFI->m_bEqualBC = true; bChange=true; } if ( !pMFI->m_bEqualAC && pMFI->dirA() == pMFI->dirC() && pMFI->isLinkA()== pMFI->isLinkC() ) { pMFI->m_bEqualAC = true; bChange=true; } if ( bChange ) setPixmaps( *pMFI, bThreeDirs ); } bool bExistsEverywhere = pMFI->existsInA() && pMFI->existsInB() && (pMFI->existsInC() || !bThreeDirs); int existCount = int(pMFI->existsInA()) + int(pMFI->existsInB()) + int(pMFI->existsInC()); bool bVisible = ( bShowIdentical && bExistsEverywhere && pMFI->m_bEqualAB && (pMFI->m_bEqualAC || !bThreeDirs) ) || ( (bShowDifferent||bDir) && existCount>=2 && (!pMFI->m_bEqualAB || !(pMFI->m_bEqualAC || !bThreeDirs))) || ( bShowOnlyInA && pMFI->existsInA() && !pMFI->existsInB() && !pMFI->existsInC() ) || ( bShowOnlyInB && !pMFI->existsInA() && pMFI->existsInB() && !pMFI->existsInC() ) || ( bShowOnlyInC && !pMFI->existsInA() && !pMFI->existsInB() && pMFI->existsInC() ); QString fileName = pMFI->fileName(); bVisible = bVisible && ( (bDir && ! wildcardMultiMatch( d->m_pOptions->m_DmDirAntiPattern, fileName, d->m_bCaseSensitive )) || (wildcardMultiMatch( d->m_pOptions->m_DmFilePattern, fileName, d->m_bCaseSensitive ) && !wildcardMultiMatch( d->m_pOptions->m_DmFileAntiPattern, fileName, d->m_bCaseSensitive )) ); setRowHidden(mi.row(),mi.parent(),!bVisible); bool bEqual = bThreeDirs ? pMFI->m_bEqualAB && pMFI->m_bEqualAC : pMFI->m_bEqualAB; if ( !bEqual && bVisible && loop==0 ) // Set all parents to "not equal" { MergeFileInfos* p2 = pMFI->m_pParent; while(p2!=0) { bool bChange = false; if ( !pMFI->m_bEqualAB && p2->m_bEqualAB ){ p2->m_bEqualAB = false; bChange=true; } if ( !pMFI->m_bEqualAC && p2->m_bEqualAC ){ p2->m_bEqualAC = false; bChange=true; } if ( !pMFI->m_bEqualBC && p2->m_bEqualBC ){ p2->m_bEqualBC = false; bChange=true; } if ( bChange ) setPixmaps( *p2, bThreeDirs ); else break; p2 = p2->m_pParent; } } mi = d->treeIterator( mi, true, true ); } } } void DirectoryMergeWindow::slotShowIdenticalFiles() { d->m_pOptions->m_bDmShowIdenticalFiles=d->m_pDirShowIdenticalFiles->isChecked(); updateFileVisibilities(); } void DirectoryMergeWindow::slotShowDifferentFiles() { updateFileVisibilities(); } void DirectoryMergeWindow::slotShowFilesOnlyInA() { updateFileVisibilities(); } void DirectoryMergeWindow::slotShowFilesOnlyInB() { updateFileVisibilities(); } void DirectoryMergeWindow::slotShowFilesOnlyInC() { updateFileVisibilities(); } void DirectoryMergeWindow::slotSynchronizeDirectories() { } void DirectoryMergeWindow::slotChooseNewerFiles() { } void DirectoryMergeWindow::initDirectoryMergeActions( QObject* pKDiff3App, KActionCollection* ac ) { #include "xpm/startmerge.xpm" #include "xpm/showequalfiles.xpm" #include "xpm/showfilesonlyina.xpm" #include "xpm/showfilesonlyinb.xpm" #include "xpm/showfilesonlyinc.xpm" DirectoryMergeWindow* p = this; d->m_pDirStartOperation = KDiff3::createAction< KAction >(i18n("Start/Continue Directory Merge"), KShortcut( Qt::Key_F7 ), p, SLOT(slotRunOperationForAllItems()), ac, "dir_start_operation"); d->m_pDirRunOperationForCurrentItem = KDiff3::createAction< KAction >(i18n("Run Operation for Current Item"), KShortcut( Qt::Key_F6 ), p, SLOT(slotRunOperationForCurrentItem()), ac, "dir_run_operation_for_current_item"); d->m_pDirCompareCurrent = KDiff3::createAction< KAction >(i18n("Compare Selected File"), p, SLOT(compareCurrentFile()), ac, "dir_compare_current"); d->m_pDirMergeCurrent = KDiff3::createAction< KAction >(i18n("Merge Current File"), QIcon(QPixmap(startmerge)), i18n("Merge\nFile"), pKDiff3App, SLOT(slotMergeCurrentFile()), ac, "merge_current"); d->m_pDirFoldAll = KDiff3::createAction< KAction >(i18n("Fold All Subdirs"), p, SLOT(collapseAll()), ac, "dir_fold_all"); d->m_pDirUnfoldAll = KDiff3::createAction< KAction >(i18n("Unfold All Subdirs"), p, SLOT(expandAll()), ac, "dir_unfold_all"); d->m_pDirRescan = KDiff3::createAction< KAction >(i18n("Rescan"), KShortcut( Qt::SHIFT+Qt::Key_F5 ), p, SLOT(reload()), ac, "dir_rescan"); d->m_pDirSaveMergeState = 0; //KDiff3::createAction< KAction >(i18n("Save Directory Merge State ..."), 0, p, SLOT(slotSaveMergeState()), ac, "dir_save_merge_state"); d->m_pDirLoadMergeState = 0; //KDiff3::createAction< KAction >(i18n("Load Directory Merge State ..."), 0, p, SLOT(slotLoadMergeState()), ac, "dir_load_merge_state"); d->m_pDirChooseAEverywhere = KDiff3::createAction< KAction >(i18n("Choose A for All Items"), p, SLOT(slotChooseAEverywhere()), ac, "dir_choose_a_everywhere"); d->m_pDirChooseBEverywhere = KDiff3::createAction< KAction >(i18n("Choose B for All Items"), p, SLOT(slotChooseBEverywhere()), ac, "dir_choose_b_everywhere"); d->m_pDirChooseCEverywhere = KDiff3::createAction< KAction >(i18n("Choose C for All Items"), p, SLOT(slotChooseCEverywhere()), ac, "dir_choose_c_everywhere"); d->m_pDirAutoChoiceEverywhere = KDiff3::createAction< KAction >(i18n("Auto-Choose Operation for All Items"), p, SLOT(slotAutoChooseEverywhere()), ac, "dir_autochoose_everywhere"); d->m_pDirDoNothingEverywhere = KDiff3::createAction< KAction >(i18n("No Operation for All Items"), p, SLOT(slotNoOpEverywhere()), ac, "dir_nothing_everywhere"); // d->m_pDirSynchronizeDirectories = KDiff3::createAction< KToggleAction >(i18n("Synchronize Directories"), 0, this, SLOT(slotSynchronizeDirectories()), ac, "dir_synchronize_directories"); // d->m_pDirChooseNewerFiles = KDiff3::createAction< KToggleAction >(i18n("Copy Newer Files Instead of Merging"), 0, this, SLOT(slotChooseNewerFiles()), ac, "dir_choose_newer_files"); d->m_pDirShowIdenticalFiles = KDiff3::createAction< KToggleAction >(i18n("Show Identical Files"), QIcon(QPixmap(showequalfiles)), i18n("Identical\nFiles"), this, SLOT(slotShowIdenticalFiles()), ac, "dir_show_identical_files"); d->m_pDirShowDifferentFiles = KDiff3::createAction< KToggleAction >(i18n("Show Different Files"), this, SLOT(slotShowDifferentFiles()), ac, "dir_show_different_files"); d->m_pDirShowFilesOnlyInA = KDiff3::createAction< KToggleAction >(i18n("Show Files only in A"), QIcon(QPixmap(showfilesonlyina)), i18n("Files\nonly in A"), this, SLOT(slotShowFilesOnlyInA()), ac, "dir_show_files_only_in_a"); d->m_pDirShowFilesOnlyInB = KDiff3::createAction< KToggleAction >(i18n("Show Files only in B"), QIcon(QPixmap(showfilesonlyinb)), i18n("Files\nonly in B"), this, SLOT(slotShowFilesOnlyInB()), ac, "dir_show_files_only_in_b"); d->m_pDirShowFilesOnlyInC = KDiff3::createAction< KToggleAction >(i18n("Show Files only in C"), QIcon(QPixmap(showfilesonlyinc)), i18n("Files\nonly in C"), this, SLOT(slotShowFilesOnlyInC()), ac, "dir_show_files_only_in_c"); d->m_pDirShowIdenticalFiles->setChecked( d->m_pOptions->m_bDmShowIdenticalFiles ); d->m_pDirCompareExplicit = KDiff3::createAction< KAction >(i18n("Compare Explicitly Selected Files"), p, SLOT(slotCompareExplicitlySelectedFiles()), ac, "dir_compare_explicitly_selected_files"); d->m_pDirMergeExplicit = KDiff3::createAction< KAction >(i18n("Merge Explicitly Selected Files"), p, SLOT(slotMergeExplicitlySelectedFiles()), ac, "dir_merge_explicitly_selected_files"); d->m_pDirCurrentDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_do_nothing"); d->m_pDirCurrentChooseA = KDiff3::createAction< KAction >(i18n("A"), p, SLOT(slotCurrentChooseA()), ac, "dir_current_choose_a"); d->m_pDirCurrentChooseB = KDiff3::createAction< KAction >(i18n("B"), p, SLOT(slotCurrentChooseB()), ac, "dir_current_choose_b"); d->m_pDirCurrentChooseC = KDiff3::createAction< KAction >(i18n("C"), p, SLOT(slotCurrentChooseC()), ac, "dir_current_choose_c"); d->m_pDirCurrentMerge = KDiff3::createAction< KAction >(i18n("Merge"), p, SLOT(slotCurrentMerge()), ac, "dir_current_merge"); d->m_pDirCurrentDelete = KDiff3::createAction< KAction >(i18n("Delete (if exists)"), p, SLOT(slotCurrentDelete()), ac, "dir_current_delete"); d->m_pDirCurrentSyncDoNothing = KDiff3::createAction< KAction >(i18n("Do Nothing"), p, SLOT(slotCurrentDoNothing()), ac, "dir_current_sync_do_nothing"); d->m_pDirCurrentSyncCopyAToB = KDiff3::createAction< KAction >(i18n("Copy A to B"), p, SLOT(slotCurrentCopyAToB()), ac, "dir_current_sync_copy_a_to_b" ); d->m_pDirCurrentSyncCopyBToA = KDiff3::createAction< KAction >(i18n("Copy B to A"), p, SLOT(slotCurrentCopyBToA()), ac, "dir_current_sync_copy_b_to_a" ); d->m_pDirCurrentSyncDeleteA = KDiff3::createAction< KAction >(i18n("Delete A"), p, SLOT(slotCurrentDeleteA()), ac,"dir_current_sync_delete_a"); d->m_pDirCurrentSyncDeleteB = KDiff3::createAction< KAction >(i18n("Delete B"), p, SLOT(slotCurrentDeleteB()), ac,"dir_current_sync_delete_b"); d->m_pDirCurrentSyncDeleteAAndB = KDiff3::createAction< KAction >(i18n("Delete A && B"), p, SLOT(slotCurrentDeleteAAndB()), ac,"dir_current_sync_delete_a_and_b"); d->m_pDirCurrentSyncMergeToA = KDiff3::createAction< KAction >(i18n("Merge to A"), p, SLOT(slotCurrentMergeToA()), ac,"dir_current_sync_merge_to_a"); d->m_pDirCurrentSyncMergeToB = KDiff3::createAction< KAction >(i18n("Merge to B"), p, SLOT(slotCurrentMergeToB()), ac,"dir_current_sync_merge_to_b"); d->m_pDirCurrentSyncMergeToAAndB = KDiff3::createAction< KAction >(i18n("Merge to A && B"), p, SLOT(slotCurrentMergeToAAndB()), ac,"dir_current_sync_merge_to_a_and_b"); } void DirectoryMergeWindow::updateAvailabilities( bool bDirCompare, bool bDiffWindowVisible, KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC ) { d->m_pDirStartOperation->setEnabled( bDirCompare ); d->m_pDirRunOperationForCurrentItem->setEnabled( bDirCompare ); d->m_pDirFoldAll->setEnabled( bDirCompare ); d->m_pDirUnfoldAll->setEnabled( bDirCompare ); d->m_pDirCompareCurrent->setEnabled( bDirCompare && isVisible() && isFileSelected() ); d->m_pDirMergeCurrent->setEnabled( (bDirCompare && isVisible() && isFileSelected()) || bDiffWindowVisible ); d->m_pDirRescan->setEnabled( bDirCompare ); d->m_pDirAutoChoiceEverywhere->setEnabled( bDirCompare && isVisible() ); d->m_pDirDoNothingEverywhere->setEnabled( bDirCompare && isVisible() ); d->m_pDirChooseAEverywhere->setEnabled( bDirCompare && isVisible() ); d->m_pDirChooseBEverywhere->setEnabled( bDirCompare && isVisible() ); d->m_pDirChooseCEverywhere->setEnabled( bDirCompare && isVisible() ); bool bThreeDirs = d->m_dirC.isValid(); MergeFileInfos* pMFI = d->getMFI( currentIndex() ); bool bItemActive = bDirCompare && isVisible() && pMFI!=0;// && hasFocus(); bool bMergeMode = bThreeDirs || !d->m_bSyncMode; bool bFTConflict = pMFI==0 ? false : conflictingFileTypes(*pMFI); bool bDirWindowHasFocus = isVisible() && hasFocus(); d->m_pDirShowIdenticalFiles->setEnabled( bDirCompare && isVisible() ); d->m_pDirShowDifferentFiles->setEnabled( bDirCompare && isVisible() ); d->m_pDirShowFilesOnlyInA->setEnabled( bDirCompare && isVisible() ); d->m_pDirShowFilesOnlyInB->setEnabled( bDirCompare && isVisible() ); d->m_pDirShowFilesOnlyInC->setEnabled( bDirCompare && isVisible() && bThreeDirs ); d->m_pDirCompareExplicit->setEnabled( bDirCompare && isVisible() && d->m_selection2Index.isValid() ); d->m_pDirMergeExplicit->setEnabled( bDirCompare && isVisible() && d->m_selection2Index.isValid() ); d->m_pDirCurrentDoNothing->setEnabled( bItemActive && bMergeMode ); d->m_pDirCurrentChooseA->setEnabled( bItemActive && bMergeMode && pMFI->existsInA() ); d->m_pDirCurrentChooseB->setEnabled( bItemActive && bMergeMode && pMFI->existsInB() ); d->m_pDirCurrentChooseC->setEnabled( bItemActive && bMergeMode && pMFI->existsInC() ); d->m_pDirCurrentMerge->setEnabled( bItemActive && bMergeMode && !bFTConflict ); d->m_pDirCurrentDelete->setEnabled( bItemActive && bMergeMode ); if ( bDirWindowHasFocus ) { chooseA->setEnabled( bItemActive && pMFI->existsInA() ); chooseB->setEnabled( bItemActive && pMFI->existsInB() ); chooseC->setEnabled( bItemActive && pMFI->existsInC() ); chooseA->setChecked( false ); chooseB->setChecked( false ); chooseC->setChecked( false ); } d->m_pDirCurrentSyncDoNothing->setEnabled( bItemActive && !bMergeMode ); d->m_pDirCurrentSyncCopyAToB->setEnabled( bItemActive && !bMergeMode && pMFI->existsInA() ); d->m_pDirCurrentSyncCopyBToA->setEnabled( bItemActive && !bMergeMode && pMFI->existsInB() ); d->m_pDirCurrentSyncDeleteA->setEnabled( bItemActive && !bMergeMode && pMFI->existsInA() ); d->m_pDirCurrentSyncDeleteB->setEnabled( bItemActive && !bMergeMode && pMFI->existsInB() ); d->m_pDirCurrentSyncDeleteAAndB->setEnabled( bItemActive && !bMergeMode && pMFI->existsInB() && pMFI->existsInB() ); d->m_pDirCurrentSyncMergeToA->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); d->m_pDirCurrentSyncMergeToB->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); d->m_pDirCurrentSyncMergeToAAndB->setEnabled( bItemActive && !bMergeMode && !bFTConflict ); } //#include "directorymergewindow.moc" kdiff3-0.9.97/src-QT4/kdiff3_part.cpp0000644000175100001440000002443212000244602016410 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2007 Joachim Eibl * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "kdiff3_part.h" #include #include #include #include #include #include #include #include "kdiff3.h" #include "fileaccess.h" #include #include #include "version.h" KDiff3Part::KDiff3Part( QWidget *parentWidget, const char *widgetName, QObject *parent ) : KParts::ReadWritePart(parent) { // we need an instance setComponentData( *KDiff3PartFactory::instance() ); // this should be your custom internal widget m_widget = new KDiff3App( parentWidget, widgetName, this ); // This hack is necessary to avoid a crash when the program terminates. m_bIsShell = qobject_cast(parentWidget)!=0; // notify the part that this is our internal widget setWidget(m_widget); // create our actions //KStandardAction::open(this, SLOT(fileOpen()), actionCollection()); //KStandardAction::saveAs(this, SLOT(fileSaveAs()), actionCollection()); //KStandardAction::save(this, SLOT(save()), actionCollection()); setXMLFile("kdiff3_part.rc"); // we are read-write by default setReadWrite(true); // we are not modified since we haven't done anything yet setModified(false); } KDiff3Part::~KDiff3Part() { if ( m_widget!=0 && ! m_bIsShell ) { m_widget->saveOptions( m_widget->isPart() ? componentData().config() : KGlobal::config() ); } } void KDiff3Part::setReadWrite(bool /*rw*/) { // ReadWritePart::setReadWrite(rw); } void KDiff3Part::setModified(bool /*modified*/) { /* // get a handle on our Save action and make sure it is valid KAction *save = actionCollection()->action(KStandardAction::stdName(KStandardAction::Save)); if (!save) return; // if so, we either enable or disable it based on the current // state if (modified) save->setEnabled(true); else save->setEnabled(false); // in any event, we want our parent to do it's thing ReadWritePart::setModified(modified); */ } static void getNameAndVersion( const QString& str, const QString& lineStart, QString& fileName, QString& version ) { if ( str.left( lineStart.length() )==lineStart && fileName.isEmpty() ) { int pos = lineStart.length(); while ( pospos ) { while (pos2>pos && str[pos2]!=' ' && str[pos2]!='\t') --pos2; fileName = str.mid( pos, pos2-pos ); fprintf(stderr, "KDiff3: %s\n", fileName.toLatin1().constData()); if ( FileAccess(fileName).exists() ) break; --pos2; } int vpos = str.lastIndexOf("\t", -1); if ( vpos>0 && vpos>(int)pos2 ) { version = str.mid( vpos+1 ); while( !version.right(1)[0].isLetterOrNumber() ) version.truncate( version.length()-1 ); } } } bool KDiff3Part::openFile() { // m_file is always local so we can use QFile on it fprintf(stderr, "KDiff3: %s\n", localFilePath().toLatin1().constData()); QFile file(localFilePath()); if (file.open(QIODevice::ReadOnly) == false) return false; // our example widget is text-based, so we use QTextStream instead // of a raw QDataStream QTextStream stream(&file); QString str; QString fileName1; QString fileName2; QString version1; QString version2; while (!stream.atEnd() && (fileName1.isEmpty() || fileName2.isEmpty()) ) { str = stream.readLine() + "\n"; getNameAndVersion( str, "---", fileName1, version1 ); getNameAndVersion( str, "+++", fileName2, version2 ); } file.close(); if ( fileName1.isEmpty() && fileName2.isEmpty() ) { KMessageBox::sorry(m_widget, i18n("Couldn't find files for comparison.")); return false; } FileAccess f1(fileName1); FileAccess f2(fileName2); if ( f1.exists() && f2.exists() && fileName1!=fileName2 ) { m_widget->slotFileOpen2( fileName1, fileName2, "", "", "", "", "", 0 ); return true; } else if ( version1.isEmpty() && f1.exists() ) { // Normal patch // patch -f -u --ignore-whitespace -i [inputfile] -o [outfile] [patchfile] QString tempFileName = FileAccess::tempFileName(); QString cmd = "patch -f -u --ignore-whitespace -i \"" + localFilePath() + "\" -o \""+tempFileName + "\" \"" + fileName1+ "\""; QProcess process; process.start( cmd ); process.waitForFinished(-1); m_widget->slotFileOpen2( fileName1, tempFileName, "", "", "", version2.isEmpty() ? fileName2 : "REV:"+version2+":"+fileName2, "", 0 ); // alias names // std::cerr << "KDiff3: f1:" << fileName1.toLatin1() <<"<->"<slotFileOpen2( tempFileName, fileName2, "", "", version1.isEmpty() ? fileName1 : "REV:"+version1+":"+fileName1, "", "", 0 ); // alias name // std::cerr << "KDiff3: f2:" << fileName2.toLatin1() <<"<->"<%s\n", fileName1.toLatin1().constData(), fileName2.toLatin1().constData()); // Assuming that files are on CVS: Try to get them // cvs update -p -r [REV] [FILE] > [OUTPUTFILE] QString tempFileName1 = FileAccess::tempFileName(); QString cmd1 = "cvs update -p -r " + version1 + " \"" + fileName1 + "\" >\""+tempFileName1+"\""; QProcess process1; process1.start( cmd1 ); process1.waitForFinished(-1); QString tempFileName2 = FileAccess::tempFileName(); QString cmd2 = "cvs update -p -r " + version2 + " \"" + fileName2 + "\" >\""+tempFileName2+"\""; QProcess process2; process2.start( cmd2 ); process2.waitForFinished(-1); m_widget->slotFileOpen2( tempFileName1, tempFileName2, "", "", "REV:"+version1+":"+fileName1, "REV:"+version2+":"+fileName2, "", 0 ); // std::cerr << "KDiff3: f1/2:" << tempFileName1.toLatin1() <<"<->"<text(); file.close(); return true; */ return false; // Not implemented } // It's usually safe to leave the factory code alone.. with the // notable exception of the KAboutData data #include #include #include KComponentData* KDiff3PartFactory::s_instance = 0L; KAboutData* KDiff3PartFactory::s_about = 0L; KDiff3PartFactory::KDiff3PartFactory() : KParts::Factory() { } KDiff3PartFactory::~KDiff3PartFactory() { delete s_instance; delete s_about; s_instance = 0L; } KParts::Part* KDiff3PartFactory::createPartObject( QWidget *parentWidget, QObject *parent, const char *classname, const QStringList&/*args*/ ) { // Create an instance of our Part KDiff3Part* obj = new KDiff3Part( parentWidget, 0, parent ); // See if we are to be read-write or not if (QString(classname) == "KParts::ReadOnlyPart") obj->setReadWrite(false); return obj; } KComponentData* KDiff3PartFactory::instance() { if( !s_instance ) { s_about = new KAboutData(QByteArray("kdiff3part"), QByteArray("kdiff3part"), ki18n("KDiff3Part"), QByteArray(VERSION)); s_about->addAuthor(ki18n("Joachim Eibl"), KLocalizedString(), QByteArray("joachim.eibl at gmx.de")); s_instance = new KComponentData(s_about); } return s_instance; } extern "C" { void* init_libkdiff3part() { return new KDiff3PartFactory; } } // Suppress warning with --enable-final #undef VERSION //#include "kdiff3_part.moc" kdiff3-0.9.97/src-QT4/hi16-app-kdiff3.png0000644000175100001440000000026411626145612016722 0ustar joachimusersPNG  IHDRRPLTE@}tRNS@fPIDATxE @! &(dU|'h@A54zIWgfrWO@+,R@ چN[OկIENDB`kdiff3-0.9.97/src-QT4/directorymergewindow.h0000644000175100001440000001313112000244602020127 0ustar joachimusers/*************************************************************************** directorymergewindow.h ------------------- begin : Sat Oct 19 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef DIRECTORY_MERGE_WINDOW_H #define DIRECTORY_MERGE_WINDOW_H #include #include #include #include #include "common.h" #include "fileaccess.h" #include "diff.h" //TotalDiffStatus class Options; class KIconLoader; class StatusInfo; class DirectoryMergeInfo; class OneDirectoryInfo; class QLabel; class KAction; class KToggleAction; class KActionCollection; class TotalDiffStatus; enum e_MergeOperation { eTitleId, eNoOperation, // Operations in sync mode (with only two directories): eCopyAToB, eCopyBToA, eDeleteA, eDeleteB, eDeleteAB, eMergeToA, eMergeToB, eMergeToAB, // Operations in merge mode (with two or three directories) eCopyAToDest, eCopyBToDest, eCopyCToDest, eDeleteFromDest, eMergeABCToDest, eMergeABToDest, eConflictingFileTypes, // Error eChangedAndDeleted, // Error eConflictingAges // Equal age but files are not! }; enum e_Age { eNew, eMiddle, eOld, eNotThere, eAgeEnd }; class MergeFileInfos; class DirectoryMergeWindow : public QTreeView { Q_OBJECT public: DirectoryMergeWindow( QWidget* pParent, Options* pOptions, KIconLoader* pIconLoader ); ~DirectoryMergeWindow(); void setDirectoryMergeInfo(DirectoryMergeInfo* p); bool init( FileAccess& dirA, FileAccess& dirB, FileAccess& dirC, FileAccess& dirDest, bool bDirectoryMerge, bool bReload = false ); bool isFileSelected(); bool isDirectoryMergeInProgress(); int totalColumnWidth(); bool isSyncMode(); bool isScanning(); void initDirectoryMergeActions( QObject* pKDiff3App, KActionCollection* ac ); void updateAvailabilities( bool bDirCompare, bool bDiffWindowVisible, KToggleAction* chooseA, KToggleAction* chooseB, KToggleAction* chooseC ); void updateFileVisibilities(); virtual void mousePressEvent( QMouseEvent* e ); virtual void keyPressEvent( QKeyEvent* e ); virtual void focusInEvent( QFocusEvent* e ); virtual void focusOutEvent( QFocusEvent* e ); virtual void contextMenuEvent( QContextMenuEvent* e ); QString getDirNameA(); QString getDirNameB(); QString getDirNameC(); QString getDirNameDest(); public slots: void reload(); void mergeCurrentFile(); void compareCurrentFile(); void slotRunOperationForAllItems(); void slotRunOperationForCurrentItem(); void mergeResultSaved(const QString& fileName); void slotChooseAEverywhere(); void slotChooseBEverywhere(); void slotChooseCEverywhere(); void slotAutoChooseEverywhere(); void slotNoOpEverywhere(); void slotFoldAllSubdirs(); void slotUnfoldAllSubdirs(); void slotShowIdenticalFiles(); void slotShowDifferentFiles(); void slotShowFilesOnlyInA(); void slotShowFilesOnlyInB(); void slotShowFilesOnlyInC(); void slotSynchronizeDirectories(); void slotChooseNewerFiles(); void slotCompareExplicitlySelectedFiles(); void slotMergeExplicitlySelectedFiles(); // Merge current item (merge mode) void slotCurrentDoNothing(); void slotCurrentChooseA(); void slotCurrentChooseB(); void slotCurrentChooseC(); void slotCurrentMerge(); void slotCurrentDelete(); // Sync current item void slotCurrentCopyAToB(); void slotCurrentCopyBToA(); void slotCurrentDeleteA(); void slotCurrentDeleteB(); void slotCurrentDeleteAAndB(); void slotCurrentMergeToA(); void slotCurrentMergeToB(); void slotCurrentMergeToAAndB(); void slotSaveMergeState(); void slotLoadMergeState(); signals: void startDiffMerge(QString fn1,QString fn2, QString fn3, QString ofn, QString,QString,QString,TotalDiffStatus*); void checkIfCanContinue( bool* pbContinue ); void updateAvailabilities(); void statusBarMessage( const QString& msg ); protected slots: void onDoubleClick( const QModelIndex& ); void onExpanded(); void currentChanged( const QModelIndex & current, const QModelIndex & previous ); // override private: class Data; friend class Data; Data* d; class DirMergeItemDelegate; friend class DirMergeItemDelegate; }; class DirectoryMergeInfo : public QFrame { Q_OBJECT public: DirectoryMergeInfo( QWidget* pParent ); void setInfo( const FileAccess& APath, const FileAccess& BPath, const FileAccess& CPath, const FileAccess& DestPath, MergeFileInfos& mfi ); QTreeWidget* getInfoList() {return m_pInfoList;} virtual bool eventFilter( QObject* o, QEvent* e ); signals: void gotFocus(); private: QLabel* m_pInfoA; QLabel* m_pInfoB; QLabel* m_pInfoC; QLabel* m_pInfoDest; QLabel* m_pA; QLabel* m_pB; QLabel* m_pC; QLabel* m_pDest; QTreeWidget* m_pInfoList; }; #endif kdiff3-0.9.97/src-QT4/kdiff3part.desktop0000644000175100001440000000171412000244602017136 0ustar joachimusers[Desktop Entry] Name=KDiff3Part Name[bg]=KDiff3Part Name[bs]=KDiff3Part Name[ca]=KDiff3Part Name[ca@valencia]=KDiff3Part Name[cs]=KDiff3Part Name[da]=KDiff3Part Name[de]=KDiff3Part Name[el]=KDiff3Part Name[en_GB]=KDiff3Part Name[es]=KDiff3Part Name[et]=KDiff3 komponent Name[fr]=KDiff3Part Name[ga]=KDiff3Part Name[gl]=KDiff3Part Name[hi]=के-डिफ3पार्ट Name[hne]=के-डिफ3पार्ट Name[hu]=KDiff3Part Name[it]=KDiff3Part Name[ja]=KDiff3Part Name[km]=KDiff3Part Name[ko]=KDiff3Part Name[ml]=കെഡിഫ്3ഭാഗം Name[nb]=KDiff3Part Name[nds]=KDiff3Part Name[nl]=KDiff3Part Name[nn]=KDiff3Part Name[pl]=Moduł KDiff3 Name[pt]=KDiff3Part Name[pt_BR]=KDiff3Part Name[ro]=KDiff3Part Name[ru]=KDiff3Part Name[sv]=Kdiff3-del Name[tr]=KDiff3Part Name[uk]=KDiff3Part Name[x-test]=xxKDiff3Partxx Name[zh_CN]=KDiff3Part Name[zh_TW]=KDiff3Part ServiceTypes=KParts/ReadOnlyPart,KParts/ReadWritePart X-KDE-Library=libkdiff3part Type=Service kdiff3-0.9.97/src-QT4/smalldialogs.h0000644000175100001440000000774412000244602016343 0ustar joachimusers/*************************************************************************** * Copyright (C) 2005 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef SMALLDIALOGS_H #define SMALLDIALOGS_H #include class Options; class QComboBox; class QCheckBox; class QLineEdit; class OpenDialog : public QDialog { Q_OBJECT public: OpenDialog( QWidget* pParent, const QString& n1, const QString& n2, const QString& n3, bool bMerge, const QString& outputName, const char* slotConfigure, Options* pOptions ); QComboBox* m_pLineA; QComboBox* m_pLineB; QComboBox* m_pLineC; QComboBox* m_pLineOut; QCheckBox* m_pMerge; virtual void accept(); virtual bool eventFilter(QObject* o, QEvent* e); private: Options* m_pOptions; void selectURL( QComboBox* pLine, bool bDir, int i, bool bSave ); bool m_bInputFileNameChanged; private slots: void selectFileA(); void selectFileB(); void selectFileC(); void selectDirA(); void selectDirB(); void selectDirC(); void selectOutputName(); void selectOutputDir(); void internalSlot(int); void inputFilenameChanged(); void slotSwapCopyNames(QAction*); signals: void internalSignal(bool); }; class FindDialog : public QDialog { Q_OBJECT public: FindDialog(QWidget* pParent); void setVisible(bool); //override QDialog::setVisible() signals: void findNext(); public: QLineEdit* m_pSearchString; QCheckBox* m_pSearchInA; QCheckBox* m_pSearchInB; QCheckBox* m_pSearchInC; QCheckBox* m_pSearchInOutput; QCheckBox* m_pCaseSensitive; int currentLine; int currentPos; int currentWindow; }; class RegExpTester : public QDialog { Q_OBJECT private: QLineEdit* m_pAutoMergeRegExpEdit; QLineEdit* m_pAutoMergeMatchResult; QLineEdit* m_pAutoMergeExampleEdit; QLineEdit* m_pHistoryStartRegExpEdit; QLineEdit* m_pHistoryStartMatchResult; QLineEdit* m_pHistoryStartExampleEdit; QLineEdit* m_pHistoryEntryStartRegExpEdit; QLineEdit* m_pHistorySortKeyOrderEdit; QLineEdit* m_pHistoryEntryStartExampleEdit; QLineEdit* m_pHistoryEntryStartMatchResult; QLineEdit* m_pHistorySortKeyResult; public: RegExpTester( QWidget* pParent, const QString& autoMergeRegExpToolTip, const QString& historyStartRegExpToolTip, const QString& historyEntryStartRegExpToolTip, const QString& historySortKeyOrderToolTip ); void init( const QString& autoMergeRegExp, const QString& historyStartRegExp, const QString& historyEntryStartRegExp, const QString sortKeyOrder ); QString autoMergeRegExp(); QString historyStartRegExp(); QString historyEntryStartRegExp(); QString historySortKeyOrder(); public slots: void slotRecalc(); }; #endif kdiff3-0.9.97/src-QT4/stable.cpp0000644000175100001440000000002411627516051015473 0ustar joachimusers#include "stable.h" kdiff3-0.9.97/src-QT4/kreplacements/0000755000175100001440000000000012010303403016334 5ustar joachimuserskdiff3-0.9.97/src-QT4/kreplacements/kshortcutsdialog.h0000644000175100001440000000004311626145613022116 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/ktoggleaction.h0000644000175100001440000000004311626145613021357 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/klocale.h0000644000175100001440000000004311626145613020137 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kurl.h0000644000175100001440000000004311626145613017502 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kinstance.h0000644000175100001440000000004311626145613020504 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kaccel.h0000644000175100001440000000004311626145613017747 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/konq_popupmenu.h0000644000175100001440000000004311626145613021605 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kstandarddirs.h0000644000175100001440000000004311626145613021362 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kparts/0000755000175100001440000000000011626145654017670 5ustar joachimuserskdiff3-0.9.97/src-QT4/kreplacements/kparts/factory.h0000644000175100001440000000004311626145613021500 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kparts/mainwindow.h0000644000175100001440000000004311626145613022205 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kparts/part.h0000644000175100001440000000004311626145613020777 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kmessagebox.h0000644000175100001440000000004311626145613021035 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kdialogbase.h0000644000175100001440000000004311626145613020772 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kcomponentdata.h0000644000175100001440000000004311626145613021534 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kconfig.h0000644000175100001440000000004311626145613020145 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kreplacements.cpp0000644000175100001440000011026512000244602021706 0ustar joachimusers/*************************************************************************** kreplacements.cpp - description ------------------- begin : Sat Aug 3 2002 copyright : (C) 2002-2006 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "kreplacements.h" #include "common.h" #include #include //namespace #include #include #include #include #ifndef QT_NO_COLORDIALOG #include #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include static QString s_copyright; static QString s_email; static QString s_description; static QString s_appName; static QString s_version; static QString s_homepage; static KAboutData* s_pAboutData; #ifdef _WIN32 #include #include #include #endif static void showHelp() { #if defined(_WIN32) || defined(Q_OS_OS2) QString exePath = QCoreApplication::applicationDirPath(); QFileInfo helpFile( exePath + "\\doc\\en\\index.html" ); if ( ! helpFile.exists() ) { helpFile.setFile( exePath + "\\..\\doc\\en\\index.html" ); } if ( ! helpFile.exists() ) { helpFile.setFile( exePath + "\\doc\\index.html" ); } if ( ! helpFile.exists() ) { helpFile.setFile( exePath + "\\..\\doc\\index.html" ); } if ( ! helpFile.exists() ) { QMessageBox::warning( 0, "KDiff3 documentation not found", "Couldn't find the documentation. \n\n" "The documentation can also be found at the homepage:\n\n " " http://kdiff3.sourceforge.net/"); return; } #ifndef Q_OS_OS2 char buf[256]; HINSTANCE hi = FindExecutableA( helpFile.fileName().toAscii(), helpFile.absolutePath().toAscii(), buf ); if ( (quintptr)hi<=32 ) { #endif static QTextBrowser* pBrowser = 0; if (pBrowser==0) { pBrowser = new QTextBrowser( 0 ); pBrowser->setMinimumSize( 600, 400 ); } pBrowser->setSource(QUrl("file:///"+helpFile.filePath())); pBrowser->show(); #ifndef Q_OS_OS2 } else { QFileInfo prog( buf ); QProcess::startDetached ( prog.filePath(), QStringList( "file:///"+helpFile.absoluteFilePath() ) ); } #endif #else static QTextBrowser* pBrowser = 0; if (pBrowser==0) { pBrowser = new QTextBrowser( 0 ); pBrowser->setMinimumSize( 600, 400 ); } pBrowser->setSource(QUrl("file://usr/local/share/doc/kdiff3/en/index.html")); pBrowser->show(); #endif } QString getTranslationDir(const QString& locale) { #if defined(_WIN32) || defined(Q_OS_OS2) QString exePath; exePath = QCoreApplication::applicationDirPath(); return exePath+"/translations"; #else return (QString)"/usr/share/locale/" + locale + "/LC_MESSAGES"; #endif } // static void KMessageBox::error( QWidget* parent, const QString& text, const QString& caption ) { QMessageBox::critical( parent, caption, text ); } int KMessageBox::warningContinueCancel( QWidget* parent, const QString& text, const QString& caption, const QString& button1 ) { return 0 == QMessageBox::warning( parent, caption, text, button1, "Cancel" ) ? Continue : Cancel; } void KMessageBox::sorry( QWidget* parent, const QString& text, const QString& caption ) { QMessageBox::information( parent, caption, text ); } void KMessageBox::information( QWidget* parent, const QString& text, const QString& caption ) { QMessageBox::information( parent, caption, text ); } int KMessageBox::warningYesNo( QWidget* parent, const QString& text, const QString& caption, const QString& button1, const QString& button2 ) { return 0 == QMessageBox::warning( parent, caption, text, button1, button2, QString::null, 1, 1 ) ? Yes : No; } int KMessageBox::warningYesNoCancel( QWidget* parent, const QString& text, const QString& caption, const QString& button1, const QString& button2 ) { int val = QMessageBox::warning( parent, caption, text, button1, button2, i18n("Cancel") ); if ( val==0 ) return Yes; if ( val==1 ) return No; else return Cancel; } KPageDialog::KPageDialog( QWidget* parent ) : QDialog( parent ) { setModal(true); QVBoxLayout *pMainLayout = new QVBoxLayout(this); m_pTabWidget = new QTabWidget(); pMainLayout->addWidget(m_pTabWidget,1); QHBoxLayout* pButtonLayout = new QHBoxLayout(); pMainLayout->addLayout( pButtonLayout ); pButtonLayout->addStretch(1); QPushButton* pOk = new QPushButton( i18n("Ok") ); connect( pOk, SIGNAL( clicked() ), this, SIGNAL(okClicked()) ); pButtonLayout->addWidget( pOk ); QPushButton* pHelp = new QPushButton( i18n("Help") ); connect( pHelp, SIGNAL( clicked() ), this, SLOT(slotHelpClicked())); pButtonLayout->addWidget( pHelp ); QPushButton* pDefaults = new QPushButton( i18n("Defaults") ); connect( pDefaults, SIGNAL( clicked() ), this, SIGNAL(defaultClicked()) ); pButtonLayout->addWidget( pDefaults ); QPushButton* pCancel = new QPushButton( i18n("Cancel") ); connect( pCancel, SIGNAL( clicked() ), this, SLOT(reject())); pButtonLayout->addWidget( pCancel ); } KPageDialog::~KPageDialog() { } void KPageDialog::incrementInitialSize ( const QSize& ) { } void KPageDialog::setHelp(const QString&, const QString& ) { } void KPageDialog::slotHelpClicked() { showHelp(); } int KPageDialog::BarIcon(const QString& /*iconName*/, int ) { return 0; // Not used for replacement. } QFrame* KPageDialog::addPage( const QString& name, const QString& /*info*/, int ) { QFrame* p = new QFrame(); p->setObjectName( name ); m_pTabWidget->addTab( p, name ); return p; } void KPageDialog::addPage( KPageWidgetItem * p ) { m_pTabWidget->addTab( p->m_pWidget, p->m_title ); } int KPageDialog::spacingHint() { return 3; } KUrl KFileDialog::getSaveUrl( const QString &startDir, const QString &filter, QWidget *parent, const QString &caption) { QString s = QFileDialog::getSaveFileName(parent, caption, startDir, filter, 0/*, QFileDialog::DontUseNativeDialog*/); return KUrl(s); } KUrl KFileDialog::getOpenUrl( const QString & startDir, const QString & filter, QWidget * parent, const QString & caption ) { QString s = QFileDialog::getOpenFileName(parent, caption, startDir, filter ); return KUrl(s); } KUrl KFileDialog::getExistingDirectoryUrl( const QString & startDir, QWidget * parent, const QString & caption) { QString s = QFileDialog::getExistingDirectory(parent, caption, startDir); return KUrl(s); } QString KFileDialog::getSaveFileName (const QString &startDir, const QString &filter, QWidget *parent, const QString &caption) { return QFileDialog::getSaveFileName( parent, caption, startDir, filter ); } KToolBar::BarPosition KToolBar::barPos() { if ( m_pMainWindow->toolBarArea(this)==Qt::LeftToolBarArea ) return Left; if ( m_pMainWindow->toolBarArea(this)==Qt::RightToolBarArea ) return Right; if ( m_pMainWindow->toolBarArea(this)==Qt::BottomToolBarArea ) return Bottom; if ( m_pMainWindow->toolBarArea(this)==Qt::TopToolBarArea ) return Top; return Top; } void KToolBar::setBarPos(BarPosition bp) { if ( bp == Left ) m_pMainWindow->addToolBar ( Qt::LeftToolBarArea, this ); else if ( bp == Right ) m_pMainWindow->addToolBar ( Qt::RightToolBarArea, this ); else if ( bp == Bottom ) m_pMainWindow->addToolBar ( Qt::BottomToolBarArea, this ); else if ( bp == Top ) m_pMainWindow->addToolBar ( Qt::TopToolBarArea, this ); } KToolBar::KToolBar( QMainWindow* parent ) : QToolBar( parent ) { m_pMainWindow = parent; } KMainWindow::KMainWindow( QWidget* parent ) : QMainWindow( parent ), m_actionCollection(this) { fileMenu = menuBar()->addMenu( i18n("&File") ); editMenu = menuBar()->addMenu(i18n("&Edit") ); directoryMenu = menuBar()->addMenu(i18n("&Directory") ); dirCurrentItemMenu = 0; dirCurrentSyncItemMenu = 0; movementMenu = menuBar()->addMenu(i18n("&Movement") ); diffMenu = menuBar()->addMenu(i18n("D&iffview") ); mergeMenu = menuBar()->addMenu(i18n("&Merge") ); windowsMenu = menuBar()->addMenu(i18n("&Window") ); settingsMenu = menuBar()->addMenu(i18n("&Settings") ); helpMenu = menuBar()->addMenu(i18n("&Help") ); m_pToolBar = new KToolBar(this); addToolBar( m_pToolBar ); memberList = new QList; memberList->append(this); raise(); } KToolBar* KMainWindow::toolBar(const QString&) { return m_pToolBar; } KActionCollection* KMainWindow::actionCollection() { return &m_actionCollection; } void KMainWindow::createGUI() { KStandardAction::help(this, SLOT(appHelpActivated()), actionCollection()); KStandardAction::about(this, SLOT(slotAbout()), actionCollection()); KStandardAction::aboutQt(actionCollection()); } void KMainWindow::slotAbout() { QDialog d; QVBoxLayout* l = new QVBoxLayout( &d ); QTabWidget* pTabWidget = new QTabWidget; l->addWidget( pTabWidget ); QPushButton* pOkButton = new QPushButton(i18n("Ok")); connect( pOkButton, SIGNAL(clicked()), &d, SLOT(accept())); l->addWidget( pOkButton ); d.setWindowTitle("About " + s_appName); QTextBrowser* tb1 = new QTextBrowser(); tb1->setWordWrapMode( QTextOption::NoWrap ); tb1->setText( s_appName + " Version " + s_version + "\n\n" + s_description + "\n\n" + s_copyright + "\n\nHomepage: " + s_homepage + "\n\nLicence: GNU GPL Version 2" ); pTabWidget->addTab(tb1,i18n("&About")); std::list::iterator i; QString s2; for( i=s_pAboutData->m_authorList.begin(); i!=s_pAboutData->m_authorList.end(); ++i ) { if ( !i->m_name.isEmpty() ) s2 += i->m_name + "\n"; if ( !i->m_task.isEmpty() ) s2 += " " + i->m_task + "\n"; if ( !i->m_email.isEmpty() ) s2 += " " + i->m_email + "\n"; if ( !i->m_weblink.isEmpty() ) s2 += " " + i->m_weblink + "\n"; s2 += "\n"; } QTextBrowser* tb2 = new QTextBrowser(); tb2->setWordWrapMode( QTextOption::NoWrap ); tb2->setText(s2); pTabWidget->addTab(tb2,i18n("A&uthor")); QString s3; for( i=s_pAboutData->m_creditList.begin(); i!=s_pAboutData->m_creditList.end(); ++i ) { if ( !i->m_name.isEmpty() ) s3 += i->m_name + "\n"; if ( !i->m_task.isEmpty() ) s3 += " " + i->m_task + "\n"; if ( !i->m_email.isEmpty() ) s3 += " " + i->m_email + "\n"; if ( !i->m_weblink.isEmpty() ) s3 += " " + i->m_weblink + "\n"; s3 += "\n"; } QTextBrowser* tb3 = new QTextBrowser(); tb3->setWordWrapMode( QTextOption::NoWrap ); tb3->setText(s3); pTabWidget->addTab(tb3,i18n("&Thanks To")); d.resize(400,300); d.exec(); /* QMessageBox::information( this, "About " + s_appName, s_appName + " Version " + s_version + "\n\n" + s_description + "\n\n" + s_copyright + "\n\nHomepage: " + s_homepage + "\n\nLicence: GNU GPL Version 2" ); */ } void KMainWindow::appHelpActivated() { showHelp(); } QString KStandardDirs::findResource(const QString& resource, const QString& /*appName*/) { if (resource=="config") { #if defined(_WIN32) || defined(Q_OS_OS2) QString exePath = QCoreApplication::applicationDirPath(); QString configPath = exePath + "/.kdiff3rc"; // This is useful for portable installations (e.g. on USB-Stick) if ( QFile::exists( configPath ) ) return configPath; #endif QString home = QDir::homePath(); return home + "/.kdiff3rc"; } return QString(); } KConfigGroupData::~KConfigGroupData() { QFile f(m_fileName); if ( f.open( QIODevice::WriteOnly | QIODevice::Text ) ) { // file opened successfully QTextStream t( &f ); // use a text stream save(t); f.close(); } } KConfigGroup::KConfigGroup() { d = new KConfigGroupData; } void KConfigGroup::readConfigFile( const QString& configFileName ) { if ( !configFileName.isEmpty() ) { d->m_fileName = configFileName; } else { d->m_fileName = KStandardDirs().findResource("config","kdiff3rc"); } QFile f( d->m_fileName ); if ( f.open(QIODevice::ReadOnly) ) { // file opened successfully QTextStream t( &f ); // use a text stream d->load(t); f.close(); } } KConfigGroup::~KConfigGroup() { } void KConfigGroup::setGroup(const QString&) { } KConfigGroup& KConfigGroup::group( const QString& ) { KApplication* pKApp = static_cast(QApplication::instance()); return *pKApp->config(); } static void initAction( QAction* pAction, QObject* receiver, const char* slot, KActionCollection* actionCollection, const QString& name, bool bToggle, bool bMenu) { QString n(name); KMainWindow* p = actionCollection->m_pMainWindow; if( slot!=0 ) { if (!bToggle) QObject::connect(pAction, SIGNAL(triggered()), receiver, slot); else { QObject::connect(pAction, SIGNAL(toggled(bool)), receiver, slot); } } if (bMenu) { if( n[0]=='g') p->movementMenu->addAction( pAction ); else if( n.left(16)=="dir_current_sync") { if ( p->dirCurrentItemMenu==0 ) { p->dirCurrentItemMenu = p->directoryMenu->addMenu( i18n("Current Item Merge Operation") ); p->dirCurrentSyncItemMenu = p->directoryMenu->addMenu( i18n("Current Item Sync Operation") ); } p->dirCurrentItemMenu->addAction( pAction ); } else if( n.left(11)=="dir_current") { if ( p->dirCurrentItemMenu==0 ) { p->dirCurrentItemMenu = p->directoryMenu->addMenu( i18n("Current Item Merge Operation") ); p->dirCurrentSyncItemMenu = p->directoryMenu->addMenu( i18n("Current Item Sync Operation") ); } p->dirCurrentSyncItemMenu->addAction( pAction ); } else if( n.left(4)=="diff") p->diffMenu->addAction( pAction ); else if( name[0]=='d') p->directoryMenu->addAction( pAction ); else if( name[0]=='f') p->fileMenu->addAction( pAction ); else if( name[0]=='w') p->windowsMenu->addAction( pAction ); else p->mergeMenu->addAction( pAction ); } } KAction::KAction(const QString& name, KActionCollection* actionCollection ) : QAction ( actionCollection->m_pMainWindow ) { initAction( this, 0,0, actionCollection, name, false, true ); } KAction::KAction( KActionCollection* actionCollection ) : QAction ( actionCollection->m_pMainWindow ) { } KAction::KAction(const QString& text, const QIcon& icon, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bToggle, bool bMenu ) : QAction ( icon, text, actionCollection->m_pMainWindow ) { setObjectName(name); setShortcut( accel ); setCheckable( bToggle ); KMainWindow* p = actionCollection->m_pMainWindow; if ( !icon.isNull() && p ) p->m_pToolBar->addAction( this ); initAction(this, receiver,slot,actionCollection,name,bToggle,bMenu); } KAction::KAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bToggle, bool bMenu ) : QAction ( text, actionCollection->m_pMainWindow ) { setObjectName(name); setShortcut( accel ); setCheckable( bToggle ); initAction(this,receiver,slot,actionCollection,name,bToggle,bMenu); } void KAction::setStatusText(const QString&) { } void KAction::plug(QMenu* menu) { menu->addAction( this ); } void KAction::setIcon( const QIcon& icon ) { QAction::setIcon(icon); if ( !icon.isNull() ) { KMainWindow* pMW = static_cast( parent() ); pMW->toolBar()->addAction(this); } } KToggleAction::KToggleAction( KActionCollection* actionCollection ) : KAction( actionCollection ) { setCheckable(true); } KToggleAction::KToggleAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu) : KAction( text, accel, receiver, slot, actionCollection, name, true, bMenu) { } KToggleAction::KToggleAction(const QString& text, const QIcon& icon, int accel, KActionCollection* actionCollection, const char* name, bool bMenu) : KAction( text, icon, accel, 0, 0, actionCollection, name, true, bMenu) { } void KToggleAction::setChecked(bool bChecked) { blockSignals( true ); QAction::setChecked( bChecked ); blockSignals( false ); } //static KAction* KStandardAction::open( QWidget* parent, const char* slot, KActionCollection* actionCollection) { #include "../xpm/fileopen.xpm" KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Open"), QIcon(QPixmap(fileopen)), Qt::CTRL+Qt::Key_O, parent, slot, actionCollection, "open", false, false); if(p){ p->fileMenu->addAction( a ); } return a; } KAction* KStandardAction::save( QWidget* parent, const char* slot, KActionCollection* actionCollection ) { #include "../xpm/filesave.xpm" KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Save"), QIcon(QPixmap(filesave)), Qt::CTRL+Qt::Key_S, parent, slot, actionCollection, "save", false, false); if(p){ p->fileMenu->addAction( a ); } return a; } KAction* KStandardAction::saveAs( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Save As..."), 0, parent, slot, actionCollection, "saveas", false, false); if(p) p->fileMenu->addAction( a ); return a; } KAction* KStandardAction::print( QWidget* parent, const char* slot, KActionCollection* actionCollection) { #include "../xpm/fileprint.xpm" KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Print..."), QIcon(QPixmap(fileprint)),Qt::CTRL+Qt::Key_P, parent, slot, actionCollection, "print", false, false); if(p) p->fileMenu->addAction( a ); return a; } KAction* KStandardAction::quit( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Quit"), Qt::CTRL+Qt::Key_Q, parent, slot, actionCollection, "quit", false, false); if(p) p->fileMenu->addAction( a ); return a; } KAction* KStandardAction::cut( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Cut"), Qt::CTRL+Qt::Key_X, parent, slot, actionCollection, "cut", false, false ); if(p) p->editMenu->addAction( a ); return a; } KAction* KStandardAction::copy( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Copy"), Qt::CTRL+Qt::Key_C, parent, slot, actionCollection, "copy", false, false ); if(p) p->editMenu->addAction( a ); return a; } KAction* KStandardAction::paste( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Paste"), Qt::CTRL+Qt::Key_V, parent, slot, actionCollection, "paste", false, false ); if(p) p->editMenu->addAction( a ); return a; } KAction* KStandardAction::selectAll( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Select All"), Qt::CTRL+Qt::Key_A, parent, slot, actionCollection, "selectall", false, false ); if(p) p->editMenu->addAction( a ); return a; } KToggleAction* KStandardAction::showToolbar( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KToggleAction* a = new KToggleAction( i18n("Show Toolbar"), 0, parent, slot, actionCollection, "showtoolbar", false ); if(p) p->settingsMenu->addAction( a ); return a; } KToggleAction* KStandardAction::showStatusbar( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KToggleAction* a = new KToggleAction( i18n("Show &Status Bar"), 0, parent, slot, actionCollection, "showstatusbar", false ); if(p) p->settingsMenu->addAction( a ); return a; } KAction* KStandardAction::preferences( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("&Configure %1...",QString("KDiff3")), 0, parent, slot, actionCollection, "settings", false, false ); if(p) p->settingsMenu->addAction( a ); return a; } KAction* KStandardAction::keyBindings( QWidget*, const char*, KActionCollection*) { return 0; } KAction* KStandardAction::about( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("About")+" KDiff3", 0, parent, slot, actionCollection, "about_kdiff3", false, false ); if(p) p->helpMenu->addAction( a ); return a; } KAction* KStandardAction::aboutQt( KActionCollection* actionCollection ) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("About")+" Qt", 0, qApp, SLOT(aboutQt()), actionCollection, "about_qt", false, false ); if(p) p->helpMenu->addAction( a ); return a; } KAction* KStandardAction::help( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Help"), Qt::Key_F1, parent, slot, actionCollection, "help-contents", false, false ); if(p) p->helpMenu->addAction( a ); return a; } KAction* KStandardAction::find( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Find"), Qt::CTRL+Qt::Key_F, parent, slot, actionCollection, "edit-find", false, false ); if(p) p->editMenu->addAction( a ); return a; } KAction* KStandardAction::findNext( QWidget* parent, const char* slot, KActionCollection* actionCollection) { KMainWindow* p = actionCollection->m_pMainWindow; KAction* a = new KAction( i18n("Find Next"), Qt::Key_F3, parent, slot, actionCollection, "findNext", false, false ); if(p) p->editMenu->addAction( a ); return a; } KAction* KActionCollection::addAction(const QString& name ) { return new KAction( name, this ); } void KActionCollection::addAction( const QString& name, QAction* pAction ) { initAction( pAction, 0,0,this,name,false,true); } KFontChooser::KFontChooser( QWidget* pParent ) : QWidget(pParent) { m_pParent = pParent; QVBoxLayout* pLayout = new QVBoxLayout( this ); m_pSelectFont = new QPushButton(i18n("Select Font"), this ); connect(m_pSelectFont, SIGNAL(clicked()), this, SLOT(slotSelectFont())); pLayout->addWidget(m_pSelectFont); m_pLabel = new QLabel( "", this ); m_pLabel->setFont( m_font ); m_pLabel->setMinimumWidth(200); m_pLabel->setText( "The quick brown fox jumps over the river\n" "but the little red hen escapes with a shiver.\n" ":-)"); pLayout->addWidget(m_pLabel); } QFont KFontChooser::font() { return m_font;//QFont("courier",10); } void KFontChooser::setFont( const QFont& font, bool ) { m_font = font; m_pLabel->setFont( m_font ); //update(); } void KFontChooser::slotSelectFont() { for(;;) { bool bOk; m_font = QFontDialog::getFont(&bOk, m_font ); m_pLabel->setFont( m_font ); QFontMetrics fm(m_font); // Variable width font. if ( fm.width('W')!=fm.width('i') ) { int result = KMessageBox::warningYesNo(m_pParent, i18n( "You selected a variable width font.\n\n" "Because this program doesn't handle variable width fonts\n" "correctly, you might experience problems while editing.\n\n" "Do you want to continue or do you want to select another font."), i18n("Incompatible font."), i18n("Continue at my own risk"), i18n("Select another font")); if (result==KMessageBox::Yes) return; } else return; } } KColorButton::KColorButton(QWidget* parent) : QPushButton(parent) { connect( this, SIGNAL(clicked()), this, SLOT(slotClicked())); } QColor KColorButton::color() { return m_color; } void KColorButton::setColor( const QColor& color ) { m_color = color; update(); } void KColorButton::paintEvent( QPaintEvent* e ) { QPushButton::paintEvent(e); QPainter p(this); int w = width(); int h = height(); p.fillRect( 10, 5, w-20, h-10, m_color ); p.drawRect( 10, 5, w-20, h-10 ); } void KColorButton::slotClicked() { #ifndef QT_NO_COLORDIALOG // Under Windows ChooseColor() should be used. (Nicer if few colors exist.) QColor c = QColorDialog::getColor ( m_color, this ); if ( c.isValid() ) m_color = c; #endif update(); } #ifndef QT_NO_PRINTER KPrinter::KPrinter() { } QList KPrinter::pageList() { QList vl; int to = toPage(); for(int i=fromPage(); i<=to; ++i) { vl.push_back(i); } return vl; } void KPrinter::setCurrentPage(int) { } void KPrinter::setPageSelection(e_PageSelection) { } #endif QPixmap KIconLoader::loadIcon( const QString&, int, int ) { return QPixmap(); } KAboutData::KAboutData(const QByteArray &appName, const QByteArray & /*catalogName*/, const KLocalizedString & /*programName*/, const QByteArray &version, const KLocalizedString &shortDescription, LicenseKey /*licenseType*/, const KLocalizedString ©rightStatement, const KLocalizedString & /*text*/, const QByteArray &homePageAddress, const QByteArray &bugsEmailAddress) { s_copyright = copyrightStatement; s_email = bugsEmailAddress; s_appName = appName; s_description = shortDescription; s_version = version; s_homepage = homePageAddress; } KAboutData::KAboutData( const QString& /*name*/, const QString& /*appName*/, const QString& /*appName2*/, const QString& /*version*/ ) { } void KAboutData::addAuthor(const QString& name, const QString& task, const QString& email, const QString& weblink) { m_authorList.push_back( AboutDataEntry( name, task, email, weblink) ); } void KAboutData::addCredit(const QString& name, const QString& task, const QString& email, const QString& weblink) { m_creditList.push_back( AboutDataEntry( name, task, email, weblink) ); } /* Option structure: e.g.: { "m", 0, 0 }, { "merge", I18N_NOOP("Automatically merge the input."), 0 }, { "o", 0, 0 }, { "output file", I18N_NOOP("Output file. Implies -m. E.g.: -o newfile.txt"), 0 }, { "+[File1]", I18N_NOOP("file1 to open (base)"), 0 }, { "+[File2]", I18N_NOOP("file2 to open"), 0 }, { "+[File3]", I18N_NOOP("file3 to open"), 0 }, */ //////////////// static KCmdLineArgs s_cmdLineArgs; static int s_argc; static char** s_argv; struct KCmdLineOptionsItem { QString name; QString description; int def; }; static QList s_options; static std::vector s_vOption; static std::vector s_vArg; KCmdLineOptions& KCmdLineOptions::add( const QString& name, const QString& description ) { KCmdLineOptionsItem i; i.name = name; i.description = description; i.def = 0; s_options.push_back(i); return *this; } KCmdLineArgs* KCmdLineArgs::parsedArgs() // static { return &s_cmdLineArgs; } void KCmdLineArgs::init( int argc, char**argv, KAboutData* pAboutData ) // static { s_argc = argc; s_argv = argv; s_pAboutData = pAboutData; } void KCmdLineArgs::addCmdLineOptions( const KCmdLineOptions& /*options*/ ) // static { //s_pOptions = &options; } int KCmdLineArgs::count() { return s_vArg.size(); } QString KCmdLineArgs::arg(int idx) { return s_vArg[idx]; } void KCmdLineArgs::clear() { } QString KCmdLineArgs::getOption( const QString& s ) { // Find the option int j=0; for( j=0; j<(int)s_vOption.size(); ++j ) { QString optName = s_options[j].name; int pos = optName.indexOf( ' ' ); int len = pos==-1 ? optName.length() : pos; if( s == optName.left( len ) ) { return s_vOption[j].isEmpty() ? QString() : s_vOption[j].last(); } } assert(false); return QString(); } QStringList KCmdLineArgs::getOptionList( const QString& s ) { // Find the option int j=0; for( j=0; j<(int)s_vOption.size(); ++j ) { QString optName = s_options[j].name; int pos = optName.indexOf( ' ' ); int len = pos==-1 ? optName.length() : pos; if( s == optName.left( len ) ) { return s_vOption[j]; } } assert(false); return QStringList(); } bool KCmdLineArgs::isSet(const QString& s) { // Find the option int j=0; for( j=0; j<(int)s_vOption.size(); ++j ) { QString optName = s_options[j].name; if( s == optName ) { return ! s_vOption[j].isEmpty(); } } assert(false); return false; } /////////////////// KApplication* kapp; KApplication::KApplication() : QApplication( s_argc,s_argv ) { kapp = this; //setStyle( new QWindowsStyle ); // doesn't show checkmarks on checkable icons in menu int nofOptions=0; int nofArgs=0; int i=0; while( i < s_options.size() ) { if ( s_options[i].name[0]=='[' ) nofArgs++; else nofOptions++; ++i; } QStringList args = QCoreApplication::arguments(); // First find the option "-config" or "--config" to allow loading of options QString configFileName; for( i=1; i0 && ( (arg[1]=='-' && len2-2==len && optName.left(len) == arg.mid(2,len)) || (len2-1==len && optName.left(len) == arg.mid(1,len)) )) { if (s_options[j].description == 0) // alias, because without description. { ++j; optName = s_options[j].name; pos = optName.indexOf( ' ' ); } if (pos!=-1){ ++i; s_vOption[j].append( args[i] ); } //use param else { s_vOption[j].append("1"); } //set state break; } } if (j==nofOptions) { QString s; s = QString("Unknown option: ") + arg + "\n"; s += "If KDiff3 should ignore this option, run KDiff3 normally and edit\n" "the \"Command line options to ignore\" in the \"Integration Settings\".\n\n"; s += "KDiff3-Usage when starting via commandline: \n"; s += "- Comparing 2 files:\t\tkdiff3 file1 file2\n"; s += "- Merging 2 files: \t\tkdiff3 file1 file2 -o outputfile\n"; s += "- Comparing 3 files:\t\tkdiff3 file1 file2 file3\n"; s += "- Merging 3 files: \t\tkdiff3 file1 file2 file3 -o outputfile\n"; s += " Note that file1 will be treated as base of file2 and file3.\n"; s += "\n"; s += "If you start without arguments, then a dialog will appear\n"; s += "where you can select your files via a filebrowser.\n"; s += "\n"; s += "Options:\n"; j=0; int pos=s.length(); for( j=0; j1 ) s += "-"; } s += s_options[j].name; s += QString().fill(' ', minMaxLimiter( 20 - ((int)s.length()-pos), 3, 20 ) ); s += s_options[j].description; s +="\n"; pos=s.length(); } else { s += "-"; if ( s_options[j].name.length()>1 ) s += "-"; s += s_options[j].name; s += ", "; } } s += "\n"+i18n("For more documentation, see the help-menu or the subdirectory doc.")+"\n"; #if defined(_WIN32) || defined(Q_OS_OS2) // A windows program has no console if ( 0==QMessageBox::information(0, i18n("KDiff3-Usage"), s, i18n("Ignore"),i18n("Exit") ) ) continue; #else fprintf(stderr, "%s\n", s.toLatin1().constData()); #endif ::exit(-1); } } else s_vArg.push_back( arg ); } } KConfigGroup* KApplication::config() { return &m_config; } bool KApplication::isRestored() { return false; } KApplication* KApplication::kApplication() { return kapp; } KIconLoader* KApplication::iconLoader() { return &m_iconLoader; } namespace KIO { SimpleJob* mkdir( KUrl ){return 0;} SimpleJob* rmdir( KUrl ){return 0;} SimpleJob* file_delete( KUrl, int ){return 0;} FileCopyJob* file_move( KUrl, KUrl, int, int ) {return 0;} FileCopyJob* file_copy( KUrl, KUrl, int, int ) {return 0;} CopyJob* link( KUrl, KUrl, bool ) {return 0;} ListJob* listRecursive( KUrl, bool, bool ){return 0;} ListJob* listDir( KUrl, bool, bool ){return 0;} StatJob* stat( KUrl, bool, int, int ){return 0;} TransferJob* get( KUrl, int ){return (TransferJob*)0;} TransferJob* put( KUrl, int, int ){return (TransferJob*)0;} }; KActionCollection* KParts::Part::actionCollection() { return 0; } KApplication* KParts::Part::instance() { return kapp; } KLibLoader* KLibLoader::self() { static KLibLoader ll; return ≪ } extern "C" void* init_libkdiff3part(); KLibFactory* KLibLoader::factory(QString const&) { return (KLibFactory*) init_libkdiff3part(); } QObject* KLibFactory::create(QObject* pParent, const QString& name, const QString& classname ) { KParts::Factory* f = qobject_cast(this); if (f!=0) return f->createPartObject( (QWidget*)pParent, name.toAscii(), pParent, name.toAscii(), classname.toAscii(), QStringList() ); else return 0; } //#include "kreplacements.moc" kdiff3-0.9.97/src-QT4/kreplacements/ktemporaryfile.h0000644000175100001440000000004311626145613021562 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kaboutdata.h0000644000175100001440000000004311626145613020644 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kreplacements.h0000644000175100001440000004447312000244602021362 0ustar joachimusers/*************************************************************************** kreplacements.h - description ------------------- begin : Sat Aug 3 2002 copyright : (C) 2002-2006 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KREPLACEMENTS_H #define KREPLACEMENTS_H #ifndef __OS2__ #pragma once #endif #include "common.h" #include #include #include #include #include #include #include #include #include #include //Added by qt3to4: #include #include #include #include class QTabWidget; class QLabel; #include #include QString getTranslationDir(const QString&); class KMainWindow; class KAction; class KIcon; typedef QString KGuiItem; inline QString i18n( const char* x ){ return QObject::tr(x); } template inline QString i18n (const char *text, const A1 &a1) { return QObject::tr(text).arg(a1); } template inline QString i18n (const char *text, const A1 &a1, const A2 &a2) { return QObject::tr(text).arg(a1).arg(a2); } template inline QString i18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3) { return QObject::tr(text).arg(a1).arg(a2).arg(a3); } template inline QString i18n (const char *text, const A1 &a1, const A2 &a2, const A3 &a3, const A4 &a4) { return QObject::tr(text).arg(a1).arg(a2).arg(a3).arg(a4); } typedef QString KLocalizedString; #define ki18n(x) QObject::tr(x) #define I18N_NOOP(x) x #define RESTORE(x) #define _UNLOAD(x) class KUrl { public: KUrl(){} KUrl(const QString& s){ m_s = s; } static KUrl fromPathOrUrl( const QString& s ){ return KUrl(s); } QString url() const { return m_s; } bool isEmpty() const { return m_s.isEmpty(); } QString prettyUrl() const { return m_s; } bool isLocalFile() const { return true; } bool isRelative() const { return true; } bool isValid() const { return true; } QString path() const { return m_s; } void setPath( const QString& s ){ m_s=s; } QString fileName() const { return m_s; } // not really needed void addPath( const QString& s ){ m_s += "/" + s; } private: QString m_s; }; typedef QString KGuiItem; class KStandardGuiItem { public: static QString cont() { return i18n("Continue"); } static QString cancel() { return i18n("Cancel"); } static QString quit() { return i18n("Quit"); } }; class KMessageBox { public: static void error( QWidget* parent, const QString& text, const QString& caption=QString() ); static int warningContinueCancel( QWidget* parent, const QString& text, const QString& caption=QString(), const QString& button1=QString("Continue") ); static void sorry( QWidget* parent, const QString& text, const QString& caption=QString() ); static void information( QWidget* parent, const QString& text, const QString& caption=QString() ); static int warningYesNo( QWidget* parent, const QString& text, const QString& caption, const QString& button1, const QString& button2 ); static int warningYesNoCancel( QWidget* parent, const QString& text, const QString& caption, const QString& button1, const QString& button2 ); enum {Cancel=-1, No=0, Yes=1, Continue=1}; }; typedef QMenu KMenu; class KPageWidgetItem : public QObject { public: QWidget* m_pWidget; QString m_title; KPageWidgetItem( QWidget* pPage, const QString& title ) { m_pWidget = pPage; m_title = title; } void setHeader( const QString& ) {} void setIcon( const KIcon& ) {} }; class KPageDialog : public QDialog { Q_OBJECT QTabWidget* m_pTabWidget; public: KPageDialog( QWidget* parent ); ~KPageDialog(); void incrementInitialSize ( const QSize& ); void setHelp(const QString& helpfilename, const QString& ); enum {IconList, Help, Default, Apply, Ok, Cancel }; int BarIcon(const QString& iconName, int ); void addPage( KPageWidgetItem* ); QFrame* addPage( const QString& name, const QString& info, int ); int spacingHint(); enum FaceType { List }; void setFaceType(FaceType){} void setButtons(int){} void setDefaultButton(int){} void showButtonSeparator(bool){} private slots: void slotHelpClicked(); signals: void applyClicked(); void okClicked(); void helpClicked(); void defaultClicked(); }; class KFileDialog //: public QFileDialog { public: static KUrl getSaveUrl( const QString &startDir=QString::null, const QString &filter=QString::null, QWidget *parent=0, const QString &caption=QString::null); static KUrl getOpenUrl( const QString & startDir = QString::null, const QString & filter = QString::null, QWidget * parent = 0, const QString & caption = QString::null ); static KUrl getExistingDirectoryUrl( const QString & startDir = QString::null, QWidget * parent = 0, const QString & caption = QString::null ); static QString getSaveFileName (const QString &startDir=QString::null, const QString &filter=QString::null, QWidget *parent=0, const QString &caption=QString::null); }; typedef QStatusBar KStatusBar; class KToolBar : public QToolBar { public: KToolBar(QMainWindow* parent); enum BarPosition {Top, Bottom, Left, Right}; BarPosition barPos(); void setBarPos(BarPosition); private: QMainWindow* m_pMainWindow; }; class KActionCollection { public: KMainWindow* m_pMainWindow; KActionCollection( KMainWindow* p){ m_pMainWindow=p; } void addAction(const QString& name, QAction* ); KAction* addAction(const QString& name ); }; typedef QKeySequence KShortcut; class KShortcutsEditor { public: enum { LetterShortcutsAllowed }; }; class KShortcutsDialog { public: static void configure(KActionCollection*){} static void configureKeys(KActionCollection*, const QString&){} static void configure(KActionCollection*, int, QWidget*){} }; namespace KParts { class ReadWritePart; } class KMainWindow : public QMainWindow { Q_OBJECT private: KActionCollection m_actionCollection; protected: virtual bool queryClose() = 0; virtual bool queryExit() = 0; public: QMenu* fileMenu; QMenu* editMenu; QMenu* directoryMenu; QMenu* dirCurrentItemMenu; QMenu* dirCurrentSyncItemMenu; QMenu* movementMenu; QMenu* mergeMenu; QMenu* diffMenu; QMenu* windowsMenu; QMenu* settingsMenu; QMenu* helpMenu; KToolBar* m_pToolBar; KMainWindow( QWidget* parent ); KToolBar* toolBar(const QString& s = QString::null); KActionCollection* actionCollection(); void createGUI(); void createGUI(KParts::ReadWritePart*){createGUI();} QList* memberList; public slots: void appHelpActivated(); void slotAbout(); }; class KConfigGroupData : public ValueMap, public QSharedData { public: QString m_fileName; ~KConfigGroupData(); }; class KConfigGroup { private: QExplicitlySharedDataPointer d; public: KConfigGroup(const KConfigGroup*, const QString& ){} KConfigGroup(); ~KConfigGroup(); void readConfigFile(const QString& configFileName); void setGroup(const QString&); KConfigGroup& group( const QString& groupName ); template void writeEntry(const QString& s, const T& v){ d->writeEntry(s,v); } void writeEntry(const QString& s, const QStringList& v, char separator ){ d->writeEntry(s,v,separator); } void writeEntry(const QString& s, const char* v){ d->writeEntry(s,v); } template T readEntry (const QString& s, const T& defaultVal ){ return d->readEntry(s,defaultVal); } QString readEntry (const QString& s, const char* defaultVal ){ return d->readEntry(s,defaultVal); } QStringList readEntry (const QString& s, const QStringList& defaultVal, char separator='|' ){ return d->readEntry(s,defaultVal,separator); } }; typedef KConfigGroup* KSharedConfigPtr; class KAction : public QAction { Q_OBJECT public: KAction( KActionCollection* actionCollection ); KAction(const QString& text, KActionCollection* actionCollection ); KAction(const QString& text, const QIcon& icon, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bToggle=false, bool bMenu=true); KAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bToggle=false, bool bMenu=true); void setStatusText(const QString&); void plug(QMenu*); void setIcon( const QIcon& icon ); }; class KToggleAction : public KAction { public: KToggleAction(KActionCollection* actionCollection); KToggleAction(const QString& text, const QIcon& icon, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu=true); KToggleAction(const QString& text, int accel, QObject* receiver, const char* slot, KActionCollection* actionCollection, const char* name, bool bMenu=true); KToggleAction(const QString& text, const QIcon& icon, int accel, KActionCollection* actionCollection, const char* name, bool bMenu=true); void setChecked(bool); }; class KStandardAction { public: static KAction* open( QWidget* parent, const char* slot, KActionCollection* ); static KAction* save( QWidget* parent, const char* slot, KActionCollection* ); static KAction* saveAs( QWidget* parent, const char* slot, KActionCollection* ); static KAction* print( QWidget* parent, const char* slot, KActionCollection* ); static KAction* quit( QWidget* parent, const char* slot, KActionCollection* ); static KAction* cut( QWidget* parent, const char* slot, KActionCollection* ); static KAction* copy( QWidget* parent, const char* slot, KActionCollection* ); static KAction* paste( QWidget* parent, const char* slot, KActionCollection* ); static KAction* selectAll( QWidget* parent, const char* slot, KActionCollection* ); static KToggleAction* showToolbar( QWidget* parent, const char* slot, KActionCollection* ); static KToggleAction* showStatusbar( QWidget* parent, const char* slot, KActionCollection* ); static KAction* preferences( QWidget* parent, const char* slot, KActionCollection* ); static KAction* about( QWidget* parent, const char* slot, KActionCollection* ); static KAction* aboutQt( KActionCollection* ); static KAction* help( QWidget* parent, const char* slot, KActionCollection* ); static KAction* find( QWidget* parent, const char* slot, KActionCollection* ); static KAction* findNext( QWidget* parent, const char* slot, KActionCollection* ); static KAction* keyBindings( QWidget* parent, const char* slot, KActionCollection* ); }; class KIcon { public: enum {SizeMedium,Small}; KIcon( const QString& ) {} }; class KFontChooser : public QWidget { Q_OBJECT QFont m_font; QPushButton* m_pSelectFont; QLabel* m_pLabel; QWidget* m_pParent; public: KFontChooser( QWidget* pParent ); QFont font(); void setFont( const QFont&, bool ); private slots: void slotSelectFont(); }; class KColorButton : public QPushButton { Q_OBJECT QColor m_color; public: KColorButton(QWidget* parent); QColor color(); void setColor(const QColor&); virtual void paintEvent(QPaintEvent* e); public slots: void slotClicked(); }; #ifndef QT_NO_PRINTER class KPrinter : public QPrinter { public: KPrinter(); enum e_PageSelection {ApplicationSide}; QList pageList(); void setCurrentPage(int); void setPageSelection(e_PageSelection); }; #endif class KStandardDirs { public: QString findResource(const QString& resource, const QString& appName); }; class KCmdLineOptions { public: KCmdLineOptions& add( const QString& name, const QString& description = 0 ); }; #define KCmdLineLastOption {0,0,0} class KAboutData { public: enum LicenseKey { License_GPL, License_GPL_V2, License_Unknown }; //KAboutData( const QString& name, const QString& appName, const QString& version, // const QString& description, int licence, // const QString& copyright, int w, const QString& homepage, const QString& email); KAboutData (const QByteArray &appName, const QByteArray &catalogName, const KLocalizedString &programName, const QByteArray &version, const KLocalizedString &shortDescription, LicenseKey licenseType, const KLocalizedString ©rightStatement, const KLocalizedString &text, const QByteArray &homePageAddress, const QByteArray &bugsEmailAddress); KAboutData( const QString& name, const QString& appName, const QString& appName2, const QString& version ); void addAuthor(const QString& name, const QString& task=0, const QString& email=0, const QString& weblink=0); void addCredit(const QString& name, const QString& task=0, const QString& email=0, const QString& weblink=0); struct AboutDataEntry { AboutDataEntry(const QString& name, const QString& task, const QString& email, const QString& weblink) : m_name(name), m_task(task), m_email(email), m_weblink(weblink) {} QString m_name; QString m_task; QString m_email; QString m_weblink; }; std::list m_authorList; std::list m_creditList; }; typedef QList QCStringList; class KCmdLineArgs { public: static KCmdLineArgs* parsedArgs(); static void init( int argc, char**argv, KAboutData* ); static void addCmdLineOptions( const KCmdLineOptions& options ); // Add our own options. int count(); QString arg(int); KUrl url(int i){ return KUrl(arg(i)); } void clear(); QString getOption(const QString&); QStringList getOptionList( const QString& ); bool isSet(const QString&); }; class KIconLoader { public: enum { Small, NoGroup }; QPixmap loadIcon(const QString& name, int, int =0); static KIconLoader* global() { return 0; } }; class KApplication : public QApplication { KConfigGroup m_config; KIconLoader m_iconLoader; public: KApplication(); static KApplication* kApplication(); KIconLoader* iconLoader(); KConfigGroup* config(); bool isRestored(); }; extern KApplication* kapp; class KLibFactory : public QObject { Q_OBJECT public: QObject* create(QObject*,const QString&,const QString&); }; class KLibLoader { public: static KLibLoader* self(); KLibFactory* factory(const QString&); }; class KEditToolBar : public QDialog { public: KEditToolBar( int ){} }; class KGlobal { public: static KConfigGroup* config() { return 0; } }; class KJobUiDelegate { public: void showErrorMessage() {} }; class KJob : public QObject { public: bool error() {return false;} enum KillVerbosity { Quietly }; bool kill( KillVerbosity ){return false;} KJobUiDelegate* uiDelegate() {return 0;} }; namespace KIO { enum { Overwrite, DefaultFlags, Resume, HideProgressInfo, NoReload }; enum UDSEntry {}; typedef QList UDSEntryList; class Job : public KJob { }; class SimpleJob : public KJob {}; SimpleJob* mkdir( KUrl ); SimpleJob* rmdir( KUrl ); SimpleJob* file_delete( KUrl, int ); class FileCopyJob : public KJob {}; FileCopyJob* file_move( KUrl, KUrl, int, int ); FileCopyJob* file_copy( KUrl, KUrl, int, int ); class CopyJob : public KJob {}; CopyJob* link( KUrl, KUrl, bool ); class ListJob : public KJob {}; ListJob* listRecursive( KUrl, bool, bool ); ListJob* listDir( KUrl, bool, bool ); class StatJob : public KJob { public: enum {SourceSide,DestinationSide}; UDSEntry statResult(){ return (UDSEntry)0; } }; StatJob* stat( KUrl, bool, int, int ); class TransferJob : public KJob {}; TransferJob* get( KUrl, int ); TransferJob* put( KUrl, int, int ); }; typedef QProgressBar KProgress; class KInstance : public QObject { public: KInstance(KAboutData*){} }; class KComponentData : public QObject { public: KComponentData(KAboutData*){} KConfigGroup* config() {return 0;} }; namespace KParts { class MainWindow : public KMainWindow { Q_OBJECT public: MainWindow( QWidget* parent=0 ) : KMainWindow(parent) {} void setXMLFile(const QString&){} void setAutoSaveSettings(){} void saveMainWindowSettings(KConfigGroup&){} void applyMainWindowSettings(KConfigGroup&){} int factory(){return 0;} }; class Part : public QObject { public: KActionCollection* actionCollection(); KApplication* instance(); void setWidget( QWidget* w ){ m_pWidget=w; } QWidget* widget(){return m_pWidget;} void setXMLFile(const QString&){} private: QWidget* m_pWidget; }; class ReadOnlyPart : public Part { public: ReadOnlyPart(){} ReadOnlyPart(QObject*,const QString&){} QString localFilePath() {return QString(); } void setComponentData(const KComponentData&){} // actually member of PartBase KComponentData& componentData() { return *(KComponentData*)0;} QString m_file; }; class ReadWritePart : public ReadOnlyPart { public: ReadWritePart(QObject*){} void setReadWrite(bool){} }; class Factory : public KLibFactory { Q_OBJECT public: virtual KParts::Part* createPartObject( QWidget* /*parentWidget*/, const char * /*widgetName*/, QObject* /*parent*/, const char * /*name*/, const char* /*classname*/, const QStringList& /*args*/ ){return 0;} }; }; #endif kdiff3-0.9.97/src-QT4/kreplacements/kstatusbar.h0000644000175100001440000000004311626145613020710 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kfontdialog.h0000644000175100001440000000004311626145613021026 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kactioncollection.h0000644000175100001440000000004311626145613022231 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kunload.h0000644000175100001440000000004311626145613020162 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kmenubar.h0000644000175100001440000000004311626145613020331 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/klibloader.h0000644000175100001440000000004311626145613020635 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kglobal.h0000644000175100001440000000004311626145613020140 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/ktoolbar.h0000644000175100001440000000004311626145613020342 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kprinter.h0000644000175100001440000000004311626145613020363 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kcolorbutton.h0000644000175100001440000000004311626145613021252 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kprogressdialog.h0000644000175100001440000000004311626145613021724 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kmenu.h0000644000175100001440000000004311626145613017644 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/README0000644000175100001440000000214311626145613017237 0ustar joachimusersAbout the "kreplacements"-directory: ==================================== I want to be able to compile and use KDiff3 without KDE too. Since KDiff3 is a KDE program, which uses many KDE-classes and functions there must be some replacement. In many cases this is just the corresponding Qt-class, but often I wrote something myself. For several very KDE-specific functions there is no real replacement, but only stub functions that allow the program to compile and link. This stuff is not intended to be used for anything else but KDiff3. Think of it rather as a big hack, that only has the advantage that I need not mess up the normal program with many ugly #ifdef/#endif-clauses. Most include files in this directory only include kreplacements.h where the actual declarations are. The implementions are in kreplacements.cpp. The *.moc-files are dummies. The new KDE-philosophy seems to be that *.moc-files are directly included into the sources. The Qt-philosophy still is to generate moc*.cpp files which will be compiled seperately. With these dummy-moc-files both versions can be compiled. Joachim (2003-10-02) kdiff3-0.9.97/src-QT4/kreplacements/ShellContextMenu.h0000644000175100001440000000507711626145613022002 0ustar joachimusers/*************************************************************************** ShellContextMenu.h - description ------------------- begin : Sat Mar 4 2006 copyright : (C) 2005-2007 by Joachim Eibl email : joachim dot eibl at gmx dot de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ // ShellContextMenu.h: Schnittstelle fr die Klasse CShellContextMenu. // ////////////////////////////////////////////////////////////////////// #ifndef SHELLCONTEXTMENU_H #define SHELLCONTEXTMENU_H ///////////////////////////////////////////////////////////////////// // class to show shell contextmenu of files/folders/shell objects // developed by R. Engels 2003 ///////////////////////////////////////////////////////////////////// class CShellContextMenu { public: HMENU GetMenu (); void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST pidlItem); void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST * pidlArray, int nItemCount); void SetObjects (LPITEMIDLIST pidl); void SetObjects (const QString& strObject); void SetObjects (const QStringList& strList); UINT ShowContextMenu (QWidget* pParent, QPoint pt, QMenu* pMenu); CShellContextMenu(); virtual ~CShellContextMenu(); private: int nItems; BOOL bDelete; HMENU m_hMenu; IShellFolder * m_psfFolder; LPITEMIDLIST * m_pidlArray; void InvokeCommand (LPCONTEXTMENU pContextMenu, UINT idCommand); BOOL GetContextMenu (void ** ppContextMenu, int & iMenuType); HRESULT SHBindToParentEx (LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast); static LRESULT CALLBACK HookWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void FreePIDLArray (LPITEMIDLIST * pidlArray); LPITEMIDLIST CopyPIDL (LPCITEMIDLIST pidl, int cb = -1); UINT GetPIDLSize (LPCITEMIDLIST pidl); LPBYTE GetPIDLPos (LPCITEMIDLIST pidl, int nPos); int GetPIDLCount (LPCITEMIDLIST pidl); }; #endif kdiff3-0.9.97/src-QT4/kreplacements/kiconloader.h0000644000175100001440000000004311626145613021017 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kstandardaction.h0000644000175100001440000000004311626145613021676 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kedittoolbar.h0000644000175100001440000000004311626145613021210 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kio/0000755000175100001440000000000011626145654017146 5ustar joachimuserskdiff3-0.9.97/src-QT4/kreplacements/kio/global.h0000644000175100001440000000004311626145613020547 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kio/copyjob.h0000644000175100001440000000004311626145613020754 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kio/job.h0000644000175100001440000000004311626145613020061 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kio/jobclasses.h0000644000175100001440000000004311626145613021437 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kio/jobuidelegate.h0000644000175100001440000000004311626145613022112 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kapplication.h0000644000175100001440000000004311626145613021203 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/ShellContextMenu.cpp0000644000175100001440000003427412010036276022326 0ustar joachimusers/*************************************************************************** ShellContextMenu.cpp - description ------------------- begin : Sat Mar 4 2006 copyright : (C) 2005-2007 by Joachim Eibl email : joachim dot eibl at gmx dot de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ // ShellContextMenu.cpp: Implementierung der Klasse CShellContextMenu. // http://www.codeproject.com/Articles/4025/Use-Shell-ContextMenu-in-your-applications // ////////////////////////////////////////////////////////////////////// #ifdef _WIN32 #include #include #include #include #include #include #include #include #include "ShellContextMenu.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif ////////////////////////////////////////////////////////////////////// // Konstruktion/Destruktion ////////////////////////////////////////////////////////////////////// #define MIN_ID 100 #define MAX_ID 10000 void showShellContextMenu( const QString& itemPath, QPoint pt, QWidget* pParentWidget, QMenu* pMenu ) { CShellContextMenu scm; scm.SetObjects(QDir::toNativeSeparators(QDir::cleanPath(itemPath))); int id = scm.ShowContextMenu (pParentWidget, pt, pMenu); if (id>=1) pMenu->actions().value(id-1)->trigger(); } IContextMenu2 * g_IContext2 = NULL; IContextMenu3 * g_IContext3 = NULL; static WNDPROC OldWndProc = 0; CShellContextMenu::CShellContextMenu() { m_psfFolder = NULL; m_pidlArray = NULL; m_hMenu = NULL; } CShellContextMenu::~CShellContextMenu() { // free all allocated datas if (m_psfFolder && bDelete) m_psfFolder->Release (); m_psfFolder = NULL; FreePIDLArray (m_pidlArray); m_pidlArray = NULL; if (m_hMenu) DestroyMenu( m_hMenu ); } // this functions determines which version of IContextMenu is avaibale for those objects (always the highest one) // and returns that interface BOOL CShellContextMenu::GetContextMenu (void ** ppContextMenu, int & iMenuType) { *ppContextMenu = NULL; LPCONTEXTMENU icm1 = NULL; if ( m_psfFolder==0 ) return FALSE; // first we retrieve the normal IContextMenu interface (every object should have it) m_psfFolder->GetUIObjectOf (NULL, nItems, (LPCITEMIDLIST *) m_pidlArray, IID_IContextMenu, NULL, (void**) &icm1); if (icm1) { // since we got an IContextMenu interface we can now obtain the higher version interfaces via that if (icm1->QueryInterface (IID_IContextMenu3, ppContextMenu) == NOERROR) iMenuType = 3; else if (icm1->QueryInterface (IID_IContextMenu2, ppContextMenu) == NOERROR) iMenuType = 2; if (*ppContextMenu) icm1->Release(); // we can now release version 1 interface, cause we got a higher one else { iMenuType = 1; *ppContextMenu = icm1; // since no higher versions were found } // redirect ppContextMenu to version 1 interface } else return (FALSE); // something went wrong return (TRUE); // success } LRESULT CALLBACK CShellContextMenu::HookWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_MENUCHAR: // only supported by IContextMenu3 if (g_IContext3) { LRESULT lResult = 0; g_IContext3->HandleMenuMsg2 (message, wParam, lParam, &lResult); return (lResult); } break; case WM_DRAWITEM: case WM_MEASUREITEM: if (wParam) break; // if wParam != 0 then the message is not menu-related case WM_INITMENUPOPUP: if (g_IContext2) g_IContext2->HandleMenuMsg (message, wParam, lParam); else // version 3 g_IContext3->HandleMenuMsg (message, wParam, lParam); return (message == WM_INITMENUPOPUP ? 0 : TRUE); // inform caller that we handled WM_INITPOPUPMENU by ourself break; default: break; } // call original WndProc of window to prevent undefined bevhaviour of window return ::CallWindowProc (OldWndProc, hWnd, message, wParam, lParam); } UINT CShellContextMenu::ShowContextMenu(QWidget * pParentWidget, QPoint pt, QMenu* pMenu ) { HWND hWnd = pParentWidget->winId(); int iMenuType = 0; // to know which version of IContextMenu is supported LPCONTEXTMENU pContextMenu; // common pointer to IContextMenu and higher version interface if (!GetContextMenu ((void**) &pContextMenu, iMenuType)) return (0); // something went wrong if (!m_hMenu) { DestroyMenu( m_hMenu ); m_hMenu = CreatePopupMenu (); } int i; QList actionList = pMenu->actions(); for( i=0; itext(); if (!s.isEmpty()) AppendMenuW( m_hMenu, MF_STRING, i+1, (LPCWSTR)s.utf16() ); } AppendMenuW( m_hMenu, MF_SEPARATOR, i+1, L"" ); // lets fill the our popupmenu pContextMenu->QueryContextMenu (m_hMenu, GetMenuItemCount (m_hMenu), MIN_ID, MAX_ID, CMF_NORMAL | CMF_EXPLORE); // subclass window to handle menurelated messages in CShellContextMenu if (iMenuType > 1) // only subclass if its version 2 or 3 { OldWndProc = (WNDPROC) SetWindowLongPtr (hWnd, GWLP_WNDPROC, (DWORD_PTR) HookWndProc); if (iMenuType == 2) g_IContext2 = (LPCONTEXTMENU2) pContextMenu; else // version 3 g_IContext3 = (LPCONTEXTMENU3) pContextMenu; } else OldWndProc = NULL; UINT idCommand = TrackPopupMenu (m_hMenu,TPM_RETURNCMD | TPM_LEFTALIGN, pt.x(), pt.y(), 0, pParentWidget->winId(), 0); if (OldWndProc) // unsubclass SetWindowLongPtr (hWnd, GWLP_WNDPROC, (DWORD_PTR) OldWndProc); if (idCommand >= MIN_ID && idCommand <= MAX_ID) // see if returned idCommand belongs to shell menu entries { InvokeCommand (pContextMenu, idCommand - MIN_ID); // execute related command idCommand = 0; } pContextMenu->Release(); g_IContext2 = NULL; g_IContext3 = NULL; return (idCommand); } void CShellContextMenu::InvokeCommand (LPCONTEXTMENU pContextMenu, UINT idCommand) { CMINVOKECOMMANDINFO cmi = {0}; cmi.cbSize = sizeof (CMINVOKECOMMANDINFO); cmi.lpVerb = (LPSTR) MAKEINTRESOURCE (idCommand); cmi.nShow = SW_SHOWNORMAL; pContextMenu->InvokeCommand (&cmi); } void CShellContextMenu::SetObjects(const QString& strObject) { // only one object is passed QStringList strArray; strArray << strObject; // create a CStringArray with one element SetObjects (strArray); // and pass it to SetObjects (CStringArray &strArray) // for further processing } void CShellContextMenu::SetObjects(const QStringList &strList) { // free all allocated datas if (m_psfFolder && bDelete) m_psfFolder->Release (); m_psfFolder = NULL; FreePIDLArray (m_pidlArray); m_pidlArray = NULL; // get IShellFolder interface of Desktop (root of shell namespace) IShellFolder * psfDesktop = NULL; SHGetDesktopFolder (&psfDesktop); // needed to obtain full qualified pidl // ParseDisplayName creates a PIDL from a file system path relative to the IShellFolder interface // but since we use the Desktop as our interface and the Desktop is the namespace root // that means that it's a fully qualified PIDL, which is what we need LPITEMIDLIST pidl = NULL; psfDesktop->ParseDisplayName (NULL, 0, (LPOLESTR)strList[0].utf16(), NULL, &pidl, NULL); // now we need the parent IShellFolder interface of pidl, and the relative PIDL to that interface LPITEMIDLIST pidlItem = NULL; // relative pidl SHBindToParentEx (pidl, IID_IShellFolder, (void **) &m_psfFolder, NULL); free (pidlItem); // get interface to IMalloc (need to free the PIDLs allocated by the shell functions) LPMALLOC lpMalloc = NULL; SHGetMalloc (&lpMalloc); lpMalloc->Free (pidl); // now we have the IShellFolder interface to the parent folder specified in the first element in strArray // since we assume that all objects are in the same folder (as it's stated in the MSDN) // we now have the IShellFolder interface to every objects parent folder IShellFolder * psfFolder = NULL; nItems = strList.size (); for (int i = 0; i < nItems; i++) { pidl=0; psfDesktop->ParseDisplayName (NULL, 0, (LPOLESTR)strList[i].utf16(), NULL, &pidl, NULL); if (pidl) { m_pidlArray = (LPITEMIDLIST *) realloc (m_pidlArray, (i + 1) * sizeof (LPITEMIDLIST)); // get relative pidl via SHBindToParent SHBindToParentEx (pidl, IID_IShellFolder, (void **) &psfFolder, (LPCITEMIDLIST *) &pidlItem); m_pidlArray[i] = CopyPIDL (pidlItem); // copy relative pidl to pidlArray free (pidlItem); lpMalloc->Free (pidl); // free pidl allocated by ParseDisplayName psfFolder->Release (); } } lpMalloc->Release (); psfDesktop->Release (); bDelete = TRUE; // indicates that m_psfFolder should be deleted by CShellContextMenu } // only one full qualified PIDL has been passed void CShellContextMenu::SetObjects(LPITEMIDLIST /*pidl*/) { /* // free all allocated datas if (m_psfFolder && bDelete) m_psfFolder->Release (); m_psfFolder = NULL; FreePIDLArray (m_pidlArray); m_pidlArray = NULL; // full qualified PIDL is passed so we need // its parent IShellFolder interface and its relative PIDL to that LPITEMIDLIST pidlItem = NULL; SHBindToParent ((LPCITEMIDLIST) pidl, IID_IShellFolder, (void **) &m_psfFolder, (LPCITEMIDLIST *) &pidlItem); m_pidlArray = (LPITEMIDLIST *) malloc (sizeof (LPITEMIDLIST)); // allocate ony for one elemnt m_pidlArray[0] = CopyPIDL (pidlItem); // now free pidlItem via IMalloc interface (but not m_psfFolder, that we need later LPMALLOC lpMalloc = NULL; SHGetMalloc (&lpMalloc); lpMalloc->Free (pidlItem); lpMalloc->Release(); nItems = 1; bDelete = TRUE; // indicates that m_psfFolder should be deleted by CShellContextMenu */ } // IShellFolder interface with a relative pidl has been passed void CShellContextMenu::SetObjects(IShellFolder *psfFolder, LPITEMIDLIST pidlItem) { // free all allocated datas if (m_psfFolder && bDelete) m_psfFolder->Release (); m_psfFolder = NULL; FreePIDLArray (m_pidlArray); m_pidlArray = NULL; m_psfFolder = psfFolder; m_pidlArray = (LPITEMIDLIST *) malloc (sizeof (LPITEMIDLIST)); m_pidlArray[0] = CopyPIDL (pidlItem); nItems = 1; bDelete = FALSE; // indicates wheter m_psfFolder should be deleted by CShellContextMenu } void CShellContextMenu::SetObjects(IShellFolder * psfFolder, LPITEMIDLIST *pidlArray, int nItemCount) { // free all allocated datas if (m_psfFolder && bDelete) m_psfFolder->Release (); m_psfFolder = NULL; FreePIDLArray (m_pidlArray); m_pidlArray = NULL; m_psfFolder = psfFolder; m_pidlArray = (LPITEMIDLIST *) malloc (nItemCount * sizeof (LPITEMIDLIST)); for (int i = 0; i < nItemCount; i++) m_pidlArray[i] = CopyPIDL (pidlArray[i]); nItems = nItemCount; bDelete = FALSE; // indicates wheter m_psfFolder should be deleted by CShellContextMenu } void CShellContextMenu::FreePIDLArray(LPITEMIDLIST *pidlArray) { if (!pidlArray) return; int iSize = _msize (pidlArray) / sizeof (LPITEMIDLIST); for (int i = 0; i < iSize; i++) free (pidlArray[i]); free (pidlArray); } LPITEMIDLIST CShellContextMenu::CopyPIDL (LPCITEMIDLIST pidl, int cb) { if (cb == -1) cb = GetPIDLSize (pidl); // Calculate size of list. LPITEMIDLIST pidlRet = (LPITEMIDLIST) calloc (cb + sizeof (USHORT), sizeof (BYTE)); if (pidlRet) CopyMemory(pidlRet, pidl, cb); return (pidlRet); } UINT CShellContextMenu::GetPIDLSize (LPCITEMIDLIST pidl) { if (!pidl) return 0; int nSize = 0; LPITEMIDLIST pidlTemp = (LPITEMIDLIST) pidl; while (pidlTemp->mkid.cb) { nSize += pidlTemp->mkid.cb; pidlTemp = (LPITEMIDLIST) (((LPBYTE) pidlTemp) + pidlTemp->mkid.cb); } return nSize; } HMENU CShellContextMenu::GetMenu() { if (!m_hMenu) { m_hMenu = CreatePopupMenu(); // create the popupmenu (its empty) } return (m_hMenu); } // this is workaround function for the Shell API Function SHBindToParent // SHBindToParent is not available under Win95/98 HRESULT CShellContextMenu::SHBindToParentEx (LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast) { HRESULT hr = 0; if (!pidl || !ppv) return E_POINTER; int nCount = GetPIDLCount (pidl); if (nCount == 0) // desktop pidl of invalid pidl return E_POINTER; IShellFolder * psfDesktop = NULL; SHGetDesktopFolder (&psfDesktop); if (nCount == 1) // desktop pidl { if ((hr = psfDesktop->QueryInterface(riid, ppv)) == S_OK) { if (ppidlLast) *ppidlLast = CopyPIDL (pidl); } psfDesktop->Release (); return hr; } LPBYTE pRel = GetPIDLPos (pidl, nCount - 1); LPITEMIDLIST pidlParent = NULL; pidlParent = CopyPIDL (pidl, pRel - (LPBYTE) pidl); IShellFolder * psfFolder = NULL; if ((hr = psfDesktop->BindToObject (pidlParent, NULL, IID_IShellFolder, (void **) &psfFolder)) != S_OK) { free (pidlParent); psfDesktop->Release (); return hr; } if ((hr = psfFolder->QueryInterface (riid, ppv)) == S_OK) { if (ppidlLast) *ppidlLast = CopyPIDL ((LPCITEMIDLIST) pRel); } free (pidlParent); psfFolder->Release (); psfDesktop->Release (); return hr; } LPBYTE CShellContextMenu::GetPIDLPos (LPCITEMIDLIST pidl, int nPos) { if (!pidl) return 0; int nCount = 0; BYTE * pCur = (BYTE *) pidl; while (((LPCITEMIDLIST) pCur)->mkid.cb) { if (nCount == nPos) return pCur; nCount++; pCur += ((LPCITEMIDLIST) pCur)->mkid.cb; // + sizeof(pidl->mkid.cb); } if (nCount == nPos) return pCur; return NULL; } int CShellContextMenu::GetPIDLCount (LPCITEMIDLIST pidl) { if (!pidl) return 0; int nCount = 0; BYTE* pCur = (BYTE *) pidl; while (((LPCITEMIDLIST) pCur)->mkid.cb) { nCount++; pCur += ((LPCITEMIDLIST) pCur)->mkid.cb; } return nCount; } #endif kdiff3-0.9.97/src-QT4/kreplacements/kcmdlineargs.h0000644000175100001440000000004311626145613021170 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kaction.h0000644000175100001440000000004311626145613020155 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kfiledialog.h0000644000175100001440000000004311626145613020777 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kpagedialog.h0000644000175100001440000000004311626145613020774 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kmainwindow.h0000644000175100001440000000004311626145613021054 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/kprogress.h0000644000175100001440000000004311626145613020544 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/kreplacements/config-kdiff3.h0000644000175100001440000000004311626145613021136 0ustar joachimusers#include "kreplacements.h" kdiff3-0.9.97/src-QT4/CMakeLists.txt0000644000175100001440000000261712000246661016260 0ustar joachimusers #add_definitions(-DQT3_SUPPORT -DQT3_SUPPORT_WARNINGS) ########### kdiff3 KPart ############### set(kdiff3part_PART_SRCS kdiff3_part.cpp kdiff3.cpp directorymergewindow.cpp merger.cpp pdiff.cpp difftextwindow.cpp diff.cpp optiondialog.cpp mergeresultwindow.cpp fileaccess.cpp gnudiff_analyze.cpp gnudiff_io.cpp gnudiff_xmalloc.cpp common.cpp smalldialogs.cpp progress.cpp ) #kde4_add_plugin(kdiff3part WITH_PREFIX ${kdiff3part_PART_SRCS}) #set_target_properties(kdiff3part PROPERTIES DEFINE_SYMBOL KDIFF3_PART) #target_link_libraries(kdiff3part ${KDE4_KPARTS_LIBS} ${QT_QT3SUPPORT_LIBRARY}) #install(TARGETS kdiff3part DESTINATION ${PLUGIN_INSTALL_DIR} ) ########### kdiff3 executable ############### set(kdiff3_SRCS main.cpp kdiff3_shell.cpp ${kdiff3part_PART_SRCS} ) kde4_add_executable(kdiff3 ${kdiff3_SRCS}) target_link_libraries(kdiff3 ${KDE4_KPARTS_LIBS} ${QT_QT3SUPPORT_LIBRARY} ) install(TARGETS kdiff3 ${INSTALL_TARGETS_DEFAULT_ARGS}) ########### install files ############### install( FILES kdiff3part.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) install( FILES kdiff3_part.rc DESTINATION ${DATA_INSTALL_DIR}/kdiff3part ) install( FILES kdiff3_shell.rc DESTINATION ${DATA_INSTALL_DIR}/kdiff3 ) install( PROGRAMS kdiff3.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} ) kde4_install_icons( ${ICON_INSTALL_DIR} ) kdiff3-0.9.97/src-QT4/main.cpp0000644000175100001440000002566712011572070015160 0ustar joachimusers/*************************************************************************** main.cpp - Where everything starts. ------------------- begin : Don Jul 11 12:31:29 CEST 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include #include #include #include "kdiff3_shell.h" #include #include "version.h" #include #include #include #include #include #include #include #include #ifdef KREPLACEMENTS_H #include "optiondialog.h" #endif #include "common.h" void initialiseCmdLineArgs( KCmdLineOptions& options ) { QString configFileName = KStandardDirs().findResource("config","kdiff3rc"); QFile configFile( configFileName ); QString ignorableOptionsLine = "-u;-query;-html;-abort"; if ( configFile.open( QIODevice::ReadOnly ) ) { QTextStream ts( &configFile ); while(!ts.atEnd()) { QString line = ts.readLine(); if ( line.startsWith("IgnorableCmdLineOptions=") ) { int pos = line.indexOf('='); if (pos>=0) { ignorableOptionsLine = line.mid(pos+1); } break; } } } #ifdef KREPLACEMENTS_H QStringList sl = ignorableOptionsLine.split( '|' ); #else QStringList sl = ignorableOptionsLine.split( ',' ); #endif if (!sl.isEmpty()) { QStringList ignorableOptions = sl.front().split( ';' ); for (QStringList::iterator i=ignorableOptions.begin(); i!=ignorableOptions.end(); ++i) { (*i).remove('-'); if (!(*i).isEmpty()) { if ( i->length()==1 ) options.add( i->toLatin1() ).add("ignore", ki18n("Ignored. (User defined.)") ); else options.add( i->toLatin1(), ki18n("Ignored. (User defined.)") ); } } } } #ifdef _WIN32 #include // This command checks the comm static bool isOptionUsed(const QString& s, int argc, char* argv[]) { for(int j=0; jreadEntry("Language", "Auto"); int spacePos = locale.indexOf(' '); if (spacePos>0) locale = locale.left(spacePos); ContextFreeTranslator kdiff3Translator( 0 ); QTranslator qtTranslator( 0 ); if (locale != "en_orig") { if ( locale == "Auto" || locale.isEmpty() ) locale = locale = QLocale::system().name().left(2); QString translationDir = getTranslationDir(locale); kdiff3Translator.load( QString("kdiff3_")+locale, translationDir ); app.installTranslator( &kdiff3Translator ); qtTranslator.load( QString("qt_")+locale, translationDir ); app.installTranslator( &qtTranslator ); } #endif #ifndef QT_NO_SESSIONMANAGER if (app.isSessionRestored()) { RESTORE(KDiff3Shell); } else #endif { KDiff3Shell* p = new KDiff3Shell(); p->show(); p->setWindowState( p->windowState() | Qt::WindowActive ); // Patch for ubuntu: window not active on startup } //app.installEventFilter( new CFilter ); int retVal = app.exec(); if (QApplication::clipboard()->text().size() == 0) QApplication::clipboard()->clear(); // Patch for Ubuntu: Fix issue with Qt clipboard return retVal; } // Suppress warning with --enable-final #undef VERSION kdiff3-0.9.97/src-QT4/optiondialog.h0000644000175100001440000000605712000244602016354 0ustar joachimusers/* * kdiff3 - Text Diff And Merge Tool * Copyright (C) 2002-2007 Joachim Eibl, joachim.eibl at gmx.de * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * */ #ifndef OPTION_DIALOG_H #define OPTION_DIALOG_H #include #include #include #include #include "options.h" class OptionItem; class OptionCheckBox; class OptionEncodingComboBox; class OptionLineEdit; class KKeyDialog; class OptionDialog : public KPageDialog { Q_OBJECT public: OptionDialog( bool bShowDirMergeSettings, QWidget *parent = 0, char *name = 0 ); ~OptionDialog( void ); QString parseOptions( const QStringList& optionList ); QString calcOptionHelp(); Options m_options; void saveOptions(KSharedConfigPtr config); void readOptions(KSharedConfigPtr config); void setState(); // Must be called before calling exec(); void addOptionItem(OptionItem*); KKeyDialog* m_pKeyDialog; protected slots: virtual void slotDefault( void ); virtual void slotOk( void ); virtual void slotApply( void ); void slotEncodingChanged(); void slotHistoryMergeRegExpTester(); void slotIntegrateWithClearCase(); void slotRemoveClearCaseIntegration(); signals: void applyDone(); private: void resetToDefaults(); std::list m_optionItemList; OptionCheckBox* m_pSameEncoding; OptionEncodingComboBox* m_pEncodingAComboBox; OptionCheckBox* m_pAutoDetectUnicodeA; OptionEncodingComboBox* m_pEncodingBComboBox; OptionCheckBox* m_pAutoDetectUnicodeB; OptionEncodingComboBox* m_pEncodingCComboBox; OptionCheckBox* m_pAutoDetectUnicodeC; OptionEncodingComboBox* m_pEncodingOutComboBox; OptionCheckBox* m_pAutoSelectOutEncoding; OptionEncodingComboBox* m_pEncodingPPComboBox; OptionCheckBox* m_pHistoryAutoMerge; OptionLineEdit* m_pAutoMergeRegExpLineEdit; OptionLineEdit* m_pHistoryStartRegExpLineEdit; OptionLineEdit* m_pHistoryEntryStartRegExpLineEdit; OptionCheckBox* m_pHistoryMergeSorting; OptionLineEdit* m_pHistorySortKeyOrderLineEdit; private: void setupFontPage(); void setupColorPage(); void setupEditPage(); void setupDiffPage(); void setupMergePage(); void setupDirectoryMergePage(); void setupKeysPage(); void setupRegionalPage(); void setupIntegrationPage(); void setupOtherOptions(); }; #endif kdiff3-0.9.97/src-QT4/kdiff3_part.rc0000644000175100001440000000145011626145613016244 0ustar joachimusers &KDiff3 Configure KDiff3 KDiff3 kdiff3-0.9.97/src-QT4/lo32-app-kdiff3.png0000644000175100001440000000035011626145613016727 0ustar joachimusersPNG  IHDR TgPLTE@tRNS@fIDATxڝ 0u}]+U#O<9׿4,4[&fX"eY1Il IboiB%t t ^wPDFEp\|GzmIENDB`kdiff3-0.9.97/src-QT4/kdiff3.desktop0000644000175100001440000001363511627514673016302 0ustar joachimusers[Desktop Entry] Name=KDiff3 Name[be]=KDiff3 Name[bg]=KDiff3 Name[bs]=KDiff3 Name[ca]=KDiff3 Name[ca@valencia]=KDiff3 Name[cs]=KDiff3 Name[da]=KDiff3 Name[de]=KDiff3 Name[el]=KDiff3 Name[en_GB]=KDiff3 Name[es]=KDiff3 Name[et]=KDiff3 Name[fr]=KDiff3 Name[ga]=KDiff3 Name[gl]=KDiff3 Name[hi]=के-डिफ3 Name[hne]=के-डिफ3 Name[hr]=KDiff3 Name[hu]=KDiff3 Name[it]=KDiff3 Name[ja]=KDiff3 Name[km]=KDiff3 Name[ko]=KDiff3 Name[ml]=കെഡിഫ്3 Name[nb]=KDiff3 Name[nds]=KDiff3 Name[nl]=KDiff3 Name[nn]=KDiff3 Name[pl]=KDiff3 Name[pt]=KDiff3 Name[pt_BR]=KDiff3 Name[ro]=KDiff3 Name[ru]=KDiff3 Name[sv]=Kdiff3 Name[tr]=KDiff3 Name[uk]=KDiff3 Name[x-test]=xxKDiff3xx Name[zh_CN]=KDiff3 Name[zh_TW]=KDiff3 GenericName=Diff/Patch Frontend GenericName[bg]=Интерфейс на Diff/Patch GenericName[bs]=Prikaz za Diff/Patch GenericName[ca]=Frontal de Diff/Patch GenericName[ca@valencia]=Frontal de Diff/Patch GenericName[cs]=Rozhraní pro Diff/Patch GenericName[da]=Brugerflade til diff/patch GenericName[de]=Grafische Oberfläche zu Diff/Patch GenericName[el]=Σύστημα υποστήριξης χρήστη για τα Diff/Patch GenericName[en_GB]=Diff/Patch Frontend GenericName[eo]=Fasado por la programoj "diff" kaj "patch" GenericName[es]=Interfaz para diff/patch GenericName[et]=Võrdlemise ja liitmise rakendus GenericName[fr]=Interface pour Diff / Patch GenericName[ga]=Comhéadan Diff/Patch GenericName[gl]=Interface para Diff e Patch GenericName[hi]=डिफ/पैच फ्रन्टएण्ड GenericName[hne]=डिफ/पैच फ्रन्टएन्ड GenericName[hu]=Diff/Patch Frontend GenericName[it]=Interfaccia per i comandi diff e patch GenericName[ja]=Diff/Patch フロントエンド GenericName[km]=Diff/Patch ខាង​មុខ GenericName[ko]=Diff/Patch 프론트엔드 GenericName[ml]=ഡിഫ്/പാച്ച് പുരോഭാഗം GenericName[nb]=Diff-/Patch-grensesnitt GenericName[nds]=Böversiet för "diff" un "patch" GenericName[nl]=Diff/Patch-hulpprogramma GenericName[nn]=Motor for diff- og patch-filer GenericName[pl]=Interfejs do Diff/Patch GenericName[pt]=Interface do Diff/Patch GenericName[pt_BR]=Interface do diff/patch GenericName[ro]=Interfață Diferențiere/Cîrpire GenericName[ru]=Графический интерфейс Diff/Patch GenericName[sv]=Jämförelse- och programfixgränssnitt GenericName[tr]=Diff/Patch Arayüzü GenericName[uk]=Графічна оболонка Diff/Patch GenericName[x-test]=xxDiff/Patch Frontendxx GenericName[zh_CN]=Diff/Patch 前端 GenericName[zh_TW]=比較/修補程式前端介面 Exec=kdiff3 %i -caption "%c" Icon=kdiff3 Type=Application X-DocPath=kdiff3/index.html Comment=A File And Directory Comparison And Merge Tool Comment[bg]=Инструмент за сравняване и сливане на файлове и директории Comment[bs]=Alat za poređenje i spajanje direktorija i datoteka Comment[ca]=Una eina de comparació i fusió de fitxer i directori Comment[ca@valencia]=Una eina de comparació i fusió de fitxer i directori Comment[cs]=Nástroj pro porovnávání a slučování souborů a adresářů Comment[da]=Et værktøj til sammenfletning og sammenligning af filer og mapper Comment[de]=Programm zum Vergleichen und Zusammenführen von Dateien und Ordnern Comment[el]=Ένα εργαλείο σύγκρισης και συγχώνευσης αρχείων και καταλόγων Comment[en_GB]=A File And Directory Comparison And Merge Tool Comment[es]=Una herramienta para comparar y fusionar archivos y directorios Comment[et]=Failide ja kataloogide võrdlemise ja liitmise tööriist Comment[fr]=Un outil de comparaison et de fusion de fichiers et de dossiers Comment[ga]=Uirlis a chuireann comhaid agus comhadlanna i gcomparáid agus a chumascann iad más gá Comment[gl]=Unha ferramenta de comparación e fusión de ficheiros e cartafoles Comment[hi]=फ़ाइल तथा डिरेक्ट्री तुलना करने व मिलाने का औजार Comment[hne]=फाइल अउ डिरेक्टरी तुलना करे अउ मिलाय के औजार Comment[hu]=Egy fájl és könyvtár összehasonlítási és egyesítési eszköz Comment[it]=Uno strumento di confronto e fusione di file e cartelle Comment[ja]=ファイルやディレクトリの比較/マージを行うツール Comment[km]=ការ​ប្រៀបធៀប​ថត និង​ឯកសារ និង​ឧបករណ៌​បញ្ចូល​គ្នា Comment[ko]=파일과 디렉터리 비교 및 병합 도구 Comment[ml]=ഫയലും അറകളും താരതമ്യം ചെയ്യാനും ലയിപ്പിക്കാനുമുള്ള ഒരു ആയുധം Comment[nb]=Et verktøy for å sammelnlikne og flette filer og mapper Comment[nds]=En Warktüüch för't Verglieken un Tosamenföhren vun Dateien un Ornern Comment[nl]=Hulpmiddel voor het vergelijken en samenvoegen van bestanden en mappen Comment[nn]=Eit program for samanlikning og fletting av filer og mapper Comment[pl]=Narzędzie do porównywania i łączenia plików i katalogów Comment[pt]=Uma Ferramenta de Comparação e Junção de Ficheiros e Pastas Comment[pt_BR]=Uma ferramenta de comparação e junção de arquivos e pastas Comment[ro]=Un instrument de comparare și unire a fișierelor și directoarelor Comment[ru]=Инструмент для сравнения и объединения файлов и каталогов Comment[sv]=Ett jämförelseverktyg för fil- och katalogjämförelser Comment[tr]=Bir Dosya Ve Klasör Karşılaştırma Ve Birleştirme Aracı Comment[uk]=Інструмент для порівняння та з’єднання файлів та тек Comment[x-test]=xxA File And Directory Comparison And Merge Toolxx Comment[zh_CN]=一个文件和目录的比较和合并的工具 Comment[zh_TW]=一個檔案與目錄比較與合併的工具 Terminal=false Categories=Qt;KDE;Development; kdiff3-0.9.97/src-QT4/gnudiff_diff.h0000644000175100001440000002600411626145614016310 0ustar joachimusers/* Shared definitions for GNU DIFF Modified for KDiff3 by Joachim Eibl 2003, 2004, 2005. The original file was part of GNU DIFF. Copyright (C) 1988, 1989, 1991, 1992, 1993, 1994, 1995, 1998, 2001, 2002 Free Software Foundation, Inc. GNU DIFF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU DIFF is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef GNUDIFF_DIFF_H #define GNUDIFF_DIFF_H #include "gnudiff_system.h" #include #include #define TAB_WIDTH 8 class GnuDiff { public: /* What kind of changes a hunk contains. */ enum changes { /* No changes: lines common to both files. */ UNCHANGED, /* Deletes only: lines taken from just the first file. */ OLD, /* Inserts only: lines taken from just the second file. */ NEW, /* Both deletes and inserts: a hunk containing both old and new lines. */ CHANGED }; /* Variables for command line options */ /* Nonzero if output cannot be generated for identical files. */ bool no_diff_means_no_output; /* Number of lines of context to show in each set of diffs. This is zero when context is not to be shown. */ lin context; /* Consider all files as text files (-a). Don't interpret codes over 0177 as implying a "binary file". */ bool text; /* The significance of white space during comparisons. */ enum { /* All white space is significant (the default). */ IGNORE_NO_WHITE_SPACE, /* Ignore changes due to tab expansion (-E). */ IGNORE_TAB_EXPANSION, /* Ignore changes in horizontal white space (-b). */ IGNORE_SPACE_CHANGE, /* Ignore all horizontal white space (-w). */ IGNORE_ALL_SPACE } ignore_white_space; /* Ignore changes that affect only blank lines (-B). */ bool ignore_blank_lines; /* Ignore changes that affect only numbers. (J. Eibl) */ bool bIgnoreNumbers; bool bIgnoreWhiteSpace; /* Files can be compared byte-by-byte, as if they were binary. This depends on various options. */ bool files_can_be_treated_as_binary; /* Ignore differences in case of letters (-i). */ bool ignore_case; /* Ignore differences in case of letters in file names. */ bool ignore_file_name_case; /* Regexp to identify function-header lines (-F). */ //struct re_pattern_buffer function_regexp; /* Ignore changes that affect only lines matching this regexp (-I). */ //struct re_pattern_buffer ignore_regexp; /* Say only whether files differ, not how (-q). */ bool brief; /* Expand tabs in the output so the text lines up properly despite the characters added to the front of each line (-t). */ bool expand_tabs; /* Use a tab in the output, rather than a space, before the text of an input line, so as to keep the proper alignment in the input line without changing the characters in it (-T). */ bool initial_tab; /* In directory comparison, specify file to start with (-S). This is used for resuming an aborted comparison. All file names less than this name are ignored. */ const QChar *starting_file; /* Pipe each file's output through pr (-l). */ bool paginate; /* Line group formats for unchanged, old, new, and changed groups. */ const QChar *group_format[CHANGED + 1]; /* Line formats for unchanged, old, and new lines. */ const QChar *line_format[NEW + 1]; /* If using OUTPUT_SDIFF print extra information to help the sdiff filter. */ bool sdiff_merge_assist; /* Tell OUTPUT_SDIFF to show only the left version of common lines. */ bool left_column; /* Tell OUTPUT_SDIFF to not show common lines. */ bool suppress_common_lines; /* The half line width and column 2 offset for OUTPUT_SDIFF. */ unsigned int sdiff_half_width; unsigned int sdiff_column2_offset; /* Use heuristics for better speed with large files with a small density of changes. */ bool speed_large_files; /* Patterns that match file names to be excluded. */ struct exclude *excluded; /* Don't discard lines. This makes things slower (sometimes much slower) but will find a guaranteed minimal set of changes. */ bool minimal; /* The result of comparison is an "edit script": a chain of `struct change'. Each `struct change' represents one place where some lines are deleted and some are inserted. LINE0 and LINE1 are the first affected lines in the two files (origin 0). DELETED is the number of lines deleted here from file 0. INSERTED is the number of lines inserted here in file 1. If DELETED is 0 then LINE0 is the number of the line before which the insertion was done; vice versa for INSERTED and LINE1. */ struct change { struct change *link; /* Previous or next edit command */ lin inserted; /* # lines of file 1 changed here. */ lin deleted; /* # lines of file 0 changed here. */ lin line0; /* Line number of 1st deleted line. */ lin line1; /* Line number of 1st inserted line. */ bool ignore; /* Flag used in context.c. */ }; /* Structures that describe the input files. */ /* Data on one input file being compared. */ struct file_data { /* Buffer in which text of file is read. */ const QChar* buffer; /* Allocated size of buffer, in QChars. Always a multiple of sizeof *buffer. */ size_t bufsize; /* Number of valid bytes now in the buffer. */ size_t buffered; /* Array of pointers to lines in the file. */ const QChar **linbuf; /* linbuf_base <= buffered_lines <= valid_lines <= alloc_lines. linebuf[linbuf_base ... buffered_lines - 1] are possibly differing. linebuf[linbuf_base ... valid_lines - 1] contain valid data. linebuf[linbuf_base ... alloc_lines - 1] are allocated. */ lin linbuf_base, buffered_lines, valid_lines, alloc_lines; /* Pointer to end of prefix of this file to ignore when hashing. */ const QChar *prefix_end; /* Count of lines in the prefix. There are this many lines in the file before linbuf[0]. */ lin prefix_lines; /* Pointer to start of suffix of this file to ignore when hashing. */ const QChar *suffix_begin; /* Vector, indexed by line number, containing an equivalence code for each line. It is this vector that is actually compared with that of another file to generate differences. */ lin *equivs; /* Vector, like the previous one except that the elements for discarded lines have been squeezed out. */ lin *undiscarded; /* Vector mapping virtual line numbers (not counting discarded lines) to real ones (counting those lines). Both are origin-0. */ lin *realindexes; /* Total number of nondiscarded lines. */ lin nondiscarded_lines; /* Vector, indexed by real origin-0 line number, containing TRUE for a line that is an insertion or a deletion. The results of comparison are stored here. */ bool *changed; /* 1 if at end of file. */ bool eof; /* 1 more than the maximum equivalence value used for this or its sibling file. */ lin equiv_max; }; /* Data on two input files being compared. */ struct comparison { struct file_data file[2]; struct comparison const *parent; /* parent, if a recursive comparison */ }; /* Describe the two files currently being compared. */ struct file_data files[2]; /* Stdio stream to output diffs to. */ FILE *outfile; /* Declare various functions. */ /* analyze.c */ struct change* diff_2_files (struct comparison *); /* context.c */ void print_context_header (struct file_data[], bool); void print_context_script (struct change *, bool); /* dir.c */ int diff_dirs (struct comparison const *, int (*) (struct comparison const *, const QChar *, const QChar *)); /* ed.c */ void print_ed_script (struct change *); void pr_forward_ed_script (struct change *); /* ifdef.c */ void print_ifdef_script (struct change *); /* io.c */ void file_block_read (struct file_data *, size_t); bool read_files (struct file_data[], bool); /* normal.c */ void print_normal_script (struct change *); /* rcs.c */ void print_rcs_script (struct change *); /* side.c */ void print_sdiff_script (struct change *); /* util.c */ QChar *concat (const QChar *, const QChar *, const QChar *); bool lines_differ ( const QChar *, size_t, const QChar *, size_t ); lin translate_line_number (struct file_data const *, lin); struct change *find_change (struct change *); struct change *find_reverse_change (struct change *); void *zalloc (size_t); enum changes analyze_hunk (struct change *, lin *, lin *, lin *, lin *); void begin_output (void); void debug_script (struct change *); void finish_output (void); void message (const QChar *, const QChar *, const QChar *); void message5 (const QChar *, const QChar *, const QChar *, const QChar *, const QChar *); void output_1_line (const QChar *, const QChar *, const QChar *, const QChar *); void perror_with_name (const QChar *); void setup_output (const QChar *, const QChar *, bool); void translate_range (struct file_data const *, lin, lin, long *, long *); /* version.c */ //extern const QChar version_string[]; private: // gnudiff_analyze.cpp lin diag (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal, struct partition *part); void compareseq (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal); void discard_confusing_lines (struct file_data filevec[]); void shift_boundaries (struct file_data filevec[]); struct change * add_change (lin line0, lin line1, lin deleted, lin inserted, struct change *old); struct change * build_reverse_script (struct file_data const filevec[]); struct change* build_script (struct file_data const filevec[]); // gnudiff_io.cpp void find_and_hash_each_line (struct file_data *current); void find_identical_ends (struct file_data filevec[]); // gnudiff_xmalloc.cpp void *xmalloc (size_t n); void *xrealloc(void *p, size_t n); void xalloc_die (void); inline bool isWhite( QChar c ) { return c==' ' || c=='\t' || c=='\r'; } }; // class GnuDiff # define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items))) # define XREALLOC(Ptr, Type, N_items) \ ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items))) /* Declare and alloc memory for VAR of type TYPE. */ # define NEW(Type, Var) Type *(Var) = XMALLOC (Type, 1) /* Free VAR only if non NULL. */ # define XFREE(Var) \ do { \ if (Var) \ free (Var); \ } while (0) /* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */ # define CCLONE(Src, Num) \ (memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num))) /* Return a malloc'ed copy of SRC. */ # define CLONE(Src) CCLONE (Src, 1) #endif kdiff3-0.9.97/src-QT4/fileaccess.h0000644000175100001440000001356612000244602015770 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2007 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #ifndef FILEACCESS_H #define FILEACCESS_H #include "progress.h" #include #include #include #include #include bool wildcardMultiMatch( const QString& wildcard, const QString& testString, bool bCaseSensitive ); class t_DirectoryList; class QFileInfo; class ProgressProxyExtender: public ProgressProxy { Q_OBJECT public slots: void slotListDirInfoMessage( KJob*, const QString& msg ); void slotPercent( KJob*, unsigned long percent ); }; class FileAccess { public: FileAccess(); ~FileAccess(); FileAccess( const QString& name, bool bWantToWrite=false ); // name: local file or dirname or url (when supported) FileAccess(const FileAccess& other); const FileAccess& operator=(const FileAccess& other); void setFile( const QString& name, bool bWantToWrite=false ); bool isValid() const; bool isFile() const; bool isDir() const; bool isSymLink() const; bool exists() const; qint64 size() const; // Size as returned by stat(). qint64 sizeForReading(); // If the size can't be determined by stat() then the file is copied to a local temp file. bool isReadable() const; bool isWritable() const; bool isExecutable() const; bool isHidden() const; QString readLink() const; //QDateTime created() const; QDateTime lastModified() const; //QDateTime lastRead() const; QString fileName() const; // Just the name-part of the path, without parent directories QString filePath() const; // The path-string that was used during construction QString prettyAbsPath() const; KUrl url() const; QString absoluteFilePath() const; bool isLocal() const; bool readFile(void* pDestBuffer, unsigned long maxLength ); bool writeFile(const void* pSrcBuffer, unsigned long length ); bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, const QString& filePattern, const QString& fileAntiPattern, const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore ); bool copyFile( const QString& destUrl ); bool createBackup( const QString& bakExtension ); static QString tempFileName(); static bool removeTempFile( const QString& ); bool removeFile(); static bool removeFile( const QString& ); static bool makeDir( const QString& ); static bool removeDir( const QString& ); static bool exists( const QString& ); static QString cleanPath( const QString& ); //bool chmod( const QString& ); bool rename( const QString& ); static bool symLink( const QString& linkTarget, const QString& linkLocation ); void addPath( const QString& txt ); QString getStatusText(); FileAccess* parent() const; // !=0 for listDir-results, but only valid if the parent was not yet destroyed. void setSharedName( const QString& name ); // might reduce memory consumption private: void setUdsEntry( const KIO::UDSEntry& e ); void setFile( const QFileInfo& fi, FileAccess* pParent ); void setStatusText( const QString& s ); class Data; Data* d(); const Data* d() const; void createData(); union { Data* m_pData; FileAccess* m_pParent; }; QString m_filePath; // might be absolute or relative if m_pParent!=0 qint64 m_size; QDateTime m_modificationTime; bool m_bSymLink : 1; bool m_bFile : 1; bool m_bDir : 1; bool m_bExists : 1; bool m_bWritable : 1; bool m_bHidden : 1; bool m_bUseData : 1; friend class FileAccessJobHandler; }; class t_DirectoryList : public std::list {}; class FileAccessJobHandler : public QObject { Q_OBJECT public: FileAccessJobHandler( FileAccess* pFileAccess ); bool get( void* pDestBuffer, long maxLength ); bool put( const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume=false, int permissions=-1 ); bool stat(int detailLevel=2, bool bWantToWrite=false ); bool copyFile( const QString& dest ); bool rename( const QString& dest ); bool listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, const QString& filePattern, const QString& fileAntiPattern, const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore ); bool mkDir( const QString& dirName ); bool rmDir( const QString& dirName ); bool removeFile( const QString& dirName ); bool symLink( const QString& linkTarget, const QString& linkLocation ); private: FileAccess* m_pFileAccess; bool m_bSuccess; // Data needed during Job qint64 m_transferredBytes; char* m_pTransferBuffer; // Needed during get or put qint64 m_maxLength; QString m_filePattern; QString m_fileAntiPattern; QString m_dirAntiPattern; t_DirectoryList* m_pDirList; bool m_bFindHidden; bool m_bRecursive; bool m_bFollowDirLinks; bool scanLocalDirectory( const QString& dirName, t_DirectoryList* dirList ); private slots: void slotStatResult( KJob* ); void slotSimpleJobResult( KJob* pJob ); void slotPutJobResult( KJob* pJob ); void slotGetData(KJob*,const QByteArray&); void slotPutData(KIO::Job*, QByteArray&); void slotListDirProcessNewEntries( KIO::Job *, const KIO::UDSEntryList& l ); }; #endif kdiff3-0.9.97/src-QT4/merger.cpp0000644000175100001440000000430212000244602015467 0ustar joachimusers/*************************************************************************** merger.cpp - description ------------------- begin : Sun Mar 24 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "merger.h" #include Merger::Merger( const DiffList* pDiffListAB, const DiffList* pDiffListCA ) : md1( pDiffListAB, 0 ), md2( pDiffListCA, 1 ) { } Merger::MergeData::MergeData( const DiffList* p, int i ) : d(0,0,0) { idx=i; pDiffList = p; if ( p!=0 ) { it=p->begin(); update(); } } bool Merger::MergeData::eq() { return pDiffList==0 || d.nofEquals > 0; } bool Merger::MergeData::isEnd() { return ( pDiffList==0 || ( it==pDiffList->end() && d.nofEquals==0 && ( idx == 0 ? d.diff1==0 : d.diff2==0 ) ) ); } void Merger::MergeData::update() { if ( d.nofEquals > 0 ) --d.nofEquals; else if ( idx==0 && d.diff1 > 0 ) --d.diff1; else if ( idx==1 && d.diff2 > 0 ) --d.diff2; while( d.nofEquals == 0 && ((idx==0 && d.diff1 == 0) || (idx==1 && d.diff2 == 0)) && pDiffList!=0 && it != pDiffList->end() ) { d = *it; ++it; } } void Merger::next() { md1.update(); md2.update(); } int Merger::whatChanged() { int changed = 0; changed |= md1.eq() ? 0 : 1; changed |= md2.eq() ? 0 : 2; return changed; } bool Merger::isEndReached() { return md1.isEnd() && md2.isEnd(); } kdiff3-0.9.97/src-QT4/kdiff3.h0000644000175100001440000003047712000244602015035 0ustar joachimusers/*************************************************************************** kdiff3.h - description ------------------- begin : Don Jul 11 12:31:29 CEST 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef KDIFF3_H #define KDIFF3_H #include "diff.h" #include // include files for Qt #include #include // include files for KDE #include #include #include #include #include #include // forward declaration of the KDiff3 classes class OptionDialog; class FindDialog; class ManualDiffHelpDialog; class DiffTextWindow; class DiffTextWindowFrame; class MergeResultWindow; class WindowTitleWidget; class Overview; class QScrollBar; class QSplitter; class KDiff3Part; class DirectoryMergeWindow; class DirectoryMergeInfo; class ReversibleScrollBar : public QScrollBar { Q_OBJECT bool* m_pbRightToLeftLanguage; int m_realVal; public: ReversibleScrollBar( Qt::Orientation o, bool* pbRightToLeftLanguage ) : QScrollBar( o ) { m_pbRightToLeftLanguage=pbRightToLeftLanguage; m_realVal=0; connect( this, SIGNAL(valueChanged(int)), this, SLOT(slotValueChanged(int))); } void setAgain(){ setValue(m_realVal); } public slots: void slotValueChanged(int i) { m_realVal = i; if(m_pbRightToLeftLanguage && *m_pbRightToLeftLanguage) m_realVal = maximum()-(i-minimum()); emit valueChanged2(m_realVal); } void setValue(int i) { if(m_pbRightToLeftLanguage && *m_pbRightToLeftLanguage) QScrollBar::setValue( maximum()-(i-minimum()) ); else QScrollBar::setValue( i ); } signals: void valueChanged2(int); }; class KDiff3App : public QSplitter { Q_OBJECT public: /** constructor of KDiff3App, calls all init functions to create the application. */ KDiff3App( QWidget* parent, const char* name, KDiff3Part* pKDiff3Part ); ~KDiff3App(); bool isPart(); /** initializes the KActions of the application */ void initActions( KActionCollection* ); /** save general Options like all bar positions and status as well as the geometry and the recent file list to the configuration file */ void saveOptions( KSharedConfigPtr ); /** read general Options again and initialize all variables like the recent file list */ void readOptions( KSharedConfigPtr ); // Finish initialisation (virtual, so that it can be called from the shell too.) virtual void completeInit(const QString& fn1="", const QString& fn2="", const QString& fn3=""); /** queryClose is called by KMainWindow on each closeEvent of a window. Against the * default implementation (only returns true), this calles saveModified() on the document object to ask if the document shall * be saved if Modified; on cancel the closeEvent is rejected. * @see KMainWindow#queryClose * @see KMainWindow#closeEvent */ virtual bool queryClose(); virtual bool isFileSaved(); virtual bool isDirComparison(); signals: void createNewInstance( const QString& fn1, const QString& fn2, const QString& fn3 ); protected: void initDirectoryMergeActions(); /** sets up the statusbar for the main window by initialzing a statuslabel. */ void initStatusBar(); /** creates the centerwidget of the KMainWindow instance and sets it as the view */ void initView(); public slots: /** open a file and load it into the document*/ void slotFileOpen(); void slotFileOpen2( QString fn1, QString fn2, QString fn3, QString ofn, QString an1, QString an2, QString an3, TotalDiffStatus* pTotalDiffStatus ); void slotFileNameChanged(const QString& fileName, int winIdx); /** save a document */ void slotFileSave(); /** save a document by a new filename*/ void slotFileSaveAs(); void slotFilePrint(); /** closes all open windows by calling close() on each memberList item until the list is empty, then quits the application. * If queryClose() returns false because the user canceled the saveModified() dialog, the closing breaks. */ void slotFileQuit(); /** put the marked text/object into the clipboard and remove * it from the document */ void slotEditCut(); /** put the marked text/object into the clipboard */ void slotEditCopy(); /** paste the clipboard into the document */ void slotEditPaste(); /** toggles the toolbar */ void slotViewToolBar(); /** toggles the statusbar */ void slotViewStatusBar(); /** changes the statusbar contents for the standard label permanently, used to indicate current actions. * @param text the text that is displayed in the statusbar */ void slotStatusMsg(const QString &text); private: /** the configuration object of the application */ //KConfig *config; // KAction pointers to enable/disable actions KAction* fileOpen; KAction* fileSave; KAction* fileSaveAs; KAction* filePrint; KAction* fileQuit; KAction* fileReload; KAction* editCut; KAction* editCopy; KAction* editPaste; KAction* editSelectAll; KToggleAction* viewToolBar; KToggleAction* viewStatusBar; //////////////////////////////////////////////////////////////////////// // Special KDiff3 specific stuff starts here KAction *editFind; KAction *editFindNext; KAction *goCurrent; KAction *goTop; KAction *goBottom; KAction *goPrevUnsolvedConflict; KAction *goNextUnsolvedConflict; KAction *goPrevConflict; KAction *goNextConflict; KAction *goPrevDelta; KAction *goNextDelta; KToggleAction *chooseA; KToggleAction *chooseB; KToggleAction *chooseC; KToggleAction *autoAdvance; KToggleAction *wordWrap; KAction* splitDiff; KAction* joinDiffs; KAction* addManualDiffHelp; KAction* clearManualDiffHelpList; KToggleAction *showWhiteSpaceCharacters; KToggleAction *showWhiteSpace; KToggleAction *showLineNumbers; KAction* chooseAEverywhere; KAction* chooseBEverywhere; KAction* chooseCEverywhere; KAction* chooseAForUnsolvedConflicts; KAction* chooseBForUnsolvedConflicts; KAction* chooseCForUnsolvedConflicts; KAction* chooseAForUnsolvedWhiteSpaceConflicts; KAction* chooseBForUnsolvedWhiteSpaceConflicts; KAction* chooseCForUnsolvedWhiteSpaceConflicts; KAction* autoSolve; KAction* unsolve; KAction* mergeHistory; KAction* mergeRegExp; KToggleAction *showWindowA; KToggleAction *showWindowB; KToggleAction *showWindowC; KAction *winFocusNext; KAction *winFocusPrev; KAction* winToggleSplitOrientation; KToggleAction *dirShowBoth; KAction *dirViewToggle; KToggleAction *overviewModeNormal; KToggleAction *overviewModeAB; KToggleAction *overviewModeAC; KToggleAction *overviewModeBC; QMenu* m_pMergeEditorPopupMenu; QSplitter* m_pMainSplitter; QWidget* m_pMainWidget; QWidget* m_pMergeWindowFrame; ReversibleScrollBar* m_pHScrollBar; QScrollBar* m_pDiffVScrollBar; QScrollBar* m_pMergeVScrollBar; DiffTextWindow* m_pDiffTextWindow1; DiffTextWindow* m_pDiffTextWindow2; DiffTextWindow* m_pDiffTextWindow3; DiffTextWindowFrame* m_pDiffTextWindowFrame1; DiffTextWindowFrame* m_pDiffTextWindowFrame2; DiffTextWindowFrame* m_pDiffTextWindowFrame3; QSplitter* m_pDiffWindowSplitter; MergeResultWindow* m_pMergeResultWindow; WindowTitleWidget* m_pMergeResultWindowTitle; bool m_bTripleDiff; QSplitter* m_pDirectoryMergeSplitter; DirectoryMergeWindow* m_pDirectoryMergeWindow; DirectoryMergeInfo* m_pDirectoryMergeInfo; bool m_bDirCompare; Overview* m_pOverview; QWidget* m_pCornerWidget; TotalDiffStatus m_totalDiffStatus; SourceData m_sd1; SourceData m_sd2; SourceData m_sd3; QString m_outputFilename; bool m_bDefaultFilename; DiffList m_diffList12; DiffList m_diffList23; DiffList m_diffList13; DiffBufferInfo m_diffBufferInfo; Diff3LineList m_diff3LineList; Diff3LineVector m_diff3LineVector; //ManualDiffHelpDialog* m_pManualDiffHelpDialog; ManualDiffHelpList m_manualDiffHelpList; int m_neededLines; int m_DTWHeight; bool m_bOutputModified; bool m_bFileSaved; bool m_bTimerBlock; // Synchronisation OptionDialog* m_pOptionDialog; Options* m_pOptions; FindDialog* m_pFindDialog; void init( bool bAuto=false, TotalDiffStatus* pTotalDiffStatus=0, bool bLoadFiles=true, bool bUseCurrentEncoding = false); virtual bool eventFilter( QObject* o, QEvent* e ); virtual void resizeEvent(QResizeEvent*); bool improveFilenames(bool bCreateNewInstance); bool canContinue(); void choose(int choice); KActionCollection* actionCollection(); KStatusBar* statusBar(); KToolBar* toolBar(const char*); KDiff3Part* m_pKDiff3Part; KParts::MainWindow* m_pKDiff3Shell; bool m_bAutoFlag; bool m_bAutoMode; void recalcWordWrap(int nofVisibleColumns=-1); void setHScrollBarRange(); int m_iCumulativeWheelDelta; public slots: void resizeDiffTextWindow(int newWidth, int newHeight); void resizeMergeResultWindow(); void slotRecalcWordWrap(); void showPopupMenu( const QPoint& point ); void scrollDiffTextWindow( int deltaX, int deltaY ); void scrollMergeResultWindow( int deltaX, int deltaY ); void setDiff3Line( int line ); void sourceMask( int srcMask, int enabledMask ); void slotDirShowBoth(); void slotDirViewToggle(); void slotUpdateAvailabilities(); void slotEditSelectAll(); void slotEditFind(); void slotEditFindNext(); void slotGoCurrent(); void slotGoTop(); void slotGoBottom(); void slotGoPrevUnsolvedConflict(); void slotGoNextUnsolvedConflict(); void slotGoPrevConflict(); void slotGoNextConflict(); void slotGoPrevDelta(); void slotGoNextDelta(); void slotChooseA(); void slotChooseB(); void slotChooseC(); void slotAutoSolve(); void slotUnsolve(); void slotMergeHistory(); void slotRegExpAutoMerge(); void slotChooseAEverywhere(); void slotChooseBEverywhere(); void slotChooseCEverywhere(); void slotChooseAForUnsolvedConflicts(); void slotChooseBForUnsolvedConflicts(); void slotChooseCForUnsolvedConflicts(); void slotChooseAForUnsolvedWhiteSpaceConflicts(); void slotChooseBForUnsolvedWhiteSpaceConflicts(); void slotChooseCForUnsolvedWhiteSpaceConflicts(); void slotConfigure(); void slotConfigureKeys(); void slotRefresh(); void slotSelectionEnd(); void slotSelectionStart(); void slotClipboardChanged(); void slotOutputModified(bool); void slotAfterFirstPaint(); void slotMergeCurrentFile(); void slotReload(); void slotCheckIfCanContinue( bool* pbContinue ); void slotShowWhiteSpaceToggled(); void slotShowLineNumbersToggled(); void slotAutoAdvanceToggled(); void slotWordWrapToggled(); void slotShowWindowAToggled(); void slotShowWindowBToggled(); void slotShowWindowCToggled(); void slotWinFocusNext(); void slotWinFocusPrev(); void slotWinToggleSplitterOrientation(); void slotOverviewNormal(); void slotOverviewAB(); void slotOverviewAC(); void slotOverviewBC(); void slotSplitDiff(); void slotJoinDiffs(); void slotAddManualDiffHelp(); void slotClearManualDiffHelpList(); void slotNoRelevantChangesDetected(); void slotEncodingChangedA(QTextCodec*); void slotEncodingChangedB(QTextCodec*); void slotEncodingChangedC(QTextCodec*); }; #endif // KDIFF3_H kdiff3-0.9.97/src-QT4/difftextwindow.h0000644000175100001440000001231312000244602016721 0ustar joachimusers/*************************************************************************** difftextwindow.h - description ------------------- begin : Mon Mar 18 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef DIFFTEXTWINDOW_H #define DIFFTEXTWINDOW_H #include "diff.h" #include class QMenu; class QStatusBar; class Options; class DiffTextWindowData; class DiffTextWindowFrame; class EncodingLabel; class DiffTextWindow : public QWidget { Q_OBJECT public: DiffTextWindow( DiffTextWindowFrame* pParent, QStatusBar* pStatusBar, Options* pOptions, int winIdx ); ~DiffTextWindow(); void init( const QString& fileName, QTextCodec* pCodec, e_LineEndStyle eLineEndStyle, const LineData* pLineData, int size, const Diff3LineVector* pDiff3LineVector, const ManualDiffHelpList* pManualDiffHelpList, bool bTriple ); void reset(); void convertToLinePos( int x, int y, int& line, int& pos ); QString getSelection(); int getFirstLine(); int calcTopLineInFile( int firstLine ); int getNofColumns(); int getNofLines(); int getNofVisibleLines(); int getNofVisibleColumns(); int convertLineToDiff3LineIdx( int line ); int convertDiff3LineIdxToLine( int d3lIdx ); void convertD3LCoordsToLineCoords( int d3LIdx, int d3LPos, int& line, int& pos ); void convertLineCoordsToD3LCoords( int line, int pos, int& d3LIdx, int& d3LPos ); void convertSelectionToD3LCoords(); bool findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive ); void setSelection( int firstLine, int startPos, int lastLine, int endPos, int& l, int& p ); void getSelectionRange( int* firstLine, int* lastLine, e_CoordType coordType ); void setPaintingAllowed( bool bAllowPainting ); void recalcWordWrap( bool bWordWrap, int wrapLineVectorSize, int nofVisibleColumns ); void print( MyPainter& painter, const QRect& r, int firstLine, int nofLinesPerPage ); signals: void resizeSignal( int nofVisibleColumns, int nofVisibleLines ); void scroll( int deltaX, int deltaY ); void newSelection(); void selectionEnd(); void setFastSelectorLine( int line ); void gotFocus(); void lineClicked( int winIdx, int line ); public slots: void setFirstLine( int line ); void setFirstColumn( int col ); void resetSelection(); void setFastSelectorRange( int line1, int nofLines ); protected: virtual void mousePressEvent ( QMouseEvent * ); virtual void mouseReleaseEvent ( QMouseEvent * ); virtual void mouseMoveEvent ( QMouseEvent * ); virtual void mouseDoubleClickEvent ( QMouseEvent * e ); virtual void paintEvent( QPaintEvent* ); virtual void dragEnterEvent( QDragEnterEvent* e ); virtual void focusInEvent( QFocusEvent* e ); virtual void resizeEvent( QResizeEvent* ); virtual void timerEvent(QTimerEvent*); private: DiffTextWindowData* d; void showStatusLine( int line ); friend class DiffTextWindowFrame; }; class DiffTextWindowFrameData; class DiffTextWindowFrame : public QWidget { Q_OBJECT public: DiffTextWindowFrame( QWidget* pParent, QStatusBar* pStatusBar, Options* pOptions, int winIdx, SourceData* psd); ~DiffTextWindowFrame(); DiffTextWindow* getDiffTextWindow(); void init(); void setFirstLine(int firstLine); void sendEncodingChangedSignal(QTextCodec* c); signals: void fileNameChanged(const QString&, int); void encodingChanged(QTextCodec*); protected: bool eventFilter( QObject*, QEvent* ); //void paintEvent(QPaintEvent*); private slots: void slotReturnPressed(); void slotBrowseButtonClicked(); private: DiffTextWindowFrameData* d; }; class EncodingLabel : public QLabel { Q_OBJECT public: EncodingLabel( const QString & text, DiffTextWindowFrame* pDiffTextWindowFrame, SourceData* psd, Options* pOptions); protected: void mouseMoveEvent(QMouseEvent *ev); void mousePressEvent(QMouseEvent *ev); private slots: void slotEncodingChanged(); private: DiffTextWindowFrame* m_pDiffTextWindowFrame; //To send "EncodingChanged" signal QMenu* m_pContextEncodingMenu; SourceData* m_pSourceData; //SourceData to get access to "isEmpty()" and "isFromBuffer()" functions static const int m_maxRecentEncodings = 5; Options* m_pOptions; void insertCodec( const QString& visibleCodecName, QTextCodec* pCodec, QList &CodecEnumList, QMenu* pMenu, int currentTextCodecEnum); }; #endif kdiff3-0.9.97/src-QT4/common.cpp0000644000175100001440000002316211626145614015523 0ustar joachimusers/*************************************************************************** * Copyright (C) 2004-2007 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #include "common.h" #include #include #include #include #include #include #include ValueMap::ValueMap() { } ValueMap::~ValueMap() { } void ValueMap::save( QTextStream& ts ) { std::map::iterator i; for( i=m_map.begin(); i!=m_map.end(); ++i) { QString key = i->first; QString val = i->second; ts << key << "=" << val << "\n"; } } QString ValueMap::getAsString() { QString result; std::map::iterator i; for( i=m_map.begin(); i!=m_map.end(); ++i) { QString key = i->first; QString val = i->second; result += key + "=" + val + "\n"; } return result; } void ValueMap::load( QTextStream& ts ) { while ( !ts.atEnd() ) { // until end of file... QString s = ts.readLine(); // line of text excluding '\n' int pos = s.indexOf('='); if( pos > 0 ) // seems not to have a tag { QString key = s.left(pos); QString val = s.mid(pos+1); m_map[key] = val; } } } /* void ValueMap::load( const QString& s ) { int pos=0; while ( pos<(int)s.length() ) { // until end of file... int pos2 = s.find('=', pos); int pos3 = s.find('\n', pos2 ); if (pos3<0) pos3=s.length(); if( pos2 > 0 ) // seems not to have a tag { QString key = s.mid(pos, pos2-pos); QString val = s.mid(pos2+1, pos3-pos2-1); m_map[key] = val; } pos = pos3; } } */ // safeStringJoin and safeStringSplit allow to convert a stringlist into a string and back // safely, even if the individual strings in the list contain the separator character. QString safeStringJoin(const QStringList& sl, char sepChar, char metaChar ) { // Join the strings in the list, using the separator ',' // If a string contains the separator character, it will be replaced with "\,". // Any occurances of "\" (one backslash) will be replaced with "\\" (2 backslashes) assert(sepChar!=metaChar); QString sep; sep += sepChar; QString meta; meta += metaChar; QString safeString; QStringList::const_iterator i; for (i=sl.begin(); i!=sl.end(); ++i) { QString s = *i; s.replace(meta, meta+meta); // "\" -> "\\" s.replace(sep, meta+sep); // "," -> "\," if ( i==sl.begin() ) safeString = s; else safeString += sep + s; } return safeString; } // Split a string that was joined with safeStringJoin QStringList safeStringSplit(const QString& s, char sepChar, char metaChar ) { assert(sepChar!=metaChar); QStringList sl; // Miniparser int i=0; int len=s.length(); QString b; for(i=0;i0 ) { pos = s.indexOf( sep, pos ); --idx; if (pos<0) break; ++pos; } if ( pos>=0 ) { int pos2 = s.indexOf( sep, pos ); if ( pos2>0 ) return s.mid(pos, pos2-pos); else return s.mid(pos); } return ""; } static int num( QString& s, int idx ) { return subSection( s, idx, ',').toInt(); } void ValueMap::writeEntry(const QString& k, const QFont& v ) { m_map[k] = v.family() + "," + QString::number(v.pointSize()) + "," + (v.bold() ? "bold" : "normal"); } void ValueMap::writeEntry(const QString& k, const QColor& v ) { m_map[k] = numStr(v.red()) + "," + numStr(v.green()) + "," + numStr(v.blue()); } void ValueMap::writeEntry(const QString& k, const QSize& v ) { m_map[k] = numStr(v.width()) + "," + numStr(v.height()); } void ValueMap::writeEntry(const QString& k, const QPoint& v ) { m_map[k] = numStr(v.x()) + "," + numStr(v.y()); } void ValueMap::writeEntry(const QString& k, int v ) { m_map[k] = numStr(v); } void ValueMap::writeEntry(const QString& k, bool v ) { m_map[k] = numStr(v); } void ValueMap::writeEntry(const QString& k, const QString& v ) { m_map[k] = v; } void ValueMap::writeEntry(const QString& k, const char* v ) { m_map[k] = v; } void ValueMap::writeEntry(const QString& k, const QStringList& v, char separator ) { m_map[k] = safeStringJoin(v, separator); } QFont ValueMap::readFontEntry(const QString& k, const QFont* defaultVal ) { QFont f = *defaultVal; std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { f.setFamily( subSection( i->second, 0, ',' ) ); f.setPointSize( subSection( i->second, 1, ',' ).toInt() ); f.setBold( subSection( i->second, 2, ',' )=="bold" ); //f.fromString(i->second); } return f; } QColor ValueMap::readColorEntry(const QString& k, const QColor* defaultVal ) { QColor c= *defaultVal; std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { QString s = i->second; c = QColor( num(s,0),num(s,1),num(s,2) ); } return c; } QSize ValueMap::readSizeEntry(const QString& k, const QSize* defaultVal ) { QSize size = defaultVal ? *defaultVal : QSize(600,400); std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { QString s = i->second; size = QSize( num(s,0),num(s,1) ); } return size; } QPoint ValueMap::readPointEntry(const QString& k, const QPoint* defaultVal) { QPoint point = defaultVal ? *defaultVal : QPoint(0,0); std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { QString s = i->second; point = QPoint( num(s,0),num(s,1) ); } return point; } bool ValueMap::readBoolEntry(const QString& k, bool bDefault ) { bool b = bDefault; std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { QString s = i->second; b = (bool)num(s,0); } return b; } int ValueMap::readNumEntry(const QString& k, int iDefault ) { int ival = iDefault; std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { QString s = i->second; ival = num(s,0); } return ival; } QString ValueMap::readStringEntry(const QString& k, const QString& sDefault ) { QString sval = sDefault; std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { sval = i->second; } return sval; } QStringList ValueMap::readListEntry(const QString& k, const QStringList& defaultVal, char separator ) { QStringList strList; std::map::iterator i = m_map.find( k ); if ( i!=m_map.end() ) { strList = safeStringSplit( i->second, separator ); return strList; } else return defaultVal; } QString ValueMap::readEntry (const QString& s, const QString& defaultVal ) { return readStringEntry(s, defaultVal); } QString ValueMap::readEntry (const QString& s, const char* defaultVal ) { return readStringEntry(s, QString::fromLatin1(defaultVal) ); } QFont ValueMap::readEntry (const QString& s, const QFont& defaultVal ){ return readFontEntry(s,&defaultVal); } QColor ValueMap::readEntry(const QString& s, const QColor defaultVal ){ return readColorEntry(s,&defaultVal); } QSize ValueMap::readEntry (const QString& s, const QSize defaultVal ){ return readSizeEntry(s,&defaultVal); } QPoint ValueMap::readEntry(const QString& s, const QPoint defaultVal ){ return readPointEntry(s,&defaultVal); } bool ValueMap::readEntry (const QString& s, bool bDefault ){ return readBoolEntry(s,bDefault); } int ValueMap::readEntry (const QString& s, int iDefault ){ return readNumEntry(s,iDefault); } QStringList ValueMap::readEntry (const QString& s, const QStringList& defaultVal, char separator ){ return readListEntry(s,defaultVal,separator); } kdiff3-0.9.97/src-QT4/kdiff3.cpp0000644000175100001440000012471512000244602015367 0ustar joachimusers/*************************************************************************** kdiff3.cpp - description ------------------- begin : Don Jul 11 12:31:29 CEST 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "difftextwindow.h" #include "mergeresultwindow.h" #include // include files for QT #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // include files for KDE #include #include #include #include #include #include #include #include #include //#include #include #include #include #include #include // application specific includes #include "kdiff3.h" #include "optiondialog.h" #include "fileaccess.h" #include "progress.h" #include "kdiff3_part.h" #include "directorymergewindow.h" #include "smalldialogs.h" #include "guiutils.h" // namespace KDiff3 #define ID_STATUS_MSG 1 #define MAIN_TOOLBAR_NAME "mainToolBar" KActionCollection* KDiff3App::actionCollection() { if ( m_pKDiff3Shell==0 ) return m_pKDiff3Part->actionCollection(); else return m_pKDiff3Shell->actionCollection(); } KStatusBar* KDiff3App::statusBar() { if ( m_pKDiff3Shell==0 ) return 0; else return m_pKDiff3Shell->statusBar(); } KToolBar* KDiff3App::toolBar(const char* toolBarId ) { if ( m_pKDiff3Shell==0 ) return 0; else return m_pKDiff3Shell->toolBar( toolBarId ); //return m_pKDiff3Shell->toolBar(); } bool KDiff3App::isPart() { return m_pKDiff3Shell==0; } bool KDiff3App::isFileSaved() { return m_bFileSaved; } bool KDiff3App::isDirComparison() { return m_bDirCompare; } KDiff3App::KDiff3App(QWidget* pParent, const char* /*name*/, KDiff3Part* pKDiff3Part ) : QSplitter(pParent) //previously KMainWindow { setObjectName( "KDiff3App" ); m_pKDiff3Part = pKDiff3Part; m_pKDiff3Shell = qobject_cast(pParent); setWindowTitle( "KDiff3" ); setOpaqueResize(false); // faster resizing setUpdatesEnabled(false); m_pMainSplitter = 0; m_pDirectoryMergeSplitter = 0; m_pDirectoryMergeWindow = 0; m_pCornerWidget = 0; m_pMainWidget = 0; m_pDiffTextWindow1 = 0; m_pDiffTextWindow2 = 0; m_pDiffTextWindow3 = 0; m_pDiffTextWindowFrame1 = 0; m_pDiffTextWindowFrame2 = 0; m_pDiffTextWindowFrame3 = 0; m_pDiffWindowSplitter = 0; m_pOverview = 0; m_bTripleDiff = false; m_pMergeResultWindow = 0; m_pMergeWindowFrame = 0; m_bOutputModified = false; m_bFileSaved = false; m_bTimerBlock = false; m_pHScrollBar = 0; m_pDiffVScrollBar = 0; m_pMergeVScrollBar = 0; viewToolBar = 0; // Needed before any file operations via FileAccess happen. if (!g_pProgressDialog) { g_pProgressDialog = new ProgressDialog(0); g_pProgressDialog->setStayHidden( true ); } // All default values must be set before calling readOptions(). m_pOptionDialog = new OptionDialog( m_pKDiff3Shell!=0, this ); connect( m_pOptionDialog, SIGNAL(applyDone()), this, SLOT(slotRefresh()) ); // This is just a convenience variable to make code that accesses options more readable m_pOptions = &m_pOptionDialog->m_options; m_pOptionDialog->readOptions( isPart() ? m_pKDiff3Part->componentData().config() : KGlobal::config() ); // Option handling: Only when pParent==0 (no parent) KCmdLineArgs *args = isPart() ? 0 : KCmdLineArgs::parsedArgs(); if (args) { QString s; QString title; if ( args->isSet("confighelp") ) { s = m_pOptionDialog->calcOptionHelp(); title = i18n("Current Configuration:"); } else { s = m_pOptionDialog->parseOptions( args->getOptionList("cs") ); title = i18n("Config Option Error:"); } if (!s.isEmpty()) { #if defined(_WIN32) || defined(Q_OS_OS2) // A windows program has no console //KMessageBox::information(0, s,i18n("KDiff3-Usage")); QDialog* pDialog = new QDialog(this); pDialog->setAttribute( Qt::WA_DeleteOnClose ); pDialog->setModal( true ); pDialog->setWindowTitle(title); QVBoxLayout* pVBoxLayout = new QVBoxLayout( pDialog ); QTextEdit* pTextEdit = new QTextEdit(pDialog); pTextEdit->setText(s); pTextEdit->setReadOnly(true); pTextEdit->setWordWrapMode(QTextOption::NoWrap); pVBoxLayout->addWidget(pTextEdit); pDialog->resize(600,400); pDialog->exec(); #else fprintf(stderr, "%s\n", title.toLatin1().constData()); fprintf(stderr, "%s\n", s.toLatin1().constData()); #endif exit(1); } } m_sd1.setOptions(m_pOptions); m_sd2.setOptions(m_pOptions); m_sd3.setOptions(m_pOptions); if (args!=0) { m_outputFilename = args->getOption("output"); if ( m_outputFilename.isEmpty() ) m_outputFilename = args->getOption("out"); } m_bAutoFlag = args!=0 && args->isSet("auto"); m_bAutoMode = m_bAutoFlag || m_pOptions->m_bAutoSaveAndQuitOnMergeWithoutConflicts; if ( m_bAutoMode && m_outputFilename.isEmpty() ) { if ( m_bAutoFlag ) { //KMessageBox::information(this, i18n("Option --auto used, but no output file specified.")); fprintf(stderr, "%s\n", (const char*)i18n("Option --auto used, but no output file specified.").toLatin1()); } m_bAutoMode = false; } g_pProgressDialog->setStayHidden( m_bAutoMode ); if ( m_outputFilename.isEmpty() && args!=0 && args->isSet("merge") ) { m_outputFilename = "unnamed.txt"; m_bDefaultFilename = true; } else m_bDefaultFilename = false; g_bAutoSolve = args!=0 && !args->isSet("qall"); // Note that this is effective only once. if ( args!=0 ) { m_sd1.setFilename( args->getOption("base") ); if ( m_sd1.isEmpty() ) { if ( args->count() > 0 ) m_sd1.setFilename( args->url(0).url() ); // args->arg(0) if ( args->count() > 1 ) m_sd2.setFilename( args->url(1).url() ); if ( args->count() > 2 ) m_sd3.setFilename( args->url(2).url() ); } else { if ( args->count() > 0 ) m_sd2.setFilename( args->url(0).url() ); if ( args->count() > 1 ) m_sd3.setFilename( args->url(1).url() ); } QStringList aliasList = args->getOptionList("fname"); QStringList::Iterator ali = aliasList.begin(); QString an1 = args->getOption("L1"); if ( !an1.isEmpty() ) { m_sd1.setAliasName(an1); } else if ( ali != aliasList.end() ) { m_sd1.setAliasName(*ali); ++ali; } QString an2 = args->getOption("L2"); if ( !an2.isEmpty() ) { m_sd2.setAliasName(an2); } else if ( ali != aliasList.end() ) { m_sd2.setAliasName(*ali); ++ali; } QString an3 = args->getOption("L3"); if ( !an3.isEmpty() ) { m_sd3.setAliasName(an3); } else if ( ali != aliasList.end() ) { m_sd3.setAliasName(*ali); ++ali; } } /////////////////////////////////////////////////////////////////// // call inits to invoke all other construction parts initActions(actionCollection()); initStatusBar(); m_pFindDialog = new FindDialog( this ); connect( m_pFindDialog, SIGNAL(findNext()), this, SLOT(slotEditFindNext())); autoAdvance->setChecked( m_pOptions->m_bAutoAdvance ); showWhiteSpaceCharacters->setChecked( m_pOptions->m_bShowWhiteSpaceCharacters ); showWhiteSpace->setChecked( m_pOptions->m_bShowWhiteSpace ); showWhiteSpaceCharacters->setEnabled( m_pOptions->m_bShowWhiteSpace ); showLineNumbers->setChecked( m_pOptions->m_bShowLineNumbers ); wordWrap->setChecked( m_pOptions->m_bWordWrap ); if ( ! isPart() ) { // TODO // viewToolBar->setChecked( m_pOptions->m_bShowToolBar ); // slotViewToolBar(); viewStatusBar->setChecked( m_pOptions->m_bShowStatusBar ); slotViewStatusBar(); /* vrusu - commented out as new KToolBar does not hase setParPos TODO figure out how to restore bar position if( toolBar(MAIN_TOOLBAR_NAME)!=0 ) toolBar(MAIN_TOOLBAR_NAME)->setBarPos( (KToolBar::BarPosition) m_pOptions->m_toolBarPos );*/ /* QSize size = m_pOptions->m_geometry; QPoint pos = m_pOptions->m_position; if(!size.isEmpty()) { m_pKDiff3Shell->resize( size ); QRect visibleRect = QRect( pos, size ) & QApplication::desktop()->rect(); if ( visibleRect.width()>100 && visibleRect.height()>100 ) m_pKDiff3Shell->move( pos ); }*/ } slotRefresh(); m_pMainSplitter = this; //new QSplitter(this); m_pMainSplitter->setOrientation( Qt::Vertical ); // setCentralWidget( m_pMainSplitter ); m_pDirectoryMergeSplitter = new QSplitter( m_pMainSplitter ); m_pDirectoryMergeSplitter->setObjectName("DirectoryMergeSplitter"); m_pMainSplitter->addWidget( m_pDirectoryMergeSplitter ); m_pDirectoryMergeSplitter->setOrientation( Qt::Horizontal ); m_pDirectoryMergeWindow = new DirectoryMergeWindow( m_pDirectoryMergeSplitter, m_pOptions, KIconLoader::global() ); m_pDirectoryMergeSplitter->addWidget(m_pDirectoryMergeWindow); m_pDirectoryMergeInfo = new DirectoryMergeInfo( m_pDirectoryMergeSplitter ); m_pDirectoryMergeWindow->setDirectoryMergeInfo( m_pDirectoryMergeInfo ); m_pDirectoryMergeSplitter->addWidget(m_pDirectoryMergeInfo); connect( m_pDirectoryMergeWindow, SIGNAL(startDiffMerge(QString,QString,QString,QString,QString,QString,QString,TotalDiffStatus*)), this, SLOT( slotFileOpen2(QString,QString,QString,QString,QString,QString,QString,TotalDiffStatus*))); connect( m_pDirectoryMergeWindow->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&,const QItemSelection&)), this, SLOT(slotUpdateAvailabilities())); connect( m_pDirectoryMergeWindow->selectionModel(), SIGNAL(currentChanged(const QModelIndex&,const QModelIndex&)), this, SLOT(slotUpdateAvailabilities())); connect( m_pDirectoryMergeWindow, SIGNAL(checkIfCanContinue(bool*)), this, SLOT(slotCheckIfCanContinue(bool*))); connect( m_pDirectoryMergeWindow, SIGNAL(updateAvailabilities()), this, SLOT(slotUpdateAvailabilities())); connect( m_pDirectoryMergeWindow, SIGNAL(statusBarMessage(const QString&)), this, SLOT(slotStatusMsg(const QString&))); m_pDirectoryMergeWindow->initDirectoryMergeActions( this, actionCollection() ); if ( args!=0 ) args->clear(); // Free up some memory. if (m_pKDiff3Shell==0) { completeInit(); } } void KDiff3App::completeInit( const QString& fn1, const QString& fn2, const QString& fn3 ) { if (m_pKDiff3Shell!=0) { QSize size=m_pOptions->m_geometry; QPoint pos=m_pOptions->m_position; if(!size.isEmpty()) { m_pKDiff3Shell->resize( size ); QRect visibleRect = QRect( pos, size ) & QApplication::desktop()->rect(); if ( visibleRect.width()>100 && visibleRect.height()>100 ) m_pKDiff3Shell->move( pos ); if (!m_bAutoMode) { if ( m_pOptions->m_bMaximised ) m_pKDiff3Shell->showMaximized(); else m_pKDiff3Shell->show(); } } } if ( ! fn1.isEmpty() ) { m_sd1.setFilename(fn1); } if ( ! fn2.isEmpty() ) { m_sd2.setFilename(fn2); } if ( ! fn3.isEmpty() ) { m_sd3.setFilename(fn3); } bool bSuccess = improveFilenames(false); if ( m_bAutoFlag && m_bAutoMode && m_bDirCompare ) { fprintf(stderr, "%s\n", (const char*)i18n("Option --auto ignored for directory comparison.").toLatin1()); m_bAutoMode = false; } if (!m_bDirCompare) { m_pDirectoryMergeSplitter->hide(); init( m_bAutoMode ); if ( m_bAutoMode ) { SourceData* pSD=0; if ( m_sd3.isEmpty() ) { if ( m_totalDiffStatus.bBinaryAEqB ){ pSD = &m_sd1; } } else { if ( m_totalDiffStatus.bBinaryBEqC ){ pSD = &m_sd3; } // B==C (assume A is old) else if ( m_totalDiffStatus.bBinaryAEqB ){ pSD = &m_sd3; } // assuming C has changed else if ( m_totalDiffStatus.bBinaryAEqC ){ pSD = &m_sd2; } // assuming B has changed } if ( pSD!=0 ) { // Save this file directly, not via the merge result window. bool bSuccess = false; FileAccess fa( m_outputFilename ); if ( m_pOptions->m_bDmCreateBakFiles && fa.exists() ) { QString newName = m_outputFilename + ".orig"; if ( FileAccess::exists( newName ) ) FileAccess::removeFile( newName ); if ( !FileAccess::exists( newName ) ) fa.rename( newName ); } bSuccess = pSD->saveNormalDataAs( m_outputFilename ); if ( bSuccess ) ::exit(0); else KMessageBox::error( this, i18n("Saving failed.") ); } else if ( m_pMergeResultWindow->getNrOfUnsolvedConflicts() == 0 ) { bool bSuccess = m_pMergeResultWindow->saveDocument( m_pMergeResultWindowTitle->getFileName(), m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle() ); if ( bSuccess ) ::exit(0); } } } m_bAutoMode = false; if (m_pKDiff3Shell) { if ( m_pOptions->m_bMaximised ) m_pKDiff3Shell->showMaximized(); else m_pKDiff3Shell->show(); } g_pProgressDialog->setStayHidden( false ); if (statusBar() !=0 ) statusBar()->setSizeGripEnabled(true); slotClipboardChanged(); // For initialisation. slotUpdateAvailabilities(); if ( ! m_bDirCompare && m_pKDiff3Shell!=0 ) { bool bFileOpenError = false; if ( (! m_sd1.isEmpty() && !m_sd1.hasData()) || (! m_sd2.isEmpty() && !m_sd2.hasData()) || (! m_sd3.isEmpty() && !m_sd3.hasData()) ) { QString text( i18n("Opening of these files failed:") ); text += "\n\n"; if ( ! m_sd1.isEmpty() && !m_sd1.hasData() ) text += " - " + m_sd1.getAliasName() + "\n"; if ( ! m_sd2.isEmpty() && !m_sd2.hasData() ) text += " - " + m_sd2.getAliasName() + "\n"; if ( ! m_sd3.isEmpty() && !m_sd3.hasData() ) text += " - " + m_sd3.getAliasName() + "\n"; KMessageBox::sorry( this, text, i18n("File Open Error") ); bFileOpenError = true; } if ( m_sd1.isEmpty() || m_sd2.isEmpty() || bFileOpenError ) slotFileOpen(); } else if ( !bSuccess ) // Directory open failed { slotFileOpen(); } } KDiff3App::~KDiff3App() { } /** * Helper function used to create actions into the ac collection */ void KDiff3App::initActions( KActionCollection* ac ) { if (ac==0) KMessageBox::error(0, "actionCollection==0"); fileOpen = KStandardAction::open(this, SLOT(slotFileOpen()), ac); fileOpen->setStatusTip(i18n("Opens documents for comparison...")); fileReload = KDiff3::createAction< KAction >( i18n("Reload"), KShortcut( Qt::Key_F5 ), this, SLOT(slotReload()), ac, "file_reload" ); fileSave = KStandardAction::save(this, SLOT(slotFileSave()), ac); fileSave->setStatusTip(i18n("Saves the merge result. All conflicts must be solved!")); fileSaveAs = KStandardAction::saveAs(this, SLOT(slotFileSaveAs()), ac); fileSaveAs->setStatusTip(i18n("Saves the current document as...")); #ifndef QT_NO_PRINTER filePrint = KStandardAction::print(this, SLOT(slotFilePrint()), ac); filePrint->setStatusTip(i18n("Print the differences")); #endif fileQuit = KStandardAction::quit(this, SLOT(slotFileQuit()), ac); fileQuit->setStatusTip(i18n("Quits the application")); editCut = KStandardAction::cut(this, SLOT(slotEditCut()), ac); editCut->setStatusTip(i18n("Cuts the selected section and puts it to the clipboard")); editCopy = KStandardAction::copy(this, SLOT(slotEditCopy()), ac); editCopy->setStatusTip(i18n("Copies the selected section to the clipboard")); editPaste = KStandardAction::paste(this, SLOT(slotEditPaste()), ac); editPaste->setStatusTip(i18n("Pastes the clipboard contents to current position")); editSelectAll = KStandardAction::selectAll(this, SLOT(slotEditSelectAll()), ac); editSelectAll->setStatusTip(i18n("Select everything in current window")); editFind = KStandardAction::find(this, SLOT(slotEditFind()), ac); editFind->setStatusTip(i18n("Search for a string")); editFindNext = KStandardAction::findNext(this, SLOT(slotEditFindNext()), ac); editFindNext->setStatusTip(i18n("Search again for the string")); /* FIXME figure out how to implement this action viewToolBar = KStandardAction::showToolbar(this, SLOT(slotViewToolBar()), ac); viewToolBar->setStatusTip(i18n("Enables/disables the toolbar")); */ viewStatusBar = KStandardAction::showStatusbar(this, SLOT(slotViewStatusBar()), ac); viewStatusBar->setStatusTip(i18n("Enables/disables the statusbar")); KStandardAction::keyBindings(this, SLOT(slotConfigureKeys()), ac); KAction* pAction = KStandardAction::preferences(this, SLOT(slotConfigure()), ac ); if ( isPart() ) pAction->setText(i18n("Configure KDiff3...")); #include "xpm/downend.xpm" #include "xpm/currentpos.xpm" #include "xpm/down1arrow.xpm" #include "xpm/down2arrow.xpm" #include "xpm/upend.xpm" #include "xpm/up1arrow.xpm" #include "xpm/up2arrow.xpm" #include "xpm/prevunsolved.xpm" #include "xpm/nextunsolved.xpm" #include "xpm/iconA.xpm" #include "xpm/iconB.xpm" #include "xpm/iconC.xpm" #include "xpm/autoadvance.xpm" #include "xpm/showwhitespace.xpm" #include "xpm/showwhitespacechars.xpm" #include "xpm/showlinenumbers.xpm" //#include "reload.xpm" goCurrent = KDiff3::createAction< KAction >( i18n("Go to Current Delta"), QIcon(QPixmap(currentpos)), i18n("Current\nDelta"), KShortcut( Qt::CTRL+Qt::Key_Space ), this, SLOT(slotGoCurrent()), ac, "go_current"); goTop = KDiff3::createAction< KAction >(i18n("Go to First Delta"), QIcon(QPixmap(upend)), i18n("First\nDelta"), this, SLOT(slotGoTop()), ac, "go_top"); goBottom = KDiff3::createAction< KAction >(i18n("Go to Last Delta"), QIcon(QPixmap(downend)), i18n("Last\nDelta"), this, SLOT(slotGoBottom()), ac, "go_bottom"); QString omitsWhitespace = ".\n" + i18n("(Skips white space differences when \"Show White Space\" is disabled.)"); QString includeWhitespace = ".\n" + i18n("(Does not skip white space differences even when \"Show White Space\" is disabled.)"); goPrevDelta = KDiff3::createAction< KAction >(i18n("Go to Previous Delta"), QIcon(QPixmap(up1arrow)), i18n("Prev\nDelta"), KShortcut( Qt::CTRL+Qt::Key_Up), this, SLOT(slotGoPrevDelta()), ac, "go_prev_delta"); goPrevDelta->setToolTip( goPrevDelta->text() + omitsWhitespace ); goNextDelta = KDiff3::createAction< KAction >(i18n("Go to Next Delta"), QIcon(QPixmap(down1arrow)), i18n("Next\nDelta"), KShortcut( Qt::CTRL+Qt::Key_Down ), this, SLOT(slotGoNextDelta()), ac, "go_next_delta"); goNextDelta->setToolTip( goNextDelta->text() + omitsWhitespace ); goPrevConflict = KDiff3::createAction< KAction >(i18n("Go to Previous Conflict"), QIcon(QPixmap(up2arrow)), i18n("Prev\nConflict"), KShortcut( Qt::CTRL+Qt::Key_PageUp ), this, SLOT(slotGoPrevConflict()), ac, "go_prev_conflict"); goPrevConflict->setToolTip( goPrevConflict->text() + omitsWhitespace ); goNextConflict = KDiff3::createAction< KAction >(i18n("Go to Next Conflict"), QIcon(QPixmap(down2arrow)), i18n("Next\nConflict"), KShortcut( Qt::CTRL+Qt::Key_PageDown ), this, SLOT(slotGoNextConflict()), ac, "go_next_conflict"); goNextConflict->setToolTip( goNextConflict->text() + omitsWhitespace ); goPrevUnsolvedConflict = KDiff3::createAction< KAction >(i18n("Go to Previous Unsolved Conflict"), QIcon(QPixmap(prevunsolved)), i18n("Prev\nUnsolved"), this, SLOT(slotGoPrevUnsolvedConflict()), ac, "go_prev_unsolved_conflict"); goPrevUnsolvedConflict->setToolTip( goPrevUnsolvedConflict->text() + includeWhitespace ); goNextUnsolvedConflict = KDiff3::createAction< KAction >(i18n("Go to Next Unsolved Conflict"), QIcon(QPixmap(nextunsolved)), i18n("Next\nUnsolved"), this, SLOT(slotGoNextUnsolvedConflict()), ac, "go_next_unsolved_conflict"); goNextUnsolvedConflict->setToolTip( goNextUnsolvedConflict->text() + includeWhitespace ); chooseA = KDiff3::createAction< KToggleAction >(i18n("Select Line(s) From A"), QIcon(QPixmap(iconA)), i18n("Choose\nA"), KShortcut( Qt::CTRL+Qt::Key_1 ), this, SLOT(slotChooseA()), ac, "merge_choose_a"); chooseB = KDiff3::createAction< KToggleAction >(i18n("Select Line(s) From B"), QIcon(QPixmap(iconB)), i18n("Choose\nB"), KShortcut( Qt::CTRL+Qt::Key_2 ), this, SLOT(slotChooseB()), ac, "merge_choose_b"); chooseC = KDiff3::createAction< KToggleAction >(i18n("Select Line(s) From C"), QIcon(QPixmap(iconC)), i18n("Choose\nC"), KShortcut( Qt::CTRL+Qt::Key_3 ), this, SLOT(slotChooseC()), ac, "merge_choose_c"); autoAdvance = KDiff3::createAction< KToggleAction >(i18n("Automatically Go to Next Unsolved Conflict After Source Selection"), QIcon(QPixmap(autoadvance)), i18n("Auto\nNext"), this, SLOT(slotAutoAdvanceToggled()), ac, "merge_autoadvance"); showWhiteSpaceCharacters = KDiff3::createAction< KToggleAction >(i18n("Show Space && Tabulator Characters for Differences"), QIcon(QPixmap(showwhitespacechars)), i18n("White\nCharacters"), this, SLOT(slotShowWhiteSpaceToggled()), ac, "diff_show_whitespace_characters"); showWhiteSpace = KDiff3::createAction< KToggleAction >(i18n("Show White Space"), QIcon(QPixmap(showwhitespace)), i18n("White\nDeltas"), this, SLOT(slotShowWhiteSpaceToggled()), ac, "diff_show_whitespace"); showLineNumbers = KDiff3::createAction< KToggleAction >(i18n("Show Line Numbers"), QIcon(QPixmap(showlinenumbers)), i18n("Line\nNumbers"), this, SLOT(slotShowLineNumbersToggled()), ac, "diff_showlinenumbers"); chooseAEverywhere = KDiff3::createAction< KAction >(i18n("Choose A Everywhere"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_1 ), this, SLOT(slotChooseAEverywhere()), ac, "merge_choose_a_everywhere"); chooseBEverywhere = KDiff3::createAction< KAction >(i18n("Choose B Everywhere"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_2 ), this, SLOT(slotChooseBEverywhere()), ac, "merge_choose_b_everywhere"); chooseCEverywhere = KDiff3::createAction< KAction >(i18n("Choose C Everywhere"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_3 ), this, SLOT(slotChooseCEverywhere()), ac, "merge_choose_c_everywhere"); chooseAForUnsolvedConflicts = KDiff3::createAction< KAction >(i18n("Choose A for All Unsolved Conflicts"), this, SLOT(slotChooseAForUnsolvedConflicts()), ac, "merge_choose_a_for_unsolved_conflicts"); chooseBForUnsolvedConflicts = KDiff3::createAction< KAction >(i18n("Choose B for All Unsolved Conflicts"), this, SLOT(slotChooseBForUnsolvedConflicts()), ac, "merge_choose_b_for_unsolved_conflicts"); chooseCForUnsolvedConflicts = KDiff3::createAction< KAction >(i18n("Choose C for All Unsolved Conflicts"), this, SLOT(slotChooseCForUnsolvedConflicts()), ac, "merge_choose_c_for_unsolved_conflicts"); chooseAForUnsolvedWhiteSpaceConflicts = KDiff3::createAction< KAction >(i18n("Choose A for All Unsolved Whitespace Conflicts"), this, SLOT(slotChooseAForUnsolvedWhiteSpaceConflicts()), ac, "merge_choose_a_for_unsolved_whitespace_conflicts"); chooseBForUnsolvedWhiteSpaceConflicts = KDiff3::createAction< KAction >(i18n("Choose B for All Unsolved Whitespace Conflicts"), this, SLOT(slotChooseBForUnsolvedWhiteSpaceConflicts()), ac, "merge_choose_b_for_unsolved_whitespace_conflicts"); chooseCForUnsolvedWhiteSpaceConflicts = KDiff3::createAction< KAction >(i18n("Choose C for All Unsolved Whitespace Conflicts"), this, SLOT(slotChooseCForUnsolvedWhiteSpaceConflicts()), ac, "merge_choose_c_for_unsolved_whitespace_conflicts"); autoSolve = KDiff3::createAction< KAction >(i18n("Automatically Solve Simple Conflicts"), this, SLOT(slotAutoSolve()), ac, "merge_autosolve"); unsolve = KDiff3::createAction< KAction >(i18n("Set Deltas to Conflicts"), this, SLOT(slotUnsolve()), ac, "merge_autounsolve"); mergeRegExp = KDiff3::createAction< KAction >(i18n("Run Regular Expression Auto Merge"), this, SLOT(slotRegExpAutoMerge()),ac, "merge_regexp_automerge" ); mergeHistory = KDiff3::createAction< KAction >(i18n("Automatically Solve History Conflicts"), this, SLOT(slotMergeHistory()), ac, "merge_versioncontrol_history" ); splitDiff = KDiff3::createAction< KAction >(i18n("Split Diff At Selection"), this, SLOT(slotSplitDiff()), ac, "merge_splitdiff"); joinDiffs = KDiff3::createAction< KAction >(i18n("Join Selected Diffs"), this, SLOT(slotJoinDiffs()), ac, "merge_joindiffs"); showWindowA = KDiff3::createAction< KToggleAction >(i18n("Show Window A"), this, SLOT(slotShowWindowAToggled()), ac, "win_show_a"); showWindowB = KDiff3::createAction< KToggleAction >(i18n("Show Window B"), this, SLOT(slotShowWindowBToggled()), ac, "win_show_b"); showWindowC = KDiff3::createAction< KToggleAction >(i18n("Show Window C"), this, SLOT(slotShowWindowCToggled()), ac, "win_show_c"); winFocusNext = KDiff3::createAction< KAction >(i18n("Focus Next Window"), KShortcut( Qt::ALT+Qt::Key_Right ), this, SLOT(slotWinFocusNext()), ac, "win_focus_next"); overviewModeNormal = KDiff3::createAction< KToggleAction >(i18n("Normal Overview"), this, SLOT(slotOverviewNormal()), ac, "diff_overview_normal"); overviewModeAB = KDiff3::createAction< KToggleAction >(i18n("A vs. B Overview"), this, SLOT(slotOverviewAB()), ac, "diff_overview_ab"); overviewModeAC = KDiff3::createAction< KToggleAction >(i18n("A vs. C Overview"), this, SLOT(slotOverviewAC()), ac, "diff_overview_ac"); overviewModeBC = KDiff3::createAction< KToggleAction >(i18n("B vs. C Overview"), this, SLOT(slotOverviewBC()), ac, "diff_overview_bc"); wordWrap = KDiff3::createAction< KToggleAction >(i18n("Word Wrap Diff Windows"), this, SLOT(slotWordWrapToggled()), ac, "diff_wordwrap"); addManualDiffHelp = KDiff3::createAction< KAction >(i18n("Add Manual Diff Alignment"), KShortcut( Qt::CTRL+Qt::Key_Y ), this, SLOT(slotAddManualDiffHelp()), ac, "diff_add_manual_diff_help"); clearManualDiffHelpList = KDiff3::createAction< KAction >(i18n("Clear All Manual Diff Alignments"), KShortcut( Qt::CTRL+Qt::SHIFT+Qt::Key_Y ), this, SLOT(slotClearManualDiffHelpList()), ac, "diff_clear_manual_diff_help_list"); #if defined(_WIN32) || defined(Q_OS_OS2) KDiff3::createAction< KAction >(i18n("Focus Next Window"), KShortcut(Qt::CTRL+Qt::Key_Tab), this, SLOT(slotWinFocusNext()), ac, "win_focus_next"); #endif winFocusPrev = KDiff3::createAction< KAction >(i18n("Focus Prev Window"), KShortcut( Qt::ALT+Qt::Key_Left ), this, SLOT(slotWinFocusPrev()), ac, "win_focus_prev"); winToggleSplitOrientation = KDiff3::createAction< KAction >(i18n("Toggle Split Orientation"), this, SLOT(slotWinToggleSplitterOrientation()), ac, "win_toggle_split_orientation"); dirShowBoth = KDiff3::createAction< KToggleAction >(i18n("Dir && Text Split Screen View"), this, SLOT(slotDirShowBoth()), ac, "win_dir_show_both"); dirShowBoth->setChecked( true ); dirViewToggle = KDiff3::createAction< KAction >(i18n("Toggle Between Dir && Text View"), this, SLOT(slotDirViewToggle()), ac, "win_dir_view_toggle"); m_pMergeEditorPopupMenu = new QMenu( this ); /* chooseA->plug( m_pMergeEditorPopupMenu ); chooseB->plug( m_pMergeEditorPopupMenu ); chooseC->plug( m_pMergeEditorPopupMenu );*/ m_pMergeEditorPopupMenu->addAction( chooseA ); m_pMergeEditorPopupMenu->addAction( chooseB ); m_pMergeEditorPopupMenu->addAction( chooseC ); } void KDiff3App::showPopupMenu( const QPoint& point ) { m_pMergeEditorPopupMenu->popup( point ); } void KDiff3App::initStatusBar() { /////////////////////////////////////////////////////////////////// // STATUSBAR if (statusBar() !=0 ) statusBar()->showMessage( i18n("Ready.") ); } void KDiff3App::saveOptions( KSharedConfigPtr config ) { if ( !m_bAutoMode ) { if (!isPart()) { m_pOptions->m_bMaximised = m_pKDiff3Shell->isMaximized(); if( ! m_pKDiff3Shell->isMaximized() && m_pKDiff3Shell->isVisible() ) { m_pOptions->m_geometry = m_pKDiff3Shell->size(); m_pOptions->m_position = m_pKDiff3Shell->pos(); } /* TODO change this option as now KToolbar uses QToolbar positioning style if ( toolBar(MAIN_TOOLBAR_NAME)!=0 ) m_pOptionDialog->m_toolBarPos = (int) toolBar(MAIN_TOOLBAR_NAME)->allowedAreas();*/ } m_pOptionDialog->saveOptions( config ); } } bool KDiff3App::queryClose() { saveOptions( isPart() ? m_pKDiff3Part->componentData().config() : KGlobal::config() ); if(m_bOutputModified) { int result = KMessageBox::warningYesNoCancel(this, i18n("The merge result hasn't been saved."), i18n("Warning"), KGuiItem( i18n("Save && Quit") ), KGuiItem( i18n("Quit Without Saving") ) ); if ( result==KMessageBox::Cancel ) return false; else if ( result==KMessageBox::Yes ) { slotFileSave(); if ( m_bOutputModified ) { KMessageBox::sorry(this, i18n("Saving the merge result failed."), i18n("Warning") ); return false; } } } m_bOutputModified = false; if ( m_pDirectoryMergeWindow->isDirectoryMergeInProgress() ) { int result = KMessageBox::warningYesNo(this, i18n("You are currently doing a directory merge. Are you sure, you want to abort?"), i18n("Warning"), KStandardGuiItem::quit(), KStandardGuiItem::cont() /* i18n("Continue Merging") */ ); if ( result!=KMessageBox::Yes ) return false; } return true; } ///////////////////////////////////////////////////////////////////// // SLOT IMPLEMENTATION ///////////////////////////////////////////////////////////////////// void KDiff3App::slotFileSave() { if ( m_bDefaultFilename ) { slotFileSaveAs(); } else { slotStatusMsg(i18n("Saving file...")); bool bSuccess = m_pMergeResultWindow->saveDocument( m_outputFilename, m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle() ); if ( bSuccess ) { m_bFileSaved = true; m_bOutputModified = false; if ( m_bDirCompare ) m_pDirectoryMergeWindow->mergeResultSaved( m_outputFilename ); } slotStatusMsg(i18n("Ready.")); } } void KDiff3App::slotFileSaveAs() { slotStatusMsg(i18n("Saving file with a new filename...")); QString s = KFileDialog::getSaveUrl( QDir::currentPath(), 0, this, i18n("Save As...") ).url(); if(!s.isEmpty()) { m_outputFilename = s; m_pMergeResultWindowTitle->setFileName( m_outputFilename ); bool bSuccess = m_pMergeResultWindow->saveDocument( m_outputFilename, m_pMergeResultWindowTitle->getEncoding(), m_pMergeResultWindowTitle->getLineEndStyle() ); if ( bSuccess ) { m_bOutputModified = false; if ( m_bDirCompare ) m_pDirectoryMergeWindow->mergeResultSaved( m_outputFilename ); } //setCaption(url.fileName(),doc->isModified()); m_bDefaultFilename = false; } slotStatusMsg(i18n("Ready.")); } void printDiffTextWindow( MyPainter& painter, const QRect& view, const QString& headerText, DiffTextWindow* pDiffTextWindow, int line, int linesPerPage, QColor fgColor ) { QRect clipRect = view; clipRect.setTop(0); painter.setClipRect( clipRect ); painter.translate( view.left() , 0 ); QFontMetrics fm = painter.fontMetrics(); //if ( fm.width(headerText) > view.width() ) { // A simple wrapline algorithm int l=0; for (int p=0; pview.width()) { --i; break; } //QString s2 = s.left(i); painter.drawText( 0, l*fm.height() + fm.ascent(), s.left(i) ); p+=i; ++l; } painter.setPen( fgColor ); painter.drawLine( 0, view.top()-2, view.width(), view.top()-2 ); } painter.translate( 0, view.top() ); pDiffTextWindow->print( painter, view, line, linesPerPage ); painter.resetMatrix(); } void KDiff3App::slotFilePrint() { if ( !m_pDiffTextWindow1 ) return; #ifdef QT_NO_PRINTER slotStatusMsg( i18n( "Printing not implemented." ) ); #endif #ifndef QT_NO_PRINTER QPrinter printer; QPrintDialog printDialog(&printer, this); int firstSelectionD3LIdx = -1; int lastSelectionD3LIdx = -1; if ( m_pDiffTextWindow1 ) { m_pDiffTextWindow1->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); } if ( firstSelectionD3LIdx<0 && m_pDiffTextWindow2 ) { m_pDiffTextWindow2->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); } if ( firstSelectionD3LIdx<0 && m_pDiffTextWindow3 ) { m_pDiffTextWindow3->getSelectionRange(&firstSelectionD3LIdx, &lastSelectionD3LIdx, eD3LLineCoords); } #ifdef KREPLACEMENTS_H // Currently PrintSelection is not supported in KDEs print dialog. if ( firstSelectionD3LIdx>=0 ) { printDialog.addEnabledOption(QPrintDialog::PrintSelection); //printer.setOptionEnabled(QPrinter::PrintSelection,true); printDialog.setPrintRange(QAbstractPrintDialog::Selection); } #endif if ( firstSelectionD3LIdx == -1 ) printDialog.setPrintRange(QAbstractPrintDialog::AllPages); //printDialog.setMinMax(0,0); printDialog.setFromTo(0,0); int currentFirstLine = m_pDiffTextWindow1->getFirstLine(); int currentFirstD3LIdx = m_pDiffTextWindow1->convertLineToDiff3LineIdx( currentFirstLine ); // do some printer initialization printer.setFullPage( false ); // initialize the printer using the print dialog if (printDialog.exec()== QDialog::Accepted) { slotStatusMsg( i18n( "Printing..." ) ); // create a painter to paint on the printer object MyPainter painter( &printer, m_pOptions->m_bRightToLeftLanguage, width(), fontMetrics().width('W') ); QPaintDevice* pPaintDevice = painter.device(); int dpiy = pPaintDevice->logicalDpiY(); int columnDistance = (int) ( (0.5/2.54)*dpiy ); // 0.5 cm between the columns int columns = m_bTripleDiff ? 3 : 2; int columnWidth = ( pPaintDevice->width() - (columns-1)*columnDistance ) / columns; QFont f = m_pOptions->m_font; f.setPointSizeF(f.pointSizeF()-1); // Print with slightly smaller font. painter.setFont( f ); QFontMetrics fm = painter.fontMetrics(); QString topLineText = i18n("Top line"); //int headerWidth = fm.width( m_sd1.getAliasName() + ", "+topLineText+": 01234567" ); int headerLines = fm.width( m_sd1.getAliasName() + ", "+topLineText+": 01234567" )/columnWidth+1; int headerMargin = headerLines * fm.height() + 3; // Text + one horizontal line int footerMargin = fm.height() + 3; QRect view ( 0, headerMargin, pPaintDevice->width(), pPaintDevice->height() - (headerMargin + footerMargin) ); QRect view1( 0*(columnWidth + columnDistance), view.top(), columnWidth, view.height() ); QRect view2( 1*(columnWidth + columnDistance), view.top(), columnWidth, view.height() ); QRect view3( 2*(columnWidth + columnDistance), view.top(), columnWidth, view.height() ); int linesPerPage = view.height() / fm.height(); int charactersPerLine = columnWidth / fm.width("W"); if ( m_pOptions->m_bWordWrap ) { // For printing the lines are wrapped differently (this invalidates the first line) recalcWordWrap( charactersPerLine ); } int totalNofLines = max2(m_pDiffTextWindow1->getNofLines(), m_pDiffTextWindow2->getNofLines()); if ( m_bTripleDiff && m_pDiffTextWindow3) totalNofLines = max2(totalNofLines, m_pDiffTextWindow3->getNofLines()); QList pageList;// = printer.pageList(); bool bPrintCurrentPage=false; bool bFirstPrintedPage = false; bool bPrintSelection = false; int totalNofPages = (totalNofLines+linesPerPage-1) / linesPerPage; int line=-1; int selectionEndLine = -1; #ifdef KREPLACEMENTS_H if ( printer.printRange()==QPrinter::AllPages ) { pageList.clear(); for(int i=0; i=0 ) { line = m_pDiffTextWindow1->convertDiff3LineIdxToLine( firstSelectionD3LIdx ); selectionEndLine = m_pDiffTextWindow1->convertDiff3LineIdxToLine( lastSelectionD3LIdx+1 ); totalNofPages = (selectionEndLine-line+linesPerPage-1) / linesPerPage; } } int page = 1; QList::iterator pageListIt = pageList.begin(); for(;;) { if (!bPrintSelection) { if (pageListIt==pageList.end()) break; page = *pageListIt; line = (page - 1) * linesPerPage; if (page==10000) // This means "Print the current page" { bPrintCurrentPage=true; // Detect the first visible line in the window. line = m_pDiffTextWindow1->convertDiff3LineIdxToLine( currentFirstD3LIdx ); } } else { if ( line>=selectionEndLine ) { break; } else { if ( selectionEndLine-line < linesPerPage ) linesPerPage=selectionEndLine-line; } } if (line>=0 && linem_colorA ); QString headerText1 = m_sd1.getAliasName() + ", "+topLineText+": " + QString::number(m_pDiffTextWindow1->calcTopLineInFile(line)+1); printDiffTextWindow( painter, view1, headerText1, m_pDiffTextWindow1, line, linesPerPage, m_pOptions->m_fgColor ); painter.setPen( m_pOptions->m_colorB ); QString headerText2 = m_sd2.getAliasName() + ", "+topLineText+": " + QString::number(m_pDiffTextWindow2->calcTopLineInFile(line)+1); printDiffTextWindow( painter, view2, headerText2, m_pDiffTextWindow2, line, linesPerPage, m_pOptions->m_fgColor ); if ( m_bTripleDiff && m_pDiffTextWindow3 ) { painter.setPen( m_pOptions->m_colorC ); QString headerText3 = m_sd3.getAliasName() + ", "+topLineText+": " + QString::number(m_pDiffTextWindow3->calcTopLineInFile(line)+1); printDiffTextWindow( painter, view3, headerText3, m_pDiffTextWindow3, line, linesPerPage, m_pOptions->m_fgColor ); } painter.setClipping(false); painter.setPen( m_pOptions->m_fgColor ); painter.drawLine( 0, view.bottom()+3, view.width(), view.bottom()+3 ); QString s = bPrintCurrentPage ? QString("") : QString::number( page ) + "/" + QString::number(totalNofPages); if ( bPrintSelection ) s+=" (" + i18n("Selection") + ")"; painter.drawText( (view.right() - painter.fontMetrics().width( s ))/2, view.bottom() + painter.fontMetrics().ascent() + 5, s ); bFirstPrintedPage = true; } if ( bPrintSelection ) { line+=linesPerPage; ++page; } else { ++pageListIt; } } painter.end(); if ( m_pOptions->m_bWordWrap ) { recalcWordWrap(); m_pDiffVScrollBar->setValue( m_pDiffTextWindow1->convertDiff3LineIdxToLine( currentFirstD3LIdx ) ); } slotStatusMsg( i18n( "Printing completed." ) ); } else { slotStatusMsg( i18n( "Printing aborted." ) ); } #endif } void KDiff3App::slotFileQuit() { slotStatusMsg(i18n("Exiting...")); if( !queryClose() ) return; // Don't quit KApplication::exit( isFileSaved() || isDirComparison() ? 0 : 1 ); } void KDiff3App::slotViewToolBar() { assert( viewToolBar != 0 ); slotStatusMsg(i18n("Toggling toolbar...")); m_pOptions->m_bShowToolBar = viewToolBar->isChecked(); /////////////////////////////////////////////////////////////////// // turn Toolbar on or off if ( toolBar(MAIN_TOOLBAR_NAME) !=0 ) { if(!m_pOptions->m_bShowToolBar) { toolBar(MAIN_TOOLBAR_NAME)->hide(); } else { toolBar(MAIN_TOOLBAR_NAME)->show(); } } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotViewStatusBar() { slotStatusMsg(i18n("Toggle the statusbar...")); m_pOptions->m_bShowStatusBar = viewStatusBar->isChecked(); /////////////////////////////////////////////////////////////////// //turn Statusbar on or off if (statusBar() !=0 ) { if(!viewStatusBar->isChecked()) { statusBar()->hide(); } else { statusBar()->show(); } } slotStatusMsg(i18n("Ready.")); } void KDiff3App::slotStatusMsg(const QString &text) { /////////////////////////////////////////////////////////////////// // change status message permanently if (statusBar() !=0 ) { statusBar()->clearMessage(); statusBar()->showMessage( text ); } } //#include "kdiff3.moc" kdiff3-0.9.97/src-QT4/kdiff3.lsm0000644000175100001440000000123211626145613015403 0ustar joachimusersBegin3 Title: kdiff3 -- Comparison and Merge of Files and Directories Version: 0.9.89 Entered-date: Description: Tool for comparison and merge of two or three files or directories Keywords: KDE Qt Author: Joachim Eibl Maintained-by: Joachim Eibl Home-page: http://kdiff3.sourceforge.net Alternate-site: http://extragear.kde.org/apps/kdiff3 Primary-site: http://sourceforge.net/project/showfiles.php?group_id=58666 xxxxxx kdiff3-0.9.89.tar.gz xxx kdiff3-0.9.89.lsm Platform: Linux. Needs Qt, runs even better on KDE Copying-policy: GPL End kdiff3-0.9.97/src-QT4/lo16-app-kdiff3.png0000644000175100001440000000026411626145613016735 0ustar joachimusersPNG  IHDRRPLTE@}tRNS@fPIDATxE @! &(dU|'h@A54zIWgfrWO@+,R@ چN[OկIENDB`kdiff3-0.9.97/src-QT4/xpm/0000755000175100001440000000000011626145654014333 5ustar joachimuserskdiff3-0.9.97/src-QT4/xpm/up1arrow.xpm0000644000175100001440000000064211626145614016637 0ustar joachimusers/* XPM */ static const char *up1arrow[]={ "16 16 3 1", ". c None", "# c #000000", "a c #0080ff", "................", "................", "................", "................", "................", ".......##.......", "......#aa#......", ".....#aaaa#.....", "....#aaaaaa#....", "...#aaaaaaaa#...", "..############..", "................", "................", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/reload.xpm0000644000175100001440000000226111626145614016324 0ustar joachimusers/* XPM */ static const char *reloadIcon[]={ "16 16 55 1", ". c None", "e c #25502a", "# c #25512b", "d c #25522b", "g c #26552c", "c c #27562e", "n c #27582f", "b c #28592e", "M c #285930", "a c #295a2f", "q c #295a30", "G c #295c31", "t c #2a5e31", "y c #2b6635", "U c #2b6636", "Q c #2f703a", "H c #327b3d", "0 c #36843f", "W c #388943", "u c #3f7046", "r c #42764a", "f c #44754b", "A c #488653", "N c #50995b", "K c #529d5f", "J c #529f60", "m c #53885c", "l c #55a161", "B c #57a863", "R c #5aaa66", "I c #5aad69", "v c #5baa67", "X c #5cb16b", "o c #5db469", "k c #5eb56c", "z c #5eb66b", "s c #5fb26d", "V c #64b171", "Y c #64c274", "j c #69c779", "Z c #6dc97d", "p c #729a77", "O c #73c782", "i c #7ace89", "w c #7bce89", "C c #7ecb8b", "L c #80d191", "h c #80d193", "S c #8dd49b", "P c #95d8a1", "D c #a7ddb1", "x c #bde3c2", "T c #c0e5c5", "E c #daf0de", "F c #f9fdf9", "................", "..#abcde#df.....", "..ghhhijklm.....", "..nhoooooop.....", "..qho....rso....", "..tho...uvwxo...", "..yhz..ABCDEFo..", "gGHhIJJAAKLooo..", "MNOPEFo..Qho....", ".eRSTo...Uho....", "..eV.....Uho....", "...W.....Qho....", "....nXYZihho....", "....0ooooooo....", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/down1arrow.xpm0000644000175100001440000000073611626145614017166 0ustar joachimusers/* XPM */ static const char *down1arrow[] = { /* columns rows colors chars-per-pixel */ "16 16 3 1", " c #0080ff", "# c #000000", ". c None", /* pixels */ "................", "................", "................", "................", "................", "..############..", "...# #...", "....# #....", ".....# #.....", "......# #......", ".......##.......", "................", "................", "................", "................", "................" }; kdiff3-0.9.97/src-QT4/xpm/startmerge.xpm0000644000175100001440000000072111626145614017232 0ustar joachimusers/* XPM */ static const char *startmerge[]={ "16 16 6 1", ". c None", "# c #000000", "b c #0000ff", "c c #00ffff", "d c #ff0000", "a c #ffff00", ".......##.......", "......#aa#......", "......#aa#......", "...b.b.##.b.b...", "...bb......bb...", "...bbb....bbb...", ".##..........##.", "#cc#........#cc#", "#cc#........#cc#", ".##.b.b..b.b.##.", ".....bb..bb.....", "....bbb..bbb....", ".......##.......", "......#dd#......", "......#dd#......", ".......##......."}; kdiff3-0.9.97/src-QT4/xpm/showfilesonlyina.xpm0000644000175100001440000000066611626145614020462 0ustar joachimusers/* XPM */ static const char *showfilesonlyina[]={ "16 16 4 1", "# c None", "a c None", ". c #000000", "b c #00ff00", "...........##aaa", ".bbbb......##aaa", ".bbbb......##aaa", ".bbbb......##aaa", ".bbbb......##aaa", "...........##aaa", "aaaaaaaaaaaaaaaa", "................", "aaaaaaaaaaaaaaaa", "................", ".bbbb...........", ".bbbb...........", ".bbbb...........", ".bbbb...........", "................", "aaaaaaaaaaaaaaaa"}; kdiff3-0.9.97/src-QT4/xpm/upend.xpm0000644000175100001440000000063711626145614016176 0ustar joachimusers/* XPM */ static const char *upend[]={ "16 16 3 1", " c #0080ff", "# c #000000", ". c None", "................", "................", "................", "................", "..############..", ".......##.......", "......# #......", ".....# #.....", "....# #....", "...# #...", "..############..", "................", "................", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/file.xpm0000644000175100001440000000067711626145614016006 0ustar joachimusers/* XPM */ static const char *file_pm[]={ "16 16 5 1", ". c None", "# c #000000", "c c #c0c0c0", "b c #dcdcdc", "a c #ffffff", "..#########.....", "..#aaaaaabb#....", "..#aaaaaacab#...", "..#aaaaaacaab#..", "..#aaaaaac####..", "..#aaaaaaaccc#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..############.."}; kdiff3-0.9.97/src-QT4/xpm/down2arrow.xpm0000644000175100001440000000073611626145614017167 0ustar joachimusers/* XPM */ static const char *down2arrow[] = { /* columns rows colors chars-per-pixel */ "16 16 3 1", " c #0080ff", "# c #000000", ". c None", /* pixels */ "................", "................", "..############..", "...# #...", "....# #....", ".....# #.....", "......# #......", ".......##.......", "..############..", "...# #...", "....# #....", ".....# #.....", "......# #......", ".......##.......", "................", "................" }; kdiff3-0.9.97/src-QT4/xpm/prevunsolved.xpm0000644000175100001440000000066511626145614017620 0ustar joachimusers/* XPM */ static const char *prevunsolved[]={ "16 16 4 1", " c #0080ff", "# c #000000", "a c #ff0000", ". c None", ".......##.......", "......#aa#......", ".....#aaaa#.....", "....#aaaaaa#....", "...#aaaaaaaa#...", "..############..", "......# #......", ".....# #.....", "....# #....", "...# #...", "..############..", "......# #......", ".....# #.....", "....# #....", "...# #...", "..############.."}; kdiff3-0.9.97/src-QT4/xpm/iconB.xpm0000644000175100001440000000063711626145614016115 0ustar joachimusers/* XPM */ static const char *iconB[]={ "16 16 3 1", " c #0080FF", "# c #000000", ". c None", "................", "................", "...#######......", "...# #.....", "...# #### #....", "...# #...# #....", "...# #### #....", "...# #.....", "...# #### #....", "...# #...# #....", "...# #### #....", "...# #.....", "...#######......", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/iconA.xpm0000644000175100001440000000063711626145614016114 0ustar joachimusers/* XPM */ static const char *iconA[]={ "16 16 3 1", " c #0080FF", "# c #000000", ". c None", "................", "................", "......###.......", ".....# #......", "....# # #.....", "...# #.# #....", "...# #...# #....", "...# #...# #....", "...# ##### #....", "...# #....", "...# ##### #....", "...# #...# #....", "...###...###....", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/folder.xpm0000644000175100001440000000070111626145614016326 0ustar joachimusers/* XPM */ static const char *folder_pm[]={ "16 16 5 1", ". c None", "# c #040404", "c c #808304", "a c #f3f704", "b c #f3f7f3", "................", "................", "................", ".###............", "#aba#######.....", "#babababab#.....", "#ababababa#.....", "#baba###########", "#aba#ccccccccc#.", "#ba#ccccccccc#..", "#a#ccccccccc#...", "##ccccccccc#....", "###########.....", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/filesave.xpm0000644000175100001440000000057511626145614016662 0ustar joachimusers/* XPM */ static const char *filesave[] = { " 14 14 3 1", ". c #040404", "# c #808304", "a c #bfc2bf", "..............", ".#.aaaaaaaa.a.", ".#.aaaaaaaa...", ".#.aaaaaaaa.#.", ".#.aaaaaaaa.#.", ".#.aaaaaaaa.#.", ".#.aaaaaaaa.#.", ".##........##.", ".############.", ".##.........#.", ".##......aa.#.", ".##......aa.#.", ".##......aa.#.", "a............." }; kdiff3-0.9.97/src-QT4/xpm/downend.xpm0000644000175100001440000000064111626145614016514 0ustar joachimusers/* XPM */ static const char *downend[]={ "16 16 3 1", " c #0080ff", "# c #000000", ". c None", "................", "................", "................", "................", "................", "..############..", "...# #...", "....# #....", ".....# #.....", "......# #......", ".......##.......", "..############..", "................", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/iconC.xpm0000644000175100001440000000063711626145614016116 0ustar joachimusers/* XPM */ static const char *iconC[]={ "16 16 3 1", " c #0080FF", "# c #000000", ". c None", "................", "................", "......####......", ".....# #.....", "....# ### #....", "...# #...##....", "...# #..........", "...# #..........", "...# #..........", "...# #..........", "...# #...##....", "....# ### #....", ".....# #.....", "......####......", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/filenew.xpm0000644000175100001440000000050611626145614016507 0ustar joachimusers/* XPM */ static const char * filenew[] = { "10 14 5 1", " c None", ". c #000000", "+ c #FFFFFF", "@ c #DCDCDC", "# c #C0C0C0", "....... ", ".++++@@. ", ".++++#+@. ", ".++++#++@.", ".++++#....", ".+++++###.", ".++++++++.", ".++++++++.", ".++++++++.", ".++++++++.", ".++++++++.", ".++++++++.", ".++++++++.", ".........."}; kdiff3-0.9.97/src-QT4/xpm/up2arrow.xpm0000644000175100001440000000073411626145614016642 0ustar joachimusers/* XPM */ static const char *up2arrow[] = { /* columns rows colors chars-per-pixel */ "16 16 3 1", " c #0080ff", "# c #000000", ". c None", /* pixels */ "................", "................", ".......##.......", "......# #......", ".....# #.....", "....# #....", "...# #...", "..############..", ".......##.......", "......# #......", ".....# #.....", "....# #....", "...# #...", "..############..", "................", "................" }; kdiff3-0.9.97/src-QT4/xpm/showwhitespacechars.xpm0000644000175100001440000000063611626145614021140 0ustar joachimusers/* XPM */ static const char *showwhitespacechars[]={ "16 16 2 1", ". c None", "# c #000040", "................", "................", "................", "................", "................", "................", "................", "................", "................", "................", ".####.####.####.", ".####.####.####.", "................", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/fileprint.xpm0000644000175100001440000000070411626145614017052 0ustar joachimusers/* XPM */ static const char *fileprint[] = { " 16 14 6 1", ". c #000000", "# c #848284", "a c #c6c3c6", "b c #ffff00", "c c #ffffff", "d c None", "ddddd.........dd", "dddd.cccccccc.dd", "dddd.c.....c.ddd", "ddd.cccccccc.ddd", "ddd.c.....c....d", "dd.cccccccc.a.a.", "d..........a.a..", ".aaaaaaaaaa.a.a.", ".............aa.", ".aaaaaa###aa.a.d", ".aaaaaabbbaa...d", ".............a.d", "d.aaaaaaaaa.a.dd", "dd...........ddd" }; kdiff3-0.9.97/src-QT4/xpm/showfilesonlyinc.xpm0000644000175100001440000000065211626145614020457 0ustar joachimusers/* XPM */ static const char *showfilesonlyinc[]={ "16 16 3 1", ". c None", "# c #000000", "a c #00ff00", "................", "................", "................", "................", "................", "################", "###########aaaa#", "###########aaaa#", "###########aaaa#", "###########aaaa#", "################", "................", "................", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/autoadvance.xpm0000644000175100001440000000073711626145614017356 0ustar joachimusers/* XPM */ static const char *autoadvance[] = { /* columns rows colors chars-per-pixel */ "16 16 3 1", ". c #0080FF", "# c #000000", " c None", /* pixels */ " ## # # ### # ", "# # # # # # #", "# # # # # # #", "#### # # # # #", "# # ### # # ", " ", " ", " ######## ", " #....# ", " #..# ", " ## ", " ######## ", " #....# ", " #..# ", " ## ", " " }; kdiff3-0.9.97/src-QT4/xpm/nextunsolved.xpm0000644000175100001440000000066511626145614017622 0ustar joachimusers/* XPM */ static const char *nextunsolved[]={ "16 16 4 1", ". c None", " c #0080ff", "# c #000000", "a c #ff0000", "..############..", "...# #...", "....# #....", ".....# #.....", "......# #......", "..############..", "...# #...", "....# #....", ".....# #.....", "......# #......", "..############..", "...#aaaaaaaa#...", "....#aaaaaa#....", ".....#aaaa#.....", "......#aa#......", ".......##......."}; kdiff3-0.9.97/src-QT4/xpm/showwhitespace.xpm0000644000175100001440000000065011626145614020113 0ustar joachimusers/* XPM */ static const char *showwhitespace[]={ "16 16 3 1", ". c None", "# c #000000", "a c #ffffff", "................", "................", "..############..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..#aaaaaaaaaa#..", "..############..", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/showlinenumbers.xpm0000644000175100001440000000063211626145614020302 0ustar joachimusers/* XPM */ static const char *showlinenumbers[]={ "16 16 2 1", ". c None", "# c #000040", "................", "................", "................", "................", "...#...##..###..", "..##..#..#....#.", "...#.....#....#.", "...#....#...##..", "...#...#......#.", "...#..#.......#.", "..###.####.###..", "................", "................", "................", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/link_arrow.xpm0000644000175100001440000000070211626145614017223 0ustar joachimusers/* XPM */ static const char *link_arrow[]={ "16 16 5 1", ". c None", "b c #000000", "# c #585858", "c c #dcdcdc", "a c #ffffff", "................", "................", "................", "................", "................", "................", "................", "................", "########........", "#aaaaaab........", "#aabbbab........", "#aac#bab........", "#acbcbab........", "#abcaaab........", "#aaaaaab........", "#bbbbbbb........"}; kdiff3-0.9.97/src-QT4/xpm/showfilesonlyinb.xpm0000644000175100001440000000066611626145614020463 0ustar joachimusers/* XPM */ static const char *showfilesonlyinb[]={ "16 16 4 1", "# c None", "a c None", ". c #000000", "b c #00ff00", "...........##aaa", "......bbbb.##aaa", "......bbbb.##aaa", "......bbbb.##aaa", "......bbbb.##aaa", "...........##aaa", "aaaaaaaaaaaaaaaa", "................", "aaaaaaaaaaaaaaaa", "................", "......bbbb......", "......bbbb......", "......bbbb......", "......bbbb......", "................", "aaaaaaaaaaaaaaaa"}; kdiff3-0.9.97/src-QT4/xpm/fileopen.xpm0000644000175100001440000000064011626145614016656 0ustar joachimusers/* XPM */ static const char *fileopen[] = { " 16 13 5 1", ". c #040404", "# c #808304", "a c None", "b c #f3f704", "c c #f3f7f3", "aaaaaaaaa...aaaa", "aaaaaaaa.aaa.a.a", "aaaaaaaaaaaaa..a", "a...aaaaaaaa...a", ".bcb.......aaaaa", ".cbcbcbcbc.aaaaa", ".bcbcbcbcb.aaaaa", ".cbcb...........", ".bcb.#########.a", ".cb.#########.aa", ".b.#########.aaa", "..#########.aaaa", "...........aaaaa" }; kdiff3-0.9.97/src-QT4/xpm/currentpos.xpm0000644000175100001440000000064411626145614017265 0ustar joachimusers/* XPM */ static const char *currentpos[]={ "16 16 3 1", " c #0080FF", "# c #000000", ". c None", "................", "................", "................", ".#............#.", ".##..........##.", ".# #........# #.", ".# #..##..# #.", ".# ## ## #.", ".# # # #.", ".# ## ## #.", ".# #..##..# #.", ".# #........# #.", ".##..........##.", ".#............#.", "................", "................"}; kdiff3-0.9.97/src-QT4/xpm/showequalfiles.xpm0000644000175100001440000000066411626145614020116 0ustar joachimusers/* XPM */ static const char *showequalfiles[]={ "16 16 4 1", "# c None", "a c None", ". c #000000", "b c #00ff00", "...........##aaa", ".bbbb.bbbb.##aaa", ".bbbb.bbbb.##aaa", ".bbbb.bbbb.##aaa", ".bbbb.bbbb.##aaa", "...........##aaa", "aaaaaaaaaaaaaaaa", "................", "aaaaaaaaaaaaaaaa", "................", ".bbbb.bbbb.bbbb.", ".bbbb.bbbb.bbbb.", ".bbbb.bbbb.bbbb.", ".bbbb.bbbb.bbbb.", "................", "aaaaaaaaaaaaaaaa"}; kdiff3-0.9.97/src-QT4/merger.h0000644000175100001440000000347511626145614015166 0ustar joachimusers/*************************************************************************** merger.h - description ------------------- begin : Sun Mar 24 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef MERGER_H #define MERGER_H #include "diff.h" class Merger { public: Merger( const DiffList* pDiffList1, const DiffList* pDiffList2 ); /** Go one step. */ void next(); /** Information about what changed. Can be used for coloring. The return value is 0 if nothing changed here, bit 1 is set if a difference from pDiffList1 was detected, bit 2 is set if a difference from pDiffList2 was detected. */ int whatChanged(); /** End of both diff lists reached. */ bool isEndReached(); private: struct MergeData { DiffList::const_iterator it; const DiffList* pDiffList; Diff d; int idx; MergeData( const DiffList* p, int i ); bool eq(); void update(); bool isEnd(); }; MergeData md1; MergeData md2; }; #endif kdiff3-0.9.97/src-QT4/fileaccess.cpp0000644000175100001440000014714612011301114016317 0ustar joachimusers/*************************************************************************** * Copyright (C) 2003-2011 by Joachim Eibl * * joachim.eibl at gmx.de * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #include "stable.h" #include "fileaccess.h" #include "progress.h" #include "common.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _WIN32 #include #include #include #include #else #include // Needed for creating symbolic links via symlink(). #include #endif class FileAccess::Data { public: Data() { reset(); } void reset() { m_url = KUrl(); m_bValidData = false; m_name = QString(); //m_creationTime = QDateTime(); //m_accessTime = QDateTime(); m_bReadable = false; m_bExecutable = false; m_linkTarget = ""; //m_fileType = -1; m_bLocal = true; m_pParent = 0; } KUrl m_url; bool m_bLocal; bool m_bValidData; //QDateTime m_accessTime; //QDateTime m_creationTime; bool m_bReadable; bool m_bExecutable; //long m_fileType; // for testing only FileAccess* m_pParent; QString m_linkTarget; //QString m_user; //QString m_group; QString m_name; QString m_localCopy; QString m_statusText; // Might contain an error string, when the last operation didn't succeed. }; FileAccess::FileAccess( const QString& name, bool bWantToWrite ) { m_pData = 0; m_bUseData = false; setFile( name, bWantToWrite ); } FileAccess::FileAccess() { m_bUseData = false; m_bExists = false; m_bFile = false; m_bDir = false; m_bSymLink = false; m_bWritable = false; m_bHidden = false; m_pParent = 0; m_size = 0; } FileAccess::FileAccess(const FileAccess& other) { m_pData = 0; m_bUseData = false; *this = other; } void FileAccess::createData() { if ( d() == 0 ) { FileAccess* pParent = m_pParent; // backup because in union with m_pData m_pData = new Data(); m_bUseData = true; m_pData->m_pParent = pParent; } } const FileAccess& FileAccess::operator=(const FileAccess& other) { m_size = other.m_size; m_filePath = other.m_filePath; m_modificationTime = other.m_modificationTime; m_bSymLink = other.m_bSymLink; m_bFile = other.m_bFile; m_bDir = other.m_bDir; m_bExists = other.m_bExists; m_bWritable = other.m_bWritable; m_bHidden = other.m_bHidden; if ( other.m_bUseData ) { createData(); *m_pData = *other.m_pData; } else { if ( m_bUseData ) { delete m_pData; } m_bUseData = false; m_pParent = other.parent(); // should be 0 anyway } return *this; } FileAccess::~FileAccess() { if ( m_bUseData ) { if( ! d()->m_localCopy.isEmpty() ) { removeTempFile( d()->m_localCopy ); } delete m_pData; } } static QString nicePath( const QFileInfo& fi ) { QString fp = fi.filePath(); if ( fp.length()>2 && fp[0] == '.' && fp[1] == '/' ) { return fp.mid(2); } return fp; } // Two kinds of optimization are applied here: // 1. Speed: don't ask for data as long as it is not needed or cheap to get. // When opening a file it is early enough to ask for details. // 2. Memory usage: Don't store data that is not needed, and avoid redundancy. // For recursive directory trees don't store the full path if a parent is available. // Store urls only if files are not local. void FileAccess::setFile( const QFileInfo& fi, FileAccess* pParent ) { m_filePath = nicePath( fi.filePath() ); // remove "./" at start m_bSymLink = fi.isSymLink(); if ( m_bSymLink || (!m_bExists && m_filePath.contains("@@") ) ) { createData(); } if ( m_bUseData ) d()->m_pParent = pParent; else m_pParent = pParent; if ( parent() || d() ) // if a parent is specified then we arrive here because of listing a directory { m_bFile = fi.isFile(); m_bDir = fi.isDir(); m_bExists = fi.exists(); m_size = fi.size(); m_modificationTime = fi.lastModified(); m_bHidden = fi.isHidden(); #if defined(Q_WS_WIN) m_bWritable = pParent == 0 || fi.isWritable(); // in certain situations this might become a problem though #else m_bWritable = fi.isWritable(); #endif } if ( d() != 0 ) { #if defined(Q_WS_WIN) // On some windows machines in a network this takes very long. // and it's not so important anyway. d()->m_bReadable = true; d()->m_bExecutable = false; #else d()->m_bReadable = fi.isReadable(); d()->m_bExecutable = fi.isExecutable(); #endif //d()->m_creationTime = fi.created(); //d()->m_modificationTime = fi.lastModified(); //d()->m_accessTime = fi.lastRead(); d()->m_name = fi.fileName(); if ( m_bSymLink ) d()->m_linkTarget = fi.readLink(); d()->m_bLocal = true; d()->m_bValidData = true; d()->m_url = KUrl( fi.filePath() ); if ( ! d()->m_url.isValid() ) { d()->m_url.setPath( absoluteFilePath() ); } if ( !m_bExists && absoluteFilePath().contains("@@") ) { // Try reading a clearcase file d()->m_localCopy = FileAccess::tempFileName(); QString cmd = "cleartool get -to \"" + d()->m_localCopy + "\" \"" + absoluteFilePath() + "\""; QProcess process; process.start( cmd ); process.waitForFinished(-1); //::system( cmd.local8Bit() ); QFile::setPermissions( d()->m_localCopy, QFile::ReadUser | QFile::WriteUser ); // Clearcase creates a write protected file, allow delete. QFileInfo fi( d()->m_localCopy ); #if defined(Q_WS_WIN) d()->m_bReadable = true;//fi.isReadable(); m_bWritable = true;//fi.isWritable(); d()->m_bExecutable = false;//fi.isExecutable(); #else d()->m_bReadable = fi.isReadable(); d()->m_bExecutable = fi.isExecutable(); #endif //d()->m_creationTime = fi.created(); //d()->m_accessTime = fi.lastRead(); m_bExists = fi.exists(); m_size = fi.size(); } } } void FileAccess::setFile( const QString& name, bool bWantToWrite ) { m_bExists = false; m_bFile = false; m_bDir = false; m_bSymLink = false; m_size = 0; m_modificationTime = QDateTime(); if ( d()!=0 ) { d()->reset(); d()->m_pParent = 0; } else m_pParent = 0; // Note: Checking if the filename-string is empty is necessary for Win95/98/ME. // The isFile() / isDir() queries would cause the program to crash. // (This is a Win95-bug which has been corrected only in WinNT/2000/XP.) if ( !name.isEmpty() ) { KUrl url( name ); // FileAccess tries to detect if the given name is an URL or a local file. // This is a problem if the filename looks like an URL (i.e. contains a colon ':'). // e.g. "file:f.txt" is a valid filename. // Most of the time it is sufficient to check if the file exists locally. // 2 Problems remain: // 1. When the local file exists and the remote location is wanted nevertheless. (unlikely) // 2. When the local file doesn't exist and should be written to. bool bExistsLocal = QDir().exists(name); if ( url.isLocalFile() || url.isRelative() || !url.isValid() || bExistsLocal ) // assuming that invalid means relative { QString localName = name; #if defined(Q_WS_WIN) if ( localName.startsWith("/tmp/") ) { // git on Cygwin will put files in /tmp // A workaround for the a native kdiff3 binary to find them... QString cygwinBin = getenv("CYGWIN_BIN"); if ( !cygwinBin.isEmpty() ) { localName = QString("%1\\..%2").arg(cygwinBin).arg(name); } } #endif if ( !bExistsLocal && url.isLocalFile() && name.left(5).toLower()=="file:" ) { localName = url.path(); // I want the path without preceding "file:" } QFileInfo fi( localName ); setFile( fi, 0 ); } else { createData(); d()->m_url = url; d()->m_name = d()->m_url.fileName(); d()->m_bLocal = false; FileAccessJobHandler jh( this ); // A friend, which writes to the parameters of this class! jh.stat(2/*all details*/, bWantToWrite); // returns bSuccess, ignored m_filePath = name; d()->m_bValidData = true; // After running stat() the variables are initialised // and valid even if the file doesn't exist and the stat // query failed. } } } void FileAccess::addPath( const QString& txt ) { if ( d()!=0 && d()->m_url.isValid() ) { d()->m_url.addPath( txt ); setFile( d()->m_url.url() ); // reinitialise } else { QString slash = (txt.isEmpty() || txt[0]=='/') ? "" : "/"; setFile( absoluteFilePath() + slash + txt ); } } /* Filetype: S_IFMT 0170000 bitmask for the file type bitfields S_IFSOCK 0140000 socket S_IFLNK 0120000 symbolic link S_IFREG 0100000 regular file S_IFBLK 0060000 block device S_IFDIR 0040000 directory S_IFCHR 0020000 character device S_IFIFO 0010000 fifo S_ISUID 0004000 set UID bit S_ISGID 0002000 set GID bit (see below) S_ISVTX 0001000 sticky bit (see below) Access: S_IRWXU 00700 mask for file owner permissions S_IRUSR 00400 owner has read permission S_IWUSR 00200 owner has write permission S_IXUSR 00100 owner has execute permission S_IRWXG 00070 mask for group permissions S_IRGRP 00040 group has read permission S_IWGRP 00020 group has write permission S_IXGRP 00010 group has execute permission S_IRWXO 00007 mask for permissions for others (not in group) S_IROTH 00004 others have read permission S_IWOTH 00002 others have write permisson S_IXOTH 00001 others have execute permission */ #ifdef KREPLACEMENTS_H void FileAccess::setUdsEntry( const KIO::UDSEntry& ){} // not needed if KDE is not available #else void FileAccess::setUdsEntry( const KIO::UDSEntry& e ) { long acc = 0; long fileType = 0; QList< uint > fields = e.listFields(); for( QList< uint >::ConstIterator ei=fields.constBegin(); ei!=fields.constEnd(); ++ei ) { uint f = *ei; switch( f ) { case KIO::UDSEntry::UDS_SIZE : m_size = e.numberValue(f); break; //case KIO::UDSEntry::UDS_USER : d()->m_user = e.stringValue(f); break; //case KIO::UDSEntry::UDS_GROUP : d()->m_group = e.stringValue(f); break; case KIO::UDSEntry::UDS_NAME : m_filePath = e.stringValue(f); break; // During listDir the relative path is given here. case KIO::UDSEntry::UDS_MODIFICATION_TIME : m_modificationTime.setTime_t( e.numberValue(f) ); break; //case KIO::UDSEntry::UDS_ACCESS_TIME : d()->m_accessTime.setTime_t( e.numberValue(f) ); break; //case KIO::UDSEntry::UDS_CREATION_TIME : d()->m_creationTime.setTime_t( e.numberValue(f) ); break; case KIO::UDSEntry::UDS_LINK_DEST : d()->m_linkTarget = e.stringValue(f); break; case KIO::UDSEntry::UDS_ACCESS : { acc = e.numberValue(f); d()->m_bReadable = (acc & S_IRUSR)!=0; m_bWritable = (acc & S_IWUSR)!=0; d()->m_bExecutable = (acc & S_IXUSR)!=0; break; } case KIO::UDSEntry::UDS_FILE_TYPE : { fileType = e.numberValue(f); m_bDir = ( fileType & S_IFMT ) == S_IFDIR; m_bFile = ( fileType & S_IFMT ) == S_IFREG; m_bSymLink = ( fileType & S_IFMT ) == S_IFLNK; m_bExists = fileType != 0; //d()->m_fileType = fileType; break; } case KIO::UDSEntry::UDS_URL : // m_url = KUrl( e.stringValue(f) ); break; case KIO::UDSEntry::UDS_MIME_TYPE : break; case KIO::UDSEntry::UDS_GUESSED_MIME_TYPE : break; case KIO::UDSEntry::UDS_XML_PROPERTIES : break; default: break; } } m_bExists = acc!=0 || fileType!=0; d()->m_bLocal = false; d()->m_bValidData = true; m_bSymLink = !d()->m_linkTarget.isEmpty(); if ( d()->m_name.isEmpty() ) { int pos = m_filePath.lastIndexOf('/') + 1; d()->m_name = m_filePath.mid( pos ); } m_bHidden = d()->m_name[0]=='.'; } #endif bool FileAccess::isValid() const { return d()==0 ? !m_filePath.isEmpty() : d()->m_bValidData; } bool FileAccess::isFile() const { if ( parent() || d() ) return m_bFile; else return QFileInfo( absoluteFilePath() ).isFile(); } bool FileAccess::isDir() const { if ( parent() || d() ) return m_bDir; else return QFileInfo( absoluteFilePath() ).isDir(); } bool FileAccess::isSymLink() const { return m_bSymLink; } bool FileAccess::exists() const { if ( parent() || d()) return m_bExists; else return QFileInfo( absoluteFilePath() ).exists(); } qint64 FileAccess::size() const { if ( parent() || d()) return m_size; else return QFileInfo( absoluteFilePath() ).size(); } KUrl FileAccess::url() const { if ( d()!=0 ) return d()->m_url; else { KUrl url( m_filePath ); if ( ! url.isValid() ) { url.setPath( absoluteFilePath() ); } return url; } } bool FileAccess::isLocal() const { return d()==0 || d()->m_bLocal; } bool FileAccess::isReadable() const { #if defined(Q_WS_WIN) // On some windows machines in a network this takes very long to find out and it's not so important anyway. return true; #else if ( d()!=0 ) return d()->m_bReadable; else return QFileInfo( absoluteFilePath() ).isReadable(); #endif } bool FileAccess::isWritable() const { if ( parent() || d()) return m_bWritable; else return QFileInfo( absoluteFilePath() ).isWritable(); } bool FileAccess::isExecutable() const { #if defined(Q_WS_WIN) // On some windows machines in a network this takes very long to find out and it's not so important anyway. return true; #else if ( d()!=0 ) return d()->m_bExecutable; else return QFileInfo( absoluteFilePath() ).isExecutable(); #endif } bool FileAccess::isHidden() const { if ( parent() || d() ) return m_bHidden; else return QFileInfo( absoluteFilePath() ).isHidden(); } QString FileAccess::readLink() const { if ( d()!=0 ) return d()->m_linkTarget; else return QString(); } QString FileAccess::absoluteFilePath() const { if ( parent() != 0 ) return parent()->absoluteFilePath() + "/" + m_filePath; else return m_filePath; } // Full abs path // Just the name-part of the path, without parent directories QString FileAccess::fileName() const { if ( d()!=0 ) return d()->m_name; else if ( parent() ) return m_filePath; else return QFileInfo( m_filePath ).fileName(); } void FileAccess::setSharedName(const QString& name) { if ( name == m_filePath ) m_filePath = name; // reduce memory because string is only used once. } QString FileAccess::filePath() const { if ( parent() && parent()->parent() ) return parent()->filePath() + "/" + m_filePath; else return m_filePath; // The path-string that was used during construction } FileAccess* FileAccess::parent() const { if ( m_bUseData ) return d()->m_pParent; else return m_pParent; } FileAccess::Data* FileAccess::d() { if ( m_bUseData ) return m_pData; else return 0; } const FileAccess::Data* FileAccess::d() const { if ( m_bUseData ) return m_pData; else return 0; } QString FileAccess::prettyAbsPath() const { return isLocal() ? absoluteFilePath() : d()->m_url.prettyUrl(); } /* QDateTime FileAccess::created() const { if ( d()!=0 ) { if ( isLocal() && d()->m_creationTime.isNull() ) const_cast(this)->d()->m_creationTime = QFileInfo( absoluteFilePath() ).created(); return ( d()->m_creationTime.isValid() ? d()->m_creationTime : lastModified() ); } else { QDateTime created = QFileInfo( absoluteFilePath() ).created(); return created.isValid() ? created : lastModified(); } } */ QDateTime FileAccess::lastModified() const { if ( isLocal() && m_modificationTime.isNull() ) const_cast(this)->m_modificationTime = QFileInfo( absoluteFilePath() ).lastModified(); return m_modificationTime; } /* QDateTime FileAccess::lastRead() const { QDateTime accessTime = d()!=0 ? d()->m_accessTime : QFileInfo( absoluteFilePath() ).lastRead(); return ( accessTime.isValid() ? accessTime : lastModified() ); } */ static bool interruptableReadFile( QFile& f, void* pDestBuffer, unsigned long maxLength ) { ProgressProxy pp; const unsigned long maxChunkSize = 100000; unsigned long i=0; while( im_localCopy.isEmpty() ) { QFile f( d()->m_localCopy ); if ( f.open( QIODevice::ReadOnly ) ) return interruptableReadFile(f, pDestBuffer, maxLength);// maxLength == f.read( (char*)pDestBuffer, maxLength ); } else if (isLocal()) { QFile f( absoluteFilePath() ); if ( f.open( QIODevice::ReadOnly ) ) return interruptableReadFile(f, pDestBuffer, maxLength); //maxLength == f.read( (char*)pDestBuffer, maxLength ); } else { FileAccessJobHandler jh( this ); return jh.get( pDestBuffer, maxLength ); } return false; } bool FileAccess::writeFile( const void* pSrcBuffer, unsigned long length ) { ProgressProxy pp; if ( isLocal() ) { QFile f( absoluteFilePath() ); if ( f.open( QIODevice::WriteOnly ) ) { const unsigned long maxChunkSize = 100000; unsigned long i=0; while( im_localCopy = localCopy; return m_size; } else { return 0; } } else return size(); } QString FileAccess::getStatusText() { return d()==0 ? QString() : d()->m_statusText; } void FileAccess::setStatusText( const QString& s ) { if ( ! s.isEmpty() || d() != 0 ) { createData(); d()->m_statusText = s; } } QString FileAccess::cleanPath( const QString& path ) // static { KUrl url(path); if ( url.isLocalFile() || ! url.isValid() ) { return QDir().cleanPath( path ); } else { return path; } } bool FileAccess::createBackup( const QString& bakExtension ) { if ( exists() ) { createData(); setFile( absoluteFilePath() ); // make sure Data is initialized // First rename the existing file to the bak-file. If a bak-file file exists, delete that. QString bakName = absoluteFilePath() + bakExtension; FileAccess bakFile( bakName, true /*bWantToWrite*/ ); if ( bakFile.exists() ) { bool bSuccess = bakFile.removeFile(); if ( !bSuccess ) { setStatusText( i18n("While trying to make a backup, deleting an older backup failed. \nFilename: ") + bakName ); return false; } } bool bSuccess = rename( bakName ); if (!bSuccess) { setStatusText( i18n("While trying to make a backup, renaming failed. \nFilenames: ") + absoluteFilePath() + " -> " + bakName ); return false; } } return true; } FileAccessJobHandler::FileAccessJobHandler( FileAccess* pFileAccess ) { m_pFileAccess = pFileAccess; m_bSuccess = false; } bool FileAccessJobHandler::stat( int detail, bool bWantToWrite ) { m_bSuccess = false; m_pFileAccess->setStatusText( QString() ); KIO::StatJob* pStatJob = KIO::stat( m_pFileAccess->url(), bWantToWrite ? KIO::StatJob::DestinationSide : KIO::StatJob::SourceSide, detail, KIO::HideProgressInfo ); connect( pStatJob, SIGNAL(result(KJob*)), this, SLOT(slotStatResult(KJob*))); ProgressProxy::enterEventLoop( pStatJob, i18n("Getting file status: %1",m_pFileAccess->prettyAbsPath()) ); return m_bSuccess; } void FileAccessJobHandler::slotStatResult(KJob* pJob) { if ( pJob->error() ) { //pJob->uiDelegate()->showErrorMessage(); m_pFileAccess->m_bExists = false; m_bSuccess = true; } else { m_bSuccess = true; m_pFileAccess->d()->m_bValidData = true; const KIO::UDSEntry e = static_cast(pJob)->statResult(); m_pFileAccess->setUdsEntry( e ); } ProgressProxy::exitEventLoop(); } bool FileAccessJobHandler::get(void* pDestBuffer, long maxLength ) { ProgressProxyExtender pp; // Implicitly used in slotPercent() if ( maxLength>0 && !pp.wasCancelled() ) { KIO::TransferJob* pJob = KIO::get( m_pFileAccess->url(), KIO::NoReload ); m_transferredBytes = 0; m_pTransferBuffer = (char*)pDestBuffer; m_maxLength = maxLength; m_bSuccess = false; m_pFileAccess->setStatusText( QString() ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); connect( pJob, SIGNAL(data(KJob*,const QByteArray &)), this, SLOT(slotGetData(KJob*, const QByteArray&))); connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long))); ProgressProxy::enterEventLoop( pJob, i18n("Reading file: %1",m_pFileAccess->prettyAbsPath()) ); return m_bSuccess; } else return true; } void FileAccessJobHandler::slotGetData( KJob* pJob, const QByteArray& newData ) { if ( pJob->error() ) { pJob->uiDelegate()->showErrorMessage(); } else { qint64 length = min2( qint64(newData.size()), m_maxLength - m_transferredBytes ); ::memcpy( m_pTransferBuffer + m_transferredBytes, newData.data(), newData.size() ); m_transferredBytes += length; } } bool FileAccessJobHandler::put(const void* pSrcBuffer, long maxLength, bool bOverwrite, bool bResume, int permissions ) { ProgressProxyExtender pp; // Implicitly used in slotPercent() if ( maxLength>0 ) { KIO::TransferJob* pJob = KIO::put( m_pFileAccess->url(), permissions, KIO::HideProgressInfo | (bOverwrite ? KIO::Overwrite : KIO::DefaultFlags) | (bResume ? KIO::Resume : KIO::DefaultFlags) ); m_transferredBytes = 0; m_pTransferBuffer = (char*)pSrcBuffer; m_maxLength = maxLength; m_bSuccess = false; m_pFileAccess->setStatusText( QString() ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotPutJobResult(KJob*))); connect( pJob, SIGNAL(dataReq(KIO::Job*, QByteArray&)), this, SLOT(slotPutData(KIO::Job*, QByteArray&))); connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long))); ProgressProxy::enterEventLoop( pJob, i18n("Writing file: %1",m_pFileAccess->prettyAbsPath()) ); return m_bSuccess; } else return true; } void FileAccessJobHandler::slotPutData( KIO::Job* pJob, QByteArray& data ) { if ( pJob->error() ) { pJob->uiDelegate()->showErrorMessage(); } else { qint64 maxChunkSize = 100000; qint64 length = min2( maxChunkSize, m_maxLength - m_transferredBytes ); data.resize( length ); if ( data.size()==length ) { if ( length>0 ) { ::memcpy( data.data(), m_pTransferBuffer + m_transferredBytes, data.size() ); m_transferredBytes += length; } } else { KMessageBox::error( ProgressProxy::getDialog(), i18n("Out of memory") ); data.resize(0); m_bSuccess = false; } } } void FileAccessJobHandler::slotPutJobResult(KJob* pJob) { if ( pJob->error() ) { pJob->uiDelegate()->showErrorMessage(); } else { m_bSuccess = (m_transferredBytes == m_maxLength); // Special success condition } ProgressProxy::exitEventLoop(); // Close the dialog, return from exec() } bool FileAccessJobHandler::mkDir( const QString& dirName ) { KUrl dirURL = KUrl( dirName ); if ( dirName.isEmpty() ) return false; else if ( dirURL.isLocalFile() || dirURL.isRelative() ) { return QDir().mkdir( dirURL.path() ); } else { m_bSuccess = false; KIO::SimpleJob* pJob = KIO::mkdir( dirURL ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); ProgressProxy::enterEventLoop( pJob, i18n("Making directory: %1", dirName) ); return m_bSuccess; } } bool FileAccessJobHandler::rmDir( const QString& dirName ) { KUrl dirURL = KUrl( dirName ); if ( dirName.isEmpty() ) return false; else if ( dirURL.isLocalFile() ) { return QDir().rmdir( dirURL.path() ); } else { m_bSuccess = false; KIO::SimpleJob* pJob = KIO::rmdir( dirURL ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); ProgressProxy::enterEventLoop(pJob, i18n("Removing directory: %1",dirName)); return m_bSuccess; } } bool FileAccessJobHandler::removeFile( const QString& fileName ) { if ( fileName.isEmpty() ) return false; else { m_bSuccess = false; KIO::SimpleJob* pJob = KIO::file_delete( fileName, KIO::HideProgressInfo ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); ProgressProxy::enterEventLoop( pJob, i18n("Removing file: %1",fileName) ); return m_bSuccess; } } bool FileAccessJobHandler::symLink( const QString& linkTarget, const QString& linkLocation ) { if ( linkTarget.isEmpty() || linkLocation.isEmpty() ) return false; else { m_bSuccess = false; KIO::CopyJob* pJob = KIO::link( linkTarget, linkLocation, KIO::HideProgressInfo ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); ProgressProxy::enterEventLoop( pJob, i18n("Creating symbolic link: %1 -> %2",linkLocation,linkTarget) ); return m_bSuccess; } } bool FileAccessJobHandler::rename( const QString& dest ) { if ( dest.isEmpty() ) return false; KUrl kurl( dest ); if ( !kurl.isValid() ) kurl = KUrl( QDir().absoluteFilePath(dest) ); // assuming that invalid means relative if ( m_pFileAccess->isLocal() && kurl.isLocalFile() ) { return QDir().rename( m_pFileAccess->absoluteFilePath(), kurl.path() ); } else { ProgressProxyExtender pp; int permissions=-1; m_bSuccess = false; KIO::FileCopyJob* pJob = KIO::file_move( m_pFileAccess->url(), kurl, permissions, KIO::HideProgressInfo ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); connect( pJob, SIGNAL(percent(KJob*,unsigned long)), this, SLOT(slotPercent(KJob*, unsigned long))); ProgressProxy::enterEventLoop( pJob, i18n("Renaming file: %1 -> %2",m_pFileAccess->prettyAbsPath(),dest) ); return m_bSuccess; } } void FileAccessJobHandler::slotSimpleJobResult(KJob* pJob) { if ( pJob->error() ) { pJob->uiDelegate()->showErrorMessage(); } else { m_bSuccess = true; } ProgressProxy::exitEventLoop(); // Close the dialog, return from exec() } // Copy local or remote files. bool FileAccessJobHandler::copyFile( const QString& dest ) { ProgressProxyExtender pp; KUrl destUrl( dest ); m_pFileAccess->setStatusText( QString() ); if ( ! m_pFileAccess->isLocal() || ! destUrl.isLocalFile() ) // if either url is nonlocal { int permissions = (m_pFileAccess->isExecutable()?0111:0)+(m_pFileAccess->isWritable()?0222:0)+(m_pFileAccess->isReadable()?0444:0); m_bSuccess = false; KIO::FileCopyJob* pJob = KIO::file_copy ( m_pFileAccess->url(), destUrl, permissions, KIO::HideProgressInfo ); connect( pJob, SIGNAL(result(KJob*)), this, SLOT(slotSimpleJobResult(KJob*))); connect( pJob, SIGNAL(percent(KJob*,unsigned long)), &pp, SLOT(slotPercent(KJob*, unsigned long))); ProgressProxy::enterEventLoop( pJob, i18n("Copying file: %1 -> %2",m_pFileAccess->prettyAbsPath(),dest) ); return m_bSuccess; // Note that the KIO-slave preserves the original date, if this is supported. } // Both files are local: QString srcName = m_pFileAccess->absoluteFilePath(); QString destName = dest; QFile srcFile( srcName ); QFile destFile( destName ); bool bReadSuccess = srcFile.open( QIODevice::ReadOnly ); if ( bReadSuccess == false ) { m_pFileAccess->setStatusText( i18n("Error during file copy operation: Opening file for reading failed. Filename: %1",srcName) ); return false; } bool bWriteSuccess = destFile.open( QIODevice::WriteOnly ); if ( bWriteSuccess == false ) { m_pFileAccess->setStatusText( i18n("Error during file copy operation: Opening file for writing failed. Filename: %1",destName) ); return false; } #if QT_VERSION==230 typedef long Q_LONG; #endif std::vector buffer(100000); qint64 bufSize = buffer.size(); qint64 srcSize = srcFile.size(); while ( srcSize > 0 && !pp.wasCancelled() ) { qint64 readSize = srcFile.read( &buffer[0], min2( srcSize, bufSize ) ); if ( readSize==-1 || readSize==0 ) { m_pFileAccess->setStatusText( i18n("Error during file copy operation: Reading failed. Filename: %1",srcName) ); return false; } srcSize -= readSize; while ( readSize > 0 ) { qint64 writeSize = destFile.write( &buffer[0], readSize ); if ( writeSize==-1 || writeSize==0 ) { m_pFileAccess->setStatusText( i18n("Error during file copy operation: Writing failed. Filename: %1",destName) ); return false; } readSize -= writeSize; } destFile.flush(); pp.setCurrent( (double)(srcFile.size()-srcSize)/srcFile.size(), false ); } srcFile.close(); destFile.close(); // Update the times of the destFile #ifdef _WIN32 struct _stat srcFileStatus; int statResult = ::_stat( srcName.toLocal8Bit().constData(), &srcFileStatus ); if (statResult==0) { _utimbuf destTimes; destTimes.actime = srcFileStatus.st_atime;/* time of last access */ destTimes.modtime = srcFileStatus.st_mtime;/* time of last modification */ _utime ( destName.toLocal8Bit().constData(), &destTimes ); _chmod ( destName.toLocal8Bit().constData(), srcFileStatus.st_mode ); } #else struct stat srcFileStatus; int statResult = ::stat( srcName.toLocal8Bit().constData(), &srcFileStatus ); if (statResult==0) { utimbuf destTimes; destTimes.actime = srcFileStatus.st_atime;/* time of last access */ destTimes.modtime = srcFileStatus.st_mtime;/* time of last modification */ utime ( destName.toLocal8Bit().constData(), &destTimes ); chmod ( destName.toLocal8Bit().constData(), srcFileStatus.st_mode ); } #endif return true; } bool wildcardMultiMatch( const QString& wildcard, const QString& testString, bool bCaseSensitive ) { static QHash s_patternMap; QStringList sl = wildcard.split( ";" ); for ( QStringList::Iterator it = sl.begin(); it != sl.end(); ++it ) { QHash::iterator patIt = s_patternMap.find( *it ); if ( patIt == s_patternMap.end() ) { QRegExp pattern( *it, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard ); patIt = s_patternMap.insert( *it, pattern ); } if ( patIt.value().exactMatch( testString ) ) return true; } return false; } // class CvsIgnoreList from Cervisia cvsdir.cpp // Copyright (C) 1999-2002 Bernd Gehrmann // with elements from class StringMatcher // Copyright (c) 2003 Andre Woebbeking // Modifications for KDiff3 by Joachim Eibl class CvsIgnoreList { public: CvsIgnoreList(){} void init(FileAccess& dir, bool bUseLocalCvsIgnore ); bool matches(const QString& fileName, bool bCaseSensitive ) const; private: void addEntriesFromString(const QString& str); void addEntriesFromFile(const QString& name); void addEntry(const QString& entry); QStringList m_exactPatterns; QStringList m_startPatterns; QStringList m_endPatterns; QStringList m_generalPatterns; }; void CvsIgnoreList::init( FileAccess& dir, bool bUseLocalCvsIgnore ) { static const char *ignorestr = ". .. core RCSLOG tags TAGS RCS SCCS .make.state " ".nse_depinfo #* .#* cvslog.* ,* CVS CVS.adm .del-* *.a *.olb *.o *.obj " "*.so *.Z *~ *.old *.elc *.ln *.bak *.BAK *.orig *.rej *.exe _$* *$"; addEntriesFromString(QString::fromLatin1(ignorestr)); addEntriesFromFile(QDir::homePath() + "/.cvsignore"); addEntriesFromString(QString::fromLocal8Bit(::getenv("CVSIGNORE"))); if (bUseLocalCvsIgnore) { FileAccess file(dir); file.addPath( ".cvsignore" ); int size = file.exists() ? file.sizeForReading() : 0; if ( size>0 ) { char* buf=new char[size]; if (buf!=0) { file.readFile( buf, size ); int pos1 = 0; for ( int pos = 0; pos<=size; ++pos ) { if( pos==size || buf[pos]==' ' || buf[pos]=='\t' || buf[pos]=='\n' || buf[pos]=='\r' ) { if (pos>pos1) { addEntry( QString::fromLatin1( &buf[pos1], pos-pos1 ) ); } ++pos1; } } delete buf; } } } } void CvsIgnoreList::addEntriesFromString(const QString& str) { int posLast(0); int pos; while ((pos = str.indexOf(' ', posLast)) >= 0) { if (pos > posLast) addEntry(str.mid(posLast, pos - posLast)); posLast = pos + 1; } if (posLast < static_cast(str.length())) addEntry(str.mid(posLast)); } void CvsIgnoreList::addEntriesFromFile(const QString &name) { QFile file(name); if( file.open(QIODevice::ReadOnly) ) { QTextStream stream(&file); while( !stream.atEnd() ) { addEntriesFromString(stream.readLine()); } } } void CvsIgnoreList::addEntry(const QString& pattern) { if (pattern != QString("!")) { if (pattern.isEmpty()) return; // The general match is general but slow. // Special tests for '*' and '?' at the beginning or end of a pattern // allow fast checks. // Count number of '*' and '?' unsigned int nofMetaCharacters = 0; const QChar* pos; pos = pattern.unicode(); const QChar* posEnd; posEnd=pos + pattern.length(); while (pos < posEnd) { if( *pos==QChar('*') || *pos==QChar('?') ) ++nofMetaCharacters; ++pos; } if ( nofMetaCharacters==0 ) { m_exactPatterns.append(pattern); } else if ( nofMetaCharacters==1 ) { if ( pattern.at(0) == QChar('*') ) { m_endPatterns.append( pattern.right( pattern.length() - 1) ); } else if (pattern.at(pattern.length() - 1) == QChar('*')) { m_startPatterns.append( pattern.left( pattern.length() - 1) ); } else { m_generalPatterns.append(pattern.toLocal8Bit()); } } else { m_generalPatterns.append(pattern.toLocal8Bit()); } } else { m_exactPatterns.clear(); m_startPatterns.clear(); m_endPatterns.clear(); m_generalPatterns.clear(); } } bool CvsIgnoreList::matches(const QString& text, bool bCaseSensitive ) const { if ( m_exactPatterns.indexOf(text) >=0 ) { return true; } QStringList::ConstIterator it; QStringList::ConstIterator itEnd; for ( it=m_startPatterns.begin(), itEnd=m_startPatterns.end(); it != itEnd; ++it) { if (text.startsWith(*it)) { return true; } } for ( it = m_endPatterns.begin(), itEnd=m_endPatterns.end(); it != itEnd; ++it) { if (text.mid( text.length() - (*it).length() )==*it) //(text.endsWith(*it)) { return true; } } /* for (QValueList::const_iterator it(m_generalPatterns.begin()), itEnd(m_generalPatterns.end()); it != itEnd; ++it) { if (::fnmatch(*it, text.local8Bit(), FNM_PATHNAME) == 0) { return true; } } */ for ( it = m_generalPatterns.begin(); it != m_generalPatterns.end(); ++it ) { QRegExp pattern( *it, bCaseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive, QRegExp::Wildcard ); if ( pattern.exactMatch( text ) ) return true; } return false; } static bool cvsIgnoreExists( t_DirectoryList* pDirList ) { t_DirectoryList::iterator i; for( i = pDirList->begin(); i!=pDirList->end(); ++i ) { if ( i->fileName()==".cvsignore" ) return true; } return false; } bool FileAccessJobHandler::listDir( t_DirectoryList* pDirList, bool bRecursive, bool bFindHidden, const QString& filePattern, const QString& fileAntiPattern, const QString& dirAntiPattern, bool bFollowDirLinks, bool bUseCvsIgnore ) { ProgressProxyExtender pp; m_pDirList = pDirList; m_pDirList->clear(); m_bFindHidden = bFindHidden; m_bRecursive = bRecursive; m_bFollowDirLinks = bFollowDirLinks; // Only relevant if bRecursive==true. m_fileAntiPattern = fileAntiPattern; m_filePattern = filePattern; m_dirAntiPattern = dirAntiPattern; if ( pp.wasCancelled() ) return true; // Cancelled is not an error. pp.setInformation( i18n("Reading directory: ") + m_pFileAccess->absoluteFilePath(), 0, false ); if( m_pFileAccess->isLocal() ) { QString currentPath = QDir::currentPath(); m_bSuccess = QDir::setCurrent( m_pFileAccess->absoluteFilePath() ); if ( m_bSuccess ) { #ifndef _WIN32 m_bSuccess = true; QDir dir( "." ); dir.setSorting( QDir::Name | QDir::DirsFirst ); dir.setFilter( QDir::Files | QDir::Dirs | /* from KDE3 QDir::TypeMaskDirs | */ QDir::Hidden | QDir::System ); QFileInfoList fiList = dir.entryInfoList(); if ( fiList.isEmpty() ) { // No Permission to read directory or other error. m_bSuccess = false; } else { foreach ( QFileInfo fi, fiList ) // for each file... { if ( fi.fileName() == "." || fi.fileName()==".." ) continue; FileAccess fa; fa.setFile( fi, m_pFileAccess ); pDirList->push_back( fa ); } } #else QString pattern ="*.*"; WIN32_FIND_DATA findData; Qt::HANDLE searchHandle = FindFirstFileW( (const wchar_t*)pattern.utf16(), &findData ); if ( searchHandle != INVALID_HANDLE_VALUE ) { QString absPath = m_pFileAccess->absoluteFilePath(); QString relPath = m_pFileAccess->filePath(); bool bFirst=true; while( ! pp.wasCancelled() ) { if (!bFirst) { if ( ! FindNextFileW(searchHandle,&findData) ) break; } bFirst = false; FileAccess fa; fa.m_filePath = QString::fromUtf16((const ushort*)findData.cFileName); if ( fa.m_filePath!="." && fa.m_filePath!=".." ) { fa.m_size = ( qint64( findData.nFileSizeHigh ) << 32 ) + findData.nFileSizeLow; FILETIME ft; SYSTEMTIME t; FileTimeToLocalFileTime( &findData.ftLastWriteTime, &ft ); FileTimeToSystemTime(&ft,&t); fa.m_modificationTime = QDateTime( QDate(t.wYear, t.wMonth, t.wDay), QTime(t.wHour, t.wMinute, t.wSecond) ); //FileTimeToLocalFileTime( &findData.ftLastAccessTime, &ft ); FileTimeToSystemTime(&ft,&t); //fa.m_accessTime = QDateTime( QDate(t.wYear, t.wMonth, t.wDay), QTime(t.wHour, t.wMinute, t.wSecond) ); //FileTimeToLocalFileTime( &findData.ftCreationTime, &ft ); FileTimeToSystemTime(&ft,&t); //fa.m_creationTime = QDateTime( QDate(t.wYear, t.wMonth, t.wDay), QTime(t.wHour, t.wMinute, t.wSecond) ); int a = findData.dwFileAttributes; fa.m_bWritable = ( a & FILE_ATTRIBUTE_READONLY) == 0; fa.m_bDir = ( a & FILE_ATTRIBUTE_DIRECTORY ) != 0; fa.m_bFile = !fa.m_bDir; fa.m_bHidden = ( a & FILE_ATTRIBUTE_HIDDEN) != 0; //fa.m_bExecutable = false; // Useless on windows fa.m_bExists = true; //fa.m_bReadable = true; //fa.m_bLocal = true; //fa.m_bValidData = true; fa.m_bSymLink = false; //fa.m_fileType = 0; //fa.m_filePath = fa.m_name; //fa.m_absoluteFilePath = absPath + "/" + fa.m_name; //fa.m_url.setPath( fa.m_absoluteFilePath ); if ( fa.d() ) fa.m_pData->m_pParent = m_pFileAccess; else fa.m_pParent = m_pFileAccess; pDirList->push_back( fa ); } } FindClose( searchHandle ); } else { QDir::setCurrent( currentPath ); // restore current path return false; } #endif } QDir::setCurrent( currentPath ); // restore current path } else { KIO::ListJob* pListJob=0; pListJob = KIO::listDir( m_pFileAccess->url(), KIO::HideProgressInfo, true /*bFindHidden*/ ); m_bSuccess = false; if ( pListJob!=0 ) { connect( pListJob, SIGNAL( entries( KIO::Job*, const KIO::UDSEntryList& ) ), this, SLOT( slotListDirProcessNewEntries( KIO::Job*, const KIO::UDSEntryList& )) ); connect( pListJob, SIGNAL( result( KJob* )), this, SLOT( slotSimpleJobResult(KJob*) ) ); connect( pListJob, SIGNAL( infoMessage(KJob*, const QString&)), &pp, SLOT( slotListDirInfoMessage(KJob*, const QString&) )); // This line makes the transfer via fish unreliable.:-( //connect( pListJob, SIGNAL(percent(KJob*,unsigned long)), this, SLOT(slotPercent(KJob*, unsigned long))); ProgressProxy::enterEventLoop( pListJob, i18n("Listing directory: %1",m_pFileAccess->prettyAbsPath()) ); } } CvsIgnoreList cvsIgnoreList; if ( bUseCvsIgnore ) { cvsIgnoreList.init( *m_pFileAccess, cvsIgnoreExists(pDirList) ); } #if defined(_WIN32) || defined(Q_OS_OS2) bool bCaseSensitive = false; #else bool bCaseSensitive = true; #endif // Now remove all entries that don't match: t_DirectoryList::iterator i; for( i = pDirList->begin(); i!=pDirList->end(); ) { t_DirectoryList::iterator i2=i; ++i2; QString fn = i->fileName(); if ( (!bFindHidden && i->isHidden() ) || (i->isFile() && ( !wildcardMultiMatch( filePattern, fn, bCaseSensitive ) || wildcardMultiMatch( fileAntiPattern, fn, bCaseSensitive ) ) ) || (i->isDir() && wildcardMultiMatch( dirAntiPattern, fn, bCaseSensitive ) ) || cvsIgnoreList.matches( fn, bCaseSensitive ) ) { // Remove it pDirList->erase( i ); i = i2; } else { ++i; } } if ( bRecursive ) { t_DirectoryList subDirsList; t_DirectoryList::iterator i; for( i = m_pDirList->begin(); i!=m_pDirList->end(); ++i ) { if ( i->isDir() && (!i->isSymLink() || m_bFollowDirLinks)) { t_DirectoryList dirList; i->listDir( &dirList, bRecursive, bFindHidden, filePattern, fileAntiPattern, dirAntiPattern, bFollowDirLinks, bUseCvsIgnore ); t_DirectoryList::iterator j; for( j = dirList.begin(); j!=dirList.end(); ++j ) { if ( j->parent()==0 ) j->m_filePath = i->fileName() + "/" + j->m_filePath; } // append data onto the main list subDirsList.splice( subDirsList.end(), dirList ); } } m_pDirList->splice( m_pDirList->end(), subDirsList ); } return m_bSuccess; } void FileAccessJobHandler::slotListDirProcessNewEntries( KIO::Job*, const KIO::UDSEntryList& l ) { KUrl parentUrl( m_pFileAccess->absoluteFilePath() ); KIO::UDSEntryList::ConstIterator i; for ( i=l.begin(); i!=l.end(); ++i ) { const KIO::UDSEntry& e = *i; FileAccess fa; fa.createData(); fa.m_pData->m_pParent = m_pFileAccess; fa.setUdsEntry( e ); if ( fa.fileName() != "." && fa.fileName() != ".." ) { fa.d()->m_url = parentUrl; fa.d()->m_url.addPath( fa.fileName() ); //fa.d()->m_absoluteFilePath = fa.url().url(); m_pDirList->push_back( fa ); } } } void ProgressProxyExtender::slotListDirInfoMessage( KJob*, const QString& msg ) { setInformation( msg, 0.0 ); } void ProgressProxyExtender::slotPercent( KJob*, unsigned long percent ) { setCurrent( percent/100.0 ); } //#include "fileaccess.moc" kdiff3-0.9.97/src-QT4/mergeresultwindow.h0000644000175100001440000003745712000244602017462 0ustar joachimusers/*************************************************************************** mergeresultwindow.h - description ------------------- begin : Mon Mar 18 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef MERGERESULTWINDOW_H #define MERGERESULTWINDOW_H #include "diff.h" #include #include #include #include class QPainter; class Overview : public QWidget { Q_OBJECT public: Overview( Options* pOptions ); void init( Diff3LineList* pDiff3LineList, bool bTripleDiff ); void reset(); void setRange( int firstLine, int pageHeight ); void setPaintingAllowed( bool bAllowPainting ); enum e_OverviewMode { eOMNormal, eOMAvsB, eOMAvsC, eOMBvsC }; void setOverviewMode( e_OverviewMode eOverviewMode ); e_OverviewMode getOverviewMode(); public slots: void setFirstLine(int firstLine); void slotRedraw(); signals: void setLine(int); private: const Diff3LineList* m_pDiff3LineList; Options* m_pOptions; bool m_bTripleDiff; int m_firstLine; int m_pageHeight; QPixmap m_pixmap; bool m_bPaintingAllowed; e_OverviewMode m_eOverviewMode; int m_nofLines; virtual void paintEvent( QPaintEvent* e ); virtual void mousePressEvent( QMouseEvent* e ); virtual void mouseMoveEvent( QMouseEvent* e ); void drawColumn( QPainter& p, e_OverviewMode eOverviewMode, int x, int w, int h, int nofLines ); }; enum e_MergeDetails { eDefault, eNoChange, eBChanged, eCChanged, eBCChanged, // conflict eBCChangedAndEqual, // possible conflict eBDeleted, eCDeleted, eBCDeleted, // possible conflict eBChanged_CDeleted, // conflict eCChanged_BDeleted, // conflict eBAdded, eCAdded, eBCAdded, // conflict eBCAddedAndEqual // possible conflict }; void mergeOneLine( const Diff3Line& d, e_MergeDetails& mergeDetails, bool& bConflict, bool& bLineRemoved, int& src, bool bTwoInputs ); enum e_MergeSrcSelector { A=1, B=2, C=3 }; class MergeResultWindow : public QWidget { Q_OBJECT public: MergeResultWindow( QWidget* pParent, Options* pOptions, QStatusBar* pStatusBar ); void init( const LineData* pLineDataA, int sizeA, const LineData* pLineDataB, int sizeB, const LineData* pLineDataC, int sizeC, const Diff3LineList* pDiff3LineList, TotalDiffStatus* pTotalDiffStatus ); void reset(); bool saveDocument( const QString& fileName, QTextCodec* pEncoding, e_LineEndStyle eLineEndStyle ); int getNrOfUnsolvedConflicts(int* pNrOfWhiteSpaceConflicts=0); void choose(int selector); void chooseGlobal(int selector, bool bConflictsOnly, bool bWhiteSpaceOnly ); int getNofColumns(); int getNofLines(); int getNofVisibleColumns(); int getNofVisibleLines(); QString getSelection(); void resetSelection(); void showNrOfConflicts(); bool isDeltaAboveCurrent(); bool isDeltaBelowCurrent(); bool isConflictAboveCurrent(); bool isConflictBelowCurrent(); bool isUnsolvedConflictAtCurrent(); bool isUnsolvedConflictAboveCurrent(); bool isUnsolvedConflictBelowCurrent(); bool findString( const QString& s, int& d3vLine, int& posInLine, bool bDirDown, bool bCaseSensitive ); void setSelection( int firstLine, int startPos, int lastLine, int endPos ); void setOverviewMode( Overview::e_OverviewMode eOverviewMode ); Overview::e_OverviewMode getOverviewMode(); public slots: void setFirstLine(int firstLine); void setFirstColumn(int firstCol); void slotGoCurrent(); void slotGoTop(); void slotGoBottom(); void slotGoPrevDelta(); void slotGoNextDelta(); void slotGoPrevUnsolvedConflict(); void slotGoNextUnsolvedConflict(); void slotGoPrevConflict(); void slotGoNextConflict(); void slotAutoSolve(); void slotUnsolve(); void slotMergeHistory(); void slotRegExpAutoMerge(); void slotSplitDiff( int firstD3lLineIdx, int lastD3lLineIdx ); void slotJoinDiffs( int firstD3lLineIdx, int lastD3lLineIdx ); void slotSetFastSelectorLine(int); void setPaintingAllowed(bool); void updateSourceMask(); signals: void scroll( int deltaX, int deltaY ); void modifiedChanged(bool bModified); void setFastSelectorRange( int line1, int nofLines ); void sourceMask( int srcMask, int enabledMask ); void resizeSignal(); void selectionEnd(); void newSelection(); void updateAvailabilities(); void showPopupMenu( const QPoint& point ); void noRelevantChangesDetected(); private: void merge(bool bAutoSolve, int defaultSelector, bool bConflictsOnly=false, bool bWhiteSpaceOnly=false ); QString getString( int lineIdx ); Options* m_pOptions; const LineData* m_pldA; const LineData* m_pldB; const LineData* m_pldC; int m_sizeA; int m_sizeB; int m_sizeC; const Diff3LineList* m_pDiff3LineList; TotalDiffStatus* m_pTotalDiffStatus; bool m_bPaintingAllowed; int m_delayedDrawTimer; Overview::e_OverviewMode m_eOverviewMode; private: class MergeEditLine { public: MergeEditLine(Diff3LineList::const_iterator i, int src=0){m_id3l=i; m_src=src; m_bLineRemoved=false; } void setConflict() { m_src=0; m_bLineRemoved=false; m_str=QString(); } bool isConflict() { return m_src==0 && !m_bLineRemoved && m_str.isNull(); } void setRemoved(int src=0) { m_src=src; m_bLineRemoved=true; m_str=QString(); } bool isRemoved() { return m_bLineRemoved; } bool isEditableText() { return !isConflict() && !isRemoved(); } void setString( const QString& s ){ m_str=s; m_bLineRemoved=false; m_src=0; } QString getString( const MergeResultWindow* ); bool isModified() { return ! m_str.isNull() || (m_bLineRemoved && m_src==0); } void setSource( int src, bool bLineRemoved ) { m_src=src; m_bLineRemoved =bLineRemoved; } int src() { return m_src; } Diff3LineList::const_iterator id3l(){return m_id3l;} // getString() is implemented as MergeResultWindow::getString() private: Diff3LineList::const_iterator m_id3l; int m_src; // 1, 2 or 3 for A, B or C respectively, or 0 when line is from neither source. QString m_str; // String when modified by user or null-string when orig data is used. bool m_bLineRemoved; }; class MergeEditLineList : private std::list { // I want to know the size immediately! private: typedef std::list BASE; int m_size; int* m_pTotalSize; public: typedef std::list::iterator iterator; typedef std::list::reverse_iterator reverse_iterator; typedef std::list::const_iterator const_iterator; MergeEditLineList(){m_size=0; m_pTotalSize=0; } void clear() { ds(-m_size); BASE::clear(); } void push_back( const MergeEditLine& m) { ds(+1); BASE::push_back(m); } void push_front( const MergeEditLine& m) { ds(+1); BASE::push_front(m); } void pop_back() { ds(-1); BASE::pop_back(); } iterator erase( iterator i ) { ds(-1); return BASE::erase(i); } iterator insert( iterator i, const MergeEditLine& m ) { ds(+1); return BASE::insert(i,m); } int size(){ if (!m_pTotalSize) m_size = BASE::size(); return m_size; } iterator begin(){return BASE::begin();} iterator end(){return BASE::end();} reverse_iterator rbegin(){return BASE::rbegin();} reverse_iterator rend(){return BASE::rend();} MergeEditLine& front(){return BASE::front();} MergeEditLine& back(){return BASE::back();} bool empty() { return m_size==0; } void splice(iterator destPos, MergeEditLineList& srcList, iterator srcFirst, iterator srcLast) { int* pTotalSize = getTotalSizePtr() ? getTotalSizePtr() : srcList.getTotalSizePtr(); srcList.setTotalSizePtr(0); // Force size-recalc after splice, because splice doesn't handle size-tracking setTotalSizePtr(0); BASE::splice( destPos, srcList, srcFirst, srcLast ); srcList.setTotalSizePtr( pTotalSize ); setTotalSizePtr( pTotalSize ); } void setTotalSizePtr(int* pTotalSize) { if ( pTotalSize==0 && m_pTotalSize!=0 ) { *m_pTotalSize -= size(); } else if ( pTotalSize!=0 && m_pTotalSize==0 ) { *pTotalSize += size(); } m_pTotalSize = pTotalSize; } int* getTotalSizePtr() { return m_pTotalSize; } private: void ds(int deltaSize) { m_size+=deltaSize; if (m_pTotalSize!=0) *m_pTotalSize+=deltaSize; } }; friend class MergeEditLine; struct MergeLine { MergeLine() { srcSelect=0; mergeDetails=eDefault; d3lLineIdx = -1; srcRangeLength=0; bConflict=false; bDelta=false; bWhiteSpaceConflict=false; } Diff3LineList::const_iterator id3l; int d3lLineIdx; // Needed to show the correct window pos. int srcRangeLength; // how many src-lines have this properties e_MergeDetails mergeDetails; bool bConflict; bool bWhiteSpaceConflict; bool bDelta; int srcSelect; MergeEditLineList mergeEditLineList; void split( MergeLine& ml2, int d3lLineIdx2 ) // The caller must insert the ml2 after this ml in the m_mergeLineList { if ( d3lLineIdx2= d3lLineIdx + srcRangeLength ) return; //Error ml2.mergeDetails = mergeDetails; ml2.bConflict = bConflict; ml2.bWhiteSpaceConflict = bWhiteSpaceConflict; ml2.bDelta = bDelta; ml2.srcSelect = srcSelect; ml2.d3lLineIdx = d3lLineIdx2; ml2.srcRangeLength = srcRangeLength - (d3lLineIdx2-d3lLineIdx); srcRangeLength = d3lLineIdx2-d3lLineIdx; // current MergeLine controls fewer lines ml2.id3l = id3l; for(int i=0; iid3l()==ml2.id3l) { ml2.mergeEditLineList.splice( ml2.mergeEditLineList.begin(), mergeEditLineList, i, mergeEditLineList.end() ); return; } } ml2.mergeEditLineList.setTotalSizePtr( mergeEditLineList.getTotalSizePtr() ); ml2.mergeEditLineList.push_back(MergeEditLine(ml2.id3l)); } void join( MergeLine& ml2 ) // The caller must remove the ml2 from the m_mergeLineList after this call { srcRangeLength += ml2.srcRangeLength; ml2.mergeEditLineList.clear(); mergeEditLineList.clear(); mergeEditLineList.push_back(MergeEditLine(id3l)); // Create a simple conflict if ( ml2.bConflict ) bConflict = true; if ( !ml2.bWhiteSpaceConflict ) bWhiteSpaceConflict = false; if ( ml2.bDelta ) bDelta = true; } }; private: static bool sameKindCheck( const MergeLine& ml1, const MergeLine& ml2 ); struct HistoryMapEntry { MergeEditLineList mellA; MergeEditLineList mellB; MergeEditLineList mellC; MergeEditLineList& choice( bool bThreeInputs ); bool staysInPlace( bool bThreeInputs, Diff3LineList::const_iterator& iHistoryEnd ); }; typedef std::map HistoryMap; void collectHistoryInformation( int src, Diff3LineList::const_iterator iHistoryBegin, Diff3LineList::const_iterator iHistoryEnd, HistoryMap& historyMap, std::list< HistoryMap::iterator >& hitList ); typedef std::list MergeLineList; MergeLineList m_mergeLineList; MergeLineList::iterator m_currentMergeLineIt; bool isItAtEnd( bool bIncrement, MergeLineList::iterator i ) { if ( bIncrement ) return i!=m_mergeLineList.end(); else return i!=m_mergeLineList.begin(); } int m_currentPos; bool checkOverviewIgnore(MergeLineList::iterator &i); enum e_Direction { eUp, eDown }; enum e_EndPoint { eDelta, eConflict, eUnsolvedConflict, eLine, eEnd }; void go( e_Direction eDir, e_EndPoint eEndPoint ); void calcIteratorFromLineNr( int line, MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt ); MergeLineList::iterator splitAtDiff3LineIdx( int d3lLineIdx ); virtual void paintEvent( QPaintEvent* e ); void myUpdate(int afterMilliSecs); virtual void timerEvent(QTimerEvent*); void writeLine( MyPainter& p, int line, const QString& str, int srcSelect, e_MergeDetails mergeDetails, int rangeMark, bool bUserModified, bool bLineRemoved, bool bWhiteSpaceConflict ); void setFastSelector(MergeLineList::iterator i); void convertToLinePos( int x, int y, int& line, int& pos ); bool event(QEvent*); virtual void mousePressEvent ( QMouseEvent* e ); virtual void mouseDoubleClickEvent ( QMouseEvent* e ); virtual void mouseReleaseEvent ( QMouseEvent * ); virtual void mouseMoveEvent ( QMouseEvent * ); virtual void resizeEvent( QResizeEvent* e ); virtual void keyPressEvent( QKeyEvent* e ); virtual void wheelEvent( QWheelEvent* e ); virtual void focusInEvent( QFocusEvent* e ); QPixmap m_pixmap; int m_firstLine; int m_firstColumn; int m_nofColumns; int m_nofLines; int m_totalSize; //Same as m_nofLines, but calculated differently bool m_bMyUpdate; bool m_bInsertMode; bool m_bModified; void setModified(bool bModified=true); int m_scrollDeltaX; int m_scrollDeltaY; int m_cursorXPos; int m_cursorYPos; int m_cursorOldXPos; bool m_bCursorOn; // blinking on and off each second QTimer m_cursorTimer; bool m_bCursorUpdate; QStatusBar* m_pStatusBar; Selection m_selection; bool deleteSelection2( QString& str, int& x, int& y, MergeLineList::iterator& mlIt, MergeEditLineList::iterator& melIt ); bool doRelevantChangesExist(); public slots: void deleteSelection(); void pasteClipboard(bool bFromSelection); private slots: void slotCursorUpdate(); }; class QLineEdit; class QTextCodec; class QComboBox; class QLabel; class WindowTitleWidget : public QWidget { Q_OBJECT private: QLabel* m_pLabel; QLineEdit* m_pFileNameLineEdit; //QPushButton* m_pBrowseButton; QLabel* m_pModifiedLabel; QLabel* m_pLineEndStyleLabel; QComboBox* m_pLineEndStyleSelector; QLabel* m_pEncodingLabel; QComboBox* m_pEncodingSelector; Options* m_pOptions; public: WindowTitleWidget(Options* pOptions); QTextCodec* getEncoding(); void setFileName(const QString& fileName ); QString getFileName(); void setEncodings( QTextCodec* pCodecForA, QTextCodec* pCodecForB, QTextCodec* pCodecForC ); void setEncoding( QTextCodec* pCodec ); void setLineEndStyles( e_LineEndStyle eLineEndStyleA, e_LineEndStyle eLineEndStyleB, e_LineEndStyle eLineEndStyleC); e_LineEndStyle getLineEndStyle(); bool eventFilter( QObject* o, QEvent* e ); public slots: void slotSetModified( bool bModified ); //private slots: // void slotBrowseButtonClicked(); }; #endif kdiff3-0.9.97/src-QT4/guiutils.h0000644000175100001440000001033611626145612015542 0ustar joachimusers/*************************************************************************** kdiff3.h - description ------------------- begin : March 26 17:44 CEST 2002 copyright : (c) 2008 by Valentin Rusu email : kde at rusu.info ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 3 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include #include namespace KDiff3 { template T* createAction( const QString& text, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName); template <> inline KAction* createAction( const QString& text, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { assert( ac != 0 ); KAction* theAction = ac->addAction( actionName ); theAction->setText( text ); QObject::connect( theAction, SIGNAL( triggered() ), receiver, slot ); return theAction; } template <> inline KToggleAction* createAction( const QString& text, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { assert( ac != 0 ); KToggleAction* theAction = new KToggleAction(ac); ac->addAction( actionName, theAction ); theAction->setText( text ); QObject::connect( theAction, SIGNAL( triggered(bool) ), receiver, slot ); return theAction; } template T* createAction( const QString& text, const KShortcut& shortcut, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { T* theAction = createAction( text, receiver, slot, ac, actionName ); theAction->setShortcut( shortcut ); return theAction; } template T* createAction( const QString& text, const QIcon& icon, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { T* theAction = createAction( text, receiver, slot, ac, actionName ); theAction->setIcon( icon ); return theAction; } template T* createAction( const QString& text, const QIcon& icon, const QString& iconText, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { T* theAction = createAction( text, receiver, slot, ac, actionName ); theAction->setIcon( icon ); theAction->setIconText( iconText ); return theAction; } template T* createAction( const QString& text, const QIcon& icon, const KShortcut& shortcut, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { T* theAction = createAction( text, shortcut, receiver, slot, ac, actionName ); theAction->setIcon( icon ); return theAction; } template T* createAction( const QString& text, const QIcon& icon, const QString& iconText, const KShortcut& shortcut, const QObject* receiver, const char* slot, KActionCollection* ac, const char* actionName) { T* theAction = createAction( text, shortcut, receiver, slot, ac, actionName ); theAction->setIcon( icon ); theAction->setIconText( iconText ); return theAction; } } kdiff3-0.9.97/src-QT4/gnudiff_analyze.cpp0000644000175100001440000006203411626145613017400 0ustar joachimusers/* Analyze file differences for GNU DIFF. Modified for KDiff3 by Joachim Eibl 2003. The original file was part of GNU DIFF. Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 Free Software Foundation, Inc. GNU DIFF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU DIFF is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. */ /* The basic algorithm is described in: "An O(ND) Difference Algorithm and its Variations", Eugene Myers, Algorithmica Vol. 1 No. 2, 1986, pp. 251-266; see especially section 4.2, which describes the variation used below. Unless the --minimal option is specified, this code uses the TOO_EXPENSIVE heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N) at the price of producing suboptimal output for large inputs with many differences. The basic algorithm was independently discovered as described in: "Algorithms for Approximate String Matching", E. Ukkonen, Information and Control Vol. 64, 1985, pp. 100-118. */ #define GDIFF_MAIN #include "gnudiff_diff.h" //#include #include static lin *xvec, *yvec; /* Vectors being compared. */ static lin *fdiag; /* Vector, indexed by diagonal, containing 1 + the X coordinate of the point furthest along the given diagonal in the forward search of the edit matrix. */ static lin *bdiag; /* Vector, indexed by diagonal, containing the X coordinate of the point furthest along the given diagonal in the backward search of the edit matrix. */ static lin too_expensive; /* Edit scripts longer than this are too expensive to compute. */ #define SNAKE_LIMIT 20 /* Snakes bigger than this are considered `big'. */ struct partition { lin xmid, ymid; /* Midpoints of this partition. */ bool lo_minimal; /* Nonzero if low half will be analyzed minimally. */ bool hi_minimal; /* Likewise for high half. */ }; /* Find the midpoint of the shortest edit script for a specified portion of the two files. Scan from the beginnings of the files, and simultaneously from the ends, doing a breadth-first search through the space of edit-sequence. When the two searches meet, we have found the midpoint of the shortest edit sequence. If FIND_MINIMAL is nonzero, find the minimal edit script regardless of expense. Otherwise, if the search is too expensive, use heuristics to stop the search and report a suboptimal answer. Set PART->(xmid,ymid) to the midpoint (XMID,YMID). The diagonal number XMID - YMID equals the number of inserted lines minus the number of deleted lines (counting only lines before the midpoint). Return the approximate edit cost; this is the total number of lines inserted or deleted (counting only lines before the midpoint), unless a heuristic is used to terminate the search prematurely. Set PART->lo_minimal to true iff the minimal edit script for the left half of the partition is known; similarly for PART->hi_minimal. This function assumes that the first lines of the specified portions of the two files do not match, and likewise that the last lines do not match. The caller must trim matching lines from the beginning and end of the portions it is going to specify. If we return the "wrong" partitions, the worst this can do is cause suboptimal diff output. It cannot cause incorrect diff output. */ lin GnuDiff::diag (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal, struct partition *part) { lin *const fd = fdiag; /* Give the compiler a chance. */ lin *const bd = bdiag; /* Additional help for the compiler. */ lin const *const xv = xvec; /* Still more help for the compiler. */ lin const *const yv = yvec; /* And more and more . . . */ lin const dmin = xoff - ylim; /* Minimum valid diagonal. */ lin const dmax = xlim - yoff; /* Maximum valid diagonal. */ lin const fmid = xoff - yoff; /* Center diagonal of top-down search. */ lin const bmid = xlim - ylim; /* Center diagonal of bottom-up search. */ lin fmin = fmid, fmax = fmid; /* Limits of top-down search. */ lin bmin = bmid, bmax = bmid; /* Limits of bottom-up search. */ lin c; /* Cost. */ bool odd = (fmid - bmid) & 1; /* True if southeast corner is on an odd diagonal with respect to the northwest. */ fd[fmid] = xoff; bd[bmid] = xlim; for (c = 1;; ++c) { lin d; /* Active diagonal. */ bool big_snake = 0; /* Extend the top-down search by an edit step in each diagonal. */ fmin > dmin ? fd[--fmin - 1] = -1 : ++fmin; fmax < dmax ? fd[++fmax + 1] = -1 : --fmax; for (d = fmax; d >= fmin; d -= 2) { lin x, y, oldx, tlo = fd[d - 1], thi = fd[d + 1]; if (tlo >= thi) x = tlo + 1; else x = thi; oldx = x; y = x - d; while (x < xlim && y < ylim && xv[x] == yv[y]) ++x, ++y; if (x - oldx > SNAKE_LIMIT) big_snake = 1; fd[d] = x; if (odd && bmin <= d && d <= bmax && bd[d] <= x) { part->xmid = x; part->ymid = y; part->lo_minimal = part->hi_minimal = 1; return 2 * c - 1; } } /* Similarly extend the bottom-up search. */ bmin > dmin ? bd[--bmin - 1] = LIN_MAX : ++bmin; bmax < dmax ? bd[++bmax + 1] = LIN_MAX : --bmax; for (d = bmax; d >= bmin; d -= 2) { lin x, y, oldx, tlo = bd[d - 1], thi = bd[d + 1]; if (tlo < thi) x = tlo; else x = thi - 1; oldx = x; y = x - d; while (x > xoff && y > yoff && xv[x - 1] == yv[y - 1]) --x, --y; if (oldx - x > SNAKE_LIMIT) big_snake = 1; bd[d] = x; if (!odd && fmin <= d && d <= fmax && x <= fd[d]) { part->xmid = x; part->ymid = y; part->lo_minimal = part->hi_minimal = 1; return 2 * c; } } if (find_minimal) continue; /* Heuristic: check occasionally for a diagonal that has made lots of progress compared with the edit distance. If we have any such, find the one that has made the most progress and return it as if it had succeeded. With this heuristic, for files with a constant small density of changes, the algorithm is linear in the file size. */ if (200 < c && big_snake && speed_large_files) { lin best; best = 0; for (d = fmax; d >= fmin; d -= 2) { lin dd = d - fmid; lin x = fd[d]; lin y = x - d; lin v = (x - xoff) * 2 - dd; if (v > 12 * (c + (dd < 0 ? -dd : dd))) { if (v > best && xoff + SNAKE_LIMIT <= x && x < xlim && yoff + SNAKE_LIMIT <= y && y < ylim) { /* We have a good enough best diagonal; now insist that it end with a significant snake. */ int k; for (k = 1; xv[x - k] == yv[y - k]; k++) if (k == SNAKE_LIMIT) { best = v; part->xmid = x; part->ymid = y; break; } } } } if (best > 0) { part->lo_minimal = 1; part->hi_minimal = 0; return 2 * c - 1; } best = 0; for (d = bmax; d >= bmin; d -= 2) { lin dd = d - bmid; lin x = bd[d]; lin y = x - d; lin v = (xlim - x) * 2 + dd; if (v > 12 * (c + (dd < 0 ? -dd : dd))) { if (v > best && xoff < x && x <= xlim - SNAKE_LIMIT && yoff < y && y <= ylim - SNAKE_LIMIT) { /* We have a good enough best diagonal; now insist that it end with a significant snake. */ int k; for (k = 0; xv[x + k] == yv[y + k]; k++) if (k == SNAKE_LIMIT - 1) { best = v; part->xmid = x; part->ymid = y; break; } } } } if (best > 0) { part->lo_minimal = 0; part->hi_minimal = 1; return 2 * c - 1; } } /* Heuristic: if we've gone well beyond the call of duty, give up and report halfway between our best results so far. */ if (c >= too_expensive) { lin fxybest, fxbest; lin bxybest, bxbest; fxbest = bxbest = 0; /* Pacify `gcc -Wall'. */ /* Find forward diagonal that maximizes X + Y. */ fxybest = -1; for (d = fmax; d >= fmin; d -= 2) { lin x = MIN (fd[d], xlim); lin y = x - d; if (ylim < y) x = ylim + d, y = ylim; if (fxybest < x + y) { fxybest = x + y; fxbest = x; } } /* Find backward diagonal that minimizes X + Y. */ bxybest = LIN_MAX; for (d = bmax; d >= bmin; d -= 2) { lin x = MAX (xoff, bd[d]); lin y = x - d; if (y < yoff) x = yoff + d, y = yoff; if (x + y < bxybest) { bxybest = x + y; bxbest = x; } } /* Use the better of the two diagonals. */ if ((xlim + ylim) - bxybest < fxybest - (xoff + yoff)) { part->xmid = fxbest; part->ymid = fxybest - fxbest; part->lo_minimal = 1; part->hi_minimal = 0; } else { part->xmid = bxbest; part->ymid = bxybest - bxbest; part->lo_minimal = 0; part->hi_minimal = 1; } return 2 * c - 1; } } } /* Compare in detail contiguous subsequences of the two files which are known, as a whole, to match each other. The results are recorded in the vectors files[N].changed, by storing 1 in the element for each line that is an insertion or deletion. The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1. Note that XLIM, YLIM are exclusive bounds. All line numbers are origin-0 and discarded lines are not counted. If FIND_MINIMAL, find a minimal difference no matter how expensive it is. */ void GnuDiff::compareseq (lin xoff, lin xlim, lin yoff, lin ylim, bool find_minimal) { lin * const xv = xvec; /* Help the compiler. */ lin * const yv = yvec; /* Slide down the bottom initial diagonal. */ while (xoff < xlim && yoff < ylim && xv[xoff] == yv[yoff]) ++xoff, ++yoff; /* Slide up the top initial diagonal. */ while (xlim > xoff && ylim > yoff && xv[xlim - 1] == yv[ylim - 1]) --xlim, --ylim; /* Handle simple cases. */ if (xoff == xlim) while (yoff < ylim) files[1].changed[files[1].realindexes[yoff++]] = 1; else if (yoff == ylim) while (xoff < xlim) files[0].changed[files[0].realindexes[xoff++]] = 1; else { lin c; struct partition part; /* Find a point of correspondence in the middle of the files. */ c = diag (xoff, xlim, yoff, ylim, find_minimal, &part); if (c == 1) { /* This should be impossible, because it implies that one of the two subsequences is empty, and that case was handled above without calling `diag'. Let's verify that this is true. */ abort (); #if 0 /* The two subsequences differ by a single insert or delete; record it and we are done. */ if (part.xmid - part.ymid < xoff - yoff) files[1].changed[files[1].realindexes[part.ymid - 1]] = 1; else files[0].changed[files[0].realindexes[part.xmid]] = 1; #endif } else { /* Use the partitions to split this problem into subproblems. */ compareseq (xoff, part.xmid, yoff, part.ymid, part.lo_minimal); compareseq (part.xmid, xlim, part.ymid, ylim, part.hi_minimal); } } } /* Discard lines from one file that have no matches in the other file. A line which is discarded will not be considered by the actual comparison algorithm; it will be as if that line were not in the file. The file's `realindexes' table maps virtual line numbers (which don't count the discarded lines) into real line numbers; this is how the actual comparison algorithm produces results that are comprehensible when the discarded lines are counted. When we discard a line, we also mark it as a deletion or insertion so that it will be printed in the output. */ void GnuDiff::discard_confusing_lines (struct file_data filevec[]) { int f; lin i; char *discarded[2]; lin *equiv_count[2]; lin *p; /* Allocate our results. */ p = (lin*)xmalloc ((filevec[0].buffered_lines + filevec[1].buffered_lines) * (2 * sizeof *p)); for (f = 0; f < 2; f++) { filevec[f].undiscarded = p; p += filevec[f].buffered_lines; filevec[f].realindexes = p; p += filevec[f].buffered_lines; } /* Set up equiv_count[F][I] as the number of lines in file F that fall in equivalence class I. */ p = (lin*)zalloc (filevec[0].equiv_max * (2 * sizeof *p)); equiv_count[0] = p; equiv_count[1] = p + filevec[0].equiv_max; for (i = 0; i < filevec[0].buffered_lines; ++i) ++equiv_count[0][filevec[0].equivs[i]]; for (i = 0; i < filevec[1].buffered_lines; ++i) ++equiv_count[1][filevec[1].equivs[i]]; /* Set up tables of which lines are going to be discarded. */ discarded[0] = (char*)zalloc (filevec[0].buffered_lines + filevec[1].buffered_lines); discarded[1] = discarded[0] + filevec[0].buffered_lines; /* Mark to be discarded each line that matches no line of the other file. If a line matches many lines, mark it as provisionally discardable. */ for (f = 0; f < 2; f++) { size_t end = filevec[f].buffered_lines; char *discards = discarded[f]; lin *counts = equiv_count[1 - f]; lin *equivs = filevec[f].equivs; size_t many = 5; size_t tem = end / 64; /* Multiply MANY by approximate square root of number of lines. That is the threshold for provisionally discardable lines. */ while ((tem = tem >> 2) > 0) many *= 2; for (i = 0; i < (lin)end; i++) { lin nmatch; if (equivs[i] == 0) continue; nmatch = counts[equivs[i]]; if (nmatch == 0) discards[i] = 1; else if (nmatch > (lin)many) discards[i] = 2; } } /* Don't really discard the provisional lines except when they occur in a run of discardables, with nonprovisionals at the beginning and end. */ for (f = 0; f < 2; f++) { lin end = filevec[f].buffered_lines; register char *discards = discarded[f]; for (i = 0; i < end; i++) { /* Cancel provisional discards not in middle of run of discards. */ if (discards[i] == 2) discards[i] = 0; else if (discards[i] != 0) { /* We have found a nonprovisional discard. */ register lin j; lin length; lin provisional = 0; /* Find end of this run of discardable lines. Count how many are provisionally discardable. */ for (j = i; j < end; j++) { if (discards[j] == 0) break; if (discards[j] == 2) ++provisional; } /* Cancel provisional discards at end, and shrink the run. */ while (j > i && discards[j - 1] == 2) discards[--j] = 0, --provisional; /* Now we have the length of a run of discardable lines whose first and last are not provisional. */ length = j - i; /* If 1/4 of the lines in the run are provisional, cancel discarding of all provisional lines in the run. */ if (provisional * 4 > length) { while (j > i) if (discards[--j] == 2) discards[j] = 0; } else { register lin consec; lin minimum = 1; lin tem = length >> 2; /* MINIMUM is approximate square root of LENGTH/4. A subrun of two or more provisionals can stand when LENGTH is at least 16. A subrun of 4 or more can stand when LENGTH >= 64. */ while (0 < (tem >>= 2)) minimum <<= 1; minimum++; /* Cancel any subrun of MINIMUM or more provisionals within the larger run. */ for (j = 0, consec = 0; j < length; j++) if (discards[i + j] != 2) consec = 0; else if (minimum == ++consec) /* Back up to start of subrun, to cancel it all. */ j -= consec; else if (minimum < consec) discards[i + j] = 0; /* Scan from beginning of run until we find 3 or more nonprovisionals in a row or until the first nonprovisional at least 8 lines in. Until that point, cancel any provisionals. */ for (j = 0, consec = 0; j < length; j++) { if (j >= 8 && discards[i + j] == 1) break; if (discards[i + j] == 2) consec = 0, discards[i + j] = 0; else if (discards[i + j] == 0) consec = 0; else consec++; if (consec == 3) break; } /* I advances to the last line of the run. */ i += length - 1; /* Same thing, from end. */ for (j = 0, consec = 0; j < length; j++) { if (j >= 8 && discards[i - j] == 1) break; if (discards[i - j] == 2) consec = 0, discards[i - j] = 0; else if (discards[i - j] == 0) consec = 0; else consec++; if (consec == 3) break; } } } } } /* Actually discard the lines. */ for (f = 0; f < 2; f++) { char *discards = discarded[f]; lin end = filevec[f].buffered_lines; lin j = 0; for (i = 0; i < end; ++i) if (minimal || discards[i] == 0) { filevec[f].undiscarded[j] = filevec[f].equivs[i]; filevec[f].realindexes[j++] = i; } else filevec[f].changed[i] = 1; filevec[f].nondiscarded_lines = j; } free (discarded[0]); free (equiv_count[0]); } /* Adjust inserts/deletes of identical lines to join changes as much as possible. We do something when a run of changed lines include a line at one end and have an excluded, identical line at the other. We are free to choose which identical line is included. `compareseq' usually chooses the one at the beginning, but usually it is cleaner to consider the following identical line to be the "change". */ void GnuDiff::shift_boundaries (struct file_data filevec[]) { int f; for (f = 0; f < 2; f++) { bool *changed = filevec[f].changed; bool const *other_changed = filevec[1 - f].changed; lin const *equivs = filevec[f].equivs; lin i = 0; lin j = 0; lin i_end = filevec[f].buffered_lines; while (1) { lin runlength, start, corresponding; /* Scan forwards to find beginning of another run of changes. Also keep track of the corresponding point in the other file. */ while (i < i_end && !changed[i]) { while (other_changed[j++]) continue; i++; } if (i == i_end) break; start = i; /* Find the end of this run of changes. */ while (changed[++i]) continue; while (other_changed[j]) j++; do { /* Record the length of this run of changes, so that we can later determine whether the run has grown. */ runlength = i - start; /* Move the changed region back, so long as the previous unchanged line matches the last changed one. This merges with previous changed regions. */ while (start && equivs[start - 1] == equivs[i - 1]) { changed[--start] = 1; changed[--i] = 0; while (changed[start - 1]) start--; while (other_changed[--j]) continue; } /* Set CORRESPONDING to the end of the changed run, at the last point where it corresponds to a changed run in the other file. CORRESPONDING == I_END means no such point has been found. */ corresponding = other_changed[j - 1] ? i : i_end; /* Move the changed region forward, so long as the first changed line matches the following unchanged one. This merges with following changed regions. Do this second, so that if there are no merges, the changed region is moved forward as far as possible. */ while (i != i_end && equivs[start] == equivs[i]) { changed[start++] = 0; changed[i++] = 1; while (changed[i]) i++; while (other_changed[++j]) corresponding = i; } } while (runlength != i - start); /* If possible, move the fully-merged run of changes back to a corresponding run in the other file. */ while (corresponding < i) { changed[--start] = 1; changed[--i] = 0; while (other_changed[--j]) continue; } } } } /* Cons an additional entry onto the front of an edit script OLD. LINE0 and LINE1 are the first affected lines in the two files (origin 0). DELETED is the number of lines deleted here from file 0. INSERTED is the number of lines inserted here in file 1. If DELETED is 0 then LINE0 is the number of the line before which the insertion was done; vice versa for INSERTED and LINE1. */ GnuDiff::change* GnuDiff::add_change (lin line0, lin line1, lin deleted, lin inserted, struct change *old) { struct change *newChange = (change*) xmalloc (sizeof *newChange); newChange->line0 = line0; newChange->line1 = line1; newChange->inserted = inserted; newChange->deleted = deleted; newChange->link = old; return newChange; } /* Scan the tables of which lines are inserted and deleted, producing an edit script in reverse order. */ GnuDiff::change* GnuDiff::build_reverse_script (struct file_data const filevec[]) { struct change *script = 0; bool *changed0 = filevec[0].changed; bool *changed1 = filevec[1].changed; lin len0 = filevec[0].buffered_lines; lin len1 = filevec[1].buffered_lines; /* Note that changedN[len0] does exist, and is 0. */ lin i0 = 0, i1 = 0; while (i0 < len0 || i1 < len1) { if (changed0[i0] | changed1[i1]) { lin line0 = i0, line1 = i1; /* Find # lines changed here in each file. */ while (changed0[i0]) ++i0; while (changed1[i1]) ++i1; /* Record this change. */ script = add_change (line0, line1, i0 - line0, i1 - line1, script); } /* We have reached lines in the two files that match each other. */ i0++, i1++; } return script; } /* Scan the tables of which lines are inserted and deleted, producing an edit script in forward order. */ GnuDiff::change* GnuDiff::build_script (struct file_data const filevec[]) { struct change *script = 0; bool *changed0 = filevec[0].changed; bool *changed1 = filevec[1].changed; lin i0 = filevec[0].buffered_lines, i1 = filevec[1].buffered_lines; /* Note that changedN[-1] does exist, and is 0. */ while (i0 >= 0 || i1 >= 0) { if (changed0[i0 - 1] | changed1[i1 - 1]) { lin line0 = i0, line1 = i1; /* Find # lines changed here in each file. */ while (changed0[i0 - 1]) --i0; while (changed1[i1 - 1]) --i1; /* Record this change. */ script = add_change (i0, i1, line0 - i0, line1 - i1, script); } /* We have reached lines in the two files that match each other. */ i0--, i1--; } return script; } /* Report the differences of two files. */ GnuDiff::change* GnuDiff::diff_2_files (struct comparison *cmp) { lin diags; int f; //struct change *e, *p; struct change *script; int changes; read_files (cmp->file, files_can_be_treated_as_binary); { /* Allocate vectors for the results of comparison: a flag for each line of each file, saying whether that line is an insertion or deletion. Allocate an extra element, always 0, at each end of each vector. */ size_t s = cmp->file[0].buffered_lines + cmp->file[1].buffered_lines + 4; bool *flag_space = (bool*)zalloc (s * sizeof(*flag_space)); cmp->file[0].changed = flag_space + 1; cmp->file[1].changed = flag_space + cmp->file[0].buffered_lines + 3; /* Some lines are obviously insertions or deletions because they don't match anything. Detect them now, and avoid even thinking about them in the main comparison algorithm. */ discard_confusing_lines (cmp->file); /* Now do the main comparison algorithm, considering just the undiscarded lines. */ xvec = cmp->file[0].undiscarded; yvec = cmp->file[1].undiscarded; diags = (cmp->file[0].nondiscarded_lines + cmp->file[1].nondiscarded_lines + 3); fdiag = (lin*)xmalloc (diags * (2 * sizeof *fdiag)); bdiag = fdiag + diags; fdiag += cmp->file[1].nondiscarded_lines + 1; bdiag += cmp->file[1].nondiscarded_lines + 1; /* Set TOO_EXPENSIVE to be approximate square root of input size, bounded below by 256. */ too_expensive = 1; for (; diags != 0; diags >>= 2) too_expensive <<= 1; too_expensive = MAX (256, too_expensive); files[0] = cmp->file[0]; files[1] = cmp->file[1]; compareseq (0, cmp->file[0].nondiscarded_lines, 0, cmp->file[1].nondiscarded_lines, minimal); free (fdiag - (cmp->file[1].nondiscarded_lines + 1)); /* Modify the results slightly to make them prettier in cases where that can validly be done. */ shift_boundaries (cmp->file); /* Get the results of comparison in the form of a chain of `struct change's -- an edit script. */ script = build_script (cmp->file); changes = (script != 0); free (cmp->file[0].undiscarded); free (flag_space); for (f = 0; f < 2; f++) { free (cmp->file[f].equivs); free (cmp->file[f].linbuf + cmp->file[f].linbuf_base); } } return script; } kdiff3-0.9.97/src-QT4/gnudiff_io.cpp0000644000175100001440000004231212000244602016322 0ustar joachimusers/* File I/O for GNU DIFF. Modified for KDiff3 by Joachim Eibl 2003, 2004, 2005. The original file was part of GNU DIFF. Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1998, 2001, 2002 Free Software Foundation, Inc. GNU DIFF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU DIFF is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Steet, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "gnudiff_diff.h" #include /* Rotate an unsigned value to the left. */ #define ROL(v, n) ((v) << (n) | (v) >> (sizeof (v) * CHAR_BIT - (n))) /* Given a hash value and a new character, return a new hash value. */ #define HASH(h, c) ((c) + ROL (h, 7)) /* The type of a hash value. */ typedef size_t hash_value; verify (hash_value_is_unsigned, ! TYPE_SIGNED (hash_value)); /* Lines are put into equivalence classes of lines that match in lines_differ. Each equivalence class is represented by one of these structures, but only while the classes are being computed. Afterward, each class is represented by a number. */ struct equivclass { lin next; /* Next item in this bucket. */ hash_value hash; /* Hash of lines in this class. */ const QChar *line; /* A line that fits this class. */ size_t length; /* That line's length, not counting its newline. */ }; /* Hash-table: array of buckets, each being a chain of equivalence classes. buckets[-1] is reserved for incomplete lines. */ static lin *buckets; /* Number of buckets in the hash table array, not counting buckets[-1]. */ static size_t nbuckets; /* Array in which the equivalence classes are allocated. The bucket-chains go through the elements in this array. The number of an equivalence class is its index in this array. */ static struct equivclass *equivs; /* Index of first free element in the array `equivs'. */ static lin equivs_index; /* Number of elements allocated in the array `equivs'. */ static lin equivs_alloc; /* Check for binary files and compare them for exact identity. */ /* Return 1 if BUF contains a non text character. SIZE is the number of characters in BUF. */ #define binary_file_p(buf, size) (memchr (buf, 0, size) != 0) /* Compare two lines (typically one from each input file) according to the command line options. For efficiency, this is invoked only when the lines do not match exactly but an option like -i might cause us to ignore the difference. Return nonzero if the lines differ. */ bool GnuDiff::lines_differ (const QChar *s1, size_t len1, const QChar *s2, size_t len2 ) { const QChar *t1 = s1; const QChar *t2 = s2; const QChar *s1end = s1+len1; const QChar *s2end = s2+len2; for ( ; ; ++t1, ++t2 ) { /* Test for exact char equality first, since it's a common case. */ if ( t1!=s1end && t2!=s2end && *t1==*t2 ) continue; else { while ( t1!=s1end && ( (bIgnoreWhiteSpace && isWhite( *t1 )) || (bIgnoreNumbers && (t1->isDigit() || *t1=='-' || *t1=='.' )))) { ++t1; } while ( t2 != s2end && ( (bIgnoreWhiteSpace && isWhite( *t2 )) || (bIgnoreNumbers && (t2->isDigit() || *t2=='-' || *t2=='.' )))) { ++t2; } if ( t1!=s1end && t2!=s2end ) { if (ignore_case) { /* Lowercase comparison. */ if ( t1->toLower() == t2->toLower() ) continue; } else if ( *t1 == *t2 ) continue; else return true; } else if ( t1==s1end && t2==s2end ) return false; else return true; } } return false; } /* Split the file into lines, simultaneously computing the equivalence class for each line. */ void GnuDiff::find_and_hash_each_line (struct file_data *current) { hash_value h; const QChar *p = current->prefix_end; QChar c; lin i, *bucket; size_t length; /* Cache often-used quantities in local variables to help the compiler. */ const QChar **linbuf = current->linbuf; lin alloc_lines = current->alloc_lines; lin line = 0; lin linbuf_base = current->linbuf_base; lin *cureqs = (lin*)xmalloc (alloc_lines * sizeof *cureqs); struct equivclass *eqs = equivs; lin eqs_index = equivs_index; lin eqs_alloc = equivs_alloc; const QChar *suffix_begin = current->suffix_begin; const QChar *bufend = current->buffer + current->buffered; bool diff_length_compare_anyway = ignore_white_space != IGNORE_NO_WHITE_SPACE || bIgnoreNumbers; bool same_length_diff_contents_compare_anyway = diff_length_compare_anyway | ignore_case; while ( p < suffix_begin) { const QChar *ip = p; h = 0; /* Hash this line until we find a newline or bufend is reached. */ if (ignore_case) switch (ignore_white_space) { case IGNORE_ALL_SPACE: while ( pbuffered_lines = line; for (i = 0; ; i++) { /* Record the line start for lines in the suffix that we care about. Record one more line start than lines, so that we can compute the length of any buffered line. */ if (line == alloc_lines) { /* Double (alloc_lines - linbuf_base) by adding to alloc_lines. */ if ((lin)(PTRDIFF_MAX / 3) <= alloc_lines || (lin)(PTRDIFF_MAX / sizeof *cureqs) <= 2 * alloc_lines - linbuf_base || (lin)(PTRDIFF_MAX / sizeof *linbuf) <= alloc_lines - linbuf_base) xalloc_die (); alloc_lines = 2 * alloc_lines - linbuf_base; linbuf += linbuf_base; linbuf = (const QChar**)xrealloc (linbuf, (alloc_lines - linbuf_base) * sizeof *linbuf); linbuf -= linbuf_base; } linbuf[line] = p; if ( p >= bufend) break; if (context <= i && no_diff_means_no_output) break; line++; while (plinbuf = linbuf; current->valid_lines = line; current->alloc_lines = alloc_lines; current->equivs = cureqs; equivs = eqs; equivs_alloc = eqs_alloc; equivs_index = eqs_index; } /* We have found N lines in a buffer of size S; guess the proportionate number of lines that will be found in a buffer of size T. However, do not guess a number of lines so large that the resulting line table might cause overflow in size calculations. */ static lin guess_lines (lin n, size_t s, size_t t) { size_t guessed_bytes_per_line = n < 10 ? 32 : s / (n - 1); lin guessed_lines = MAX (1, t / guessed_bytes_per_line); return MIN (guessed_lines, (lin)(PTRDIFF_MAX / (2 * sizeof (QChar *) + 1) - 5)) + 5; } /* Given a vector of two file_data objects, find the identical prefixes and suffixes of each object. */ void GnuDiff::find_identical_ends (struct file_data filevec[]) { /* Find identical prefix. */ const QChar *p0, *p1, *buffer0, *buffer1; p0 = buffer0 = filevec[0].buffer; p1 = buffer1 = filevec[1].buffer; size_t n0, n1; n0 = filevec[0].buffered; n1 = filevec[1].buffered; const QChar* const pEnd0 = p0 + n0; const QChar* const pEnd1 = p1 + n1; if (p0 == p1) /* The buffers are the same; sentinels won't work. */ p0 = p1 += n1; else { /* Loop until first mismatch, or end. */ while ( p0!=pEnd0 && p1!=pEnd1 && *p0 == *p1 ) { p0++; p1++; } } /* Now P0 and P1 point at the first nonmatching characters. */ /* Skip back to last line-beginning in the prefix. */ while (p0 != buffer0 && (p0[-1] != '\n' )) p0--, p1--; /* Record the prefix. */ filevec[0].prefix_end = p0; filevec[1].prefix_end = p1; /* Find identical suffix. */ /* P0 and P1 point beyond the last chars not yet compared. */ p0 = buffer0 + n0; p1 = buffer1 + n1; const QChar *end0, *beg0; end0 = p0; /* Addr of last char in file 0. */ /* Get value of P0 at which we should stop scanning backward: this is when either P0 or P1 points just past the last char of the identical prefix. */ beg0 = filevec[0].prefix_end + (n0 < n1 ? 0 : n0 - n1); /* Scan back until chars don't match or we reach that point. */ for (; p0 != beg0; p0--, p1--) { if (*p0 != *p1) { /* Point at the first char of the matching suffix. */ beg0 = p0; break; } } // Go to the next line (skip last line with a difference) if ( p0 != end0 ) { if (*p0 != *p1) ++p0; while ( p0. */ static unsigned char const prime_offset[] = { 0, 0, 1, 1, 3, 1, 3, 1, 5, 3, 3, 9, 3, 1, 3, 19, 15, 1, 5, 1, 3, 9, 3, 15, 3, 39, 5, 39, 57, 3, 35, 1, 5, 9, 41, 31, 5, 25, 45, 7, 87, 21, 11, 57, 17, 55, 21, 115, 59, 81, 27, 129, 47, 111, 33, 55, 5, 13, 27, 55, 93, 1, 57, 25 }; /* Verify that this host's size_t is not too wide for the above table. */ verify (enough_prime_offsets, sizeof (size_t) * CHAR_BIT <= sizeof prime_offset); /* Given a vector of two file_data objects, read the file associated with each one, and build the table of equivalence classes. Return nonzero if either file appears to be a binary file. If PRETEND_BINARY is nonzero, pretend they are binary regardless. */ bool GnuDiff::read_files (struct file_data filevec[], bool /*pretend_binary*/) { int i; find_identical_ends (filevec); equivs_alloc = filevec[0].alloc_lines + filevec[1].alloc_lines + 1; if ((lin)(PTRDIFF_MAX / sizeof *equivs) <= equivs_alloc) xalloc_die (); equivs = (equivclass*)xmalloc (equivs_alloc * sizeof *equivs); /* Equivalence class 0 is permanently safe for lines that were not hashed. Real equivalence classes start at 1. */ equivs_index = 1; /* Allocate (one plus) a prime number of hash buckets. Use a prime number between 1/3 and 2/3 of the value of equiv_allocs, approximately. */ for (i = 9; 1 << i < equivs_alloc / 3; i++) continue; nbuckets = ((size_t) 1 << i) - prime_offset[i]; if (PTRDIFF_MAX / sizeof *buckets <= nbuckets) xalloc_die (); buckets = (lin*)zalloc ((nbuckets + 1) * sizeof *buckets); buckets++; for (i = 0; i < 2; i++) find_and_hash_each_line (&filevec[i]); filevec[0].equiv_max = filevec[1].equiv_max = equivs_index; free (equivs); free (buckets - 1); return 0; } kdiff3-0.9.97/src-QT4/ccInstHelper.cpp0000644000175100001440000002276512000244602016606 0ustar joachimusers// uninstallHelper.cpp : Defines the entry point for the console application. // #include #include #include #include #include #include //#define __stdcall #ifndef KREPLACEMENTS_H // For compilation download the NSIS source package and modify the following // line to point to the exdll.h-file #include "C:/Programme/NSIS/Contrib/ExDll/exdll.h" #endif struct ReplacementItem { const char* fileType; const char* operationType; }; ReplacementItem g_replacementTable[] = { {"text_file_delta", "xcompare"}, {"text_file_delta", "xmerge"}, {"whole_copy", "xcompare"}, {"whole_copy", "xmerge"}, {"z_text_file_delta", "xcompare"}, {"z_text_file_delta", "xmerge"}, {"z_whole_copy", "xcompare"}, {"z_whole_copy", "xmerge"}, {"_xml", "xcompare"}, {"_xml", "xmerge"}, {"_xml2", "xcompare"}, {"_xml2", "xmerge"}, {"_rftdef", "xcompare"}, {"_rftmap", "xcompare"}, {"_rftvp", "xcompare"}, {"_xtools", "xcompare"}, {0,0} }; struct LineItem { std::string fileType; std::string opType; std::string command; std::string fileOpPart; }; // Return true if successful, else false bool readAndParseMapFile( const std::string& filename, std::list& lineItemList ) { // Read file FILE* pFile = fopen( filename.c_str(), "r" ); if (pFile) { fseek(pFile,0,SEEK_END); int size = ftell(pFile); fseek(pFile,0,SEEK_SET); std::vector buf( size ); fread( &buf[0], 1, size, pFile ); fclose( pFile ); // Replace strings int lineStartPos=0; int wordInLine = 0; LineItem lineItem; for( int i=0; i& lineItemList ) { FILE* pFile = fopen( filename.c_str(), "w" ); if (pFile) { std::list::const_iterator i = lineItemList.begin(); for( ; i!=lineItemList.end(); ++i ) { const LineItem& li = *i; fprintf( pFile, "%s%s\n", li.fileOpPart.c_str(), li.command.c_str() ); } fclose( pFile ); } else { return false; } return true; } std::string toUpper( const std::string& s ) { std::string s2 = s; for( unsigned int i=0; i0 && len+1 lineItemList; bool bSuccess = readAndParseMapFile( path, lineItemList ); if ( !bSuccess ) { fprintf(stderr, "Error reading original map file.\n"); return -1; } // Create backup if ( access( bakName.c_str(), 0 )!=0 ) // Create backup only if not exists yet { if ( rename( path.c_str(), bakName.c_str() ) ) { fprintf(stderr, "Error renaming original map file.\n"); return -1; } } std::list::iterator i = lineItemList.begin(); for( ; i!=lineItemList.end(); ++i ) { LineItem& li = *i; for (int j=0;;++j) { ReplacementItem& ri = g_replacementTable[j]; if ( ri.fileType==0 || ri.operationType==0 ) break; if ( li.fileType == ri.fileType && li.opType == ri.operationType ) { li.command = kdiff3Command.c_str(); break; } } } bSuccess = writeMapFile( path, lineItemList ); if ( !bSuccess ) { if ( rename( bakName.c_str(), path.c_str() ) ) fprintf(stderr, "Error writing new map file, restoring old file also failed.\n"); else fprintf(stderr, "Error writing new map file, old file restored.\n"); return -1; } } else if ( installCommand == "uninstall" ) { std::list lineItemList; bool bSuccess = readAndParseMapFile( path, lineItemList ); if ( !bSuccess ) { fprintf(stderr, "Error reading original map file\n."); return -1; } std::list lineItemListBak; bSuccess = readAndParseMapFile( bakName, lineItemListBak ); if ( !bSuccess ) { fprintf(stderr, "Error reading backup map file.\n"); return -1; } std::list::iterator i = lineItemList.begin(); for( ; i!=lineItemList.end(); ++i ) { LineItem& li = *i; if ((int)toUpper(li.command).find("KDIFF3")>=0) { std::list::const_iterator j = lineItemListBak.begin(); for (;j!=lineItemListBak.end();++j) { const LineItem& bi = *j; // backup iterator if ( li.fileType == bi.fileType && li.opType == bi.opType ) { li.command = bi.command; break; } } } } bSuccess = writeMapFile( path, lineItemList ); if ( !bSuccess ) { fprintf(stderr, "Error writing map file."); return -1; } } } return 0; } #ifndef KREPLACEMENTS_H extern "C" void __declspec(dllexport) nsisPlugin(HWND hwndParent, int string_size, char *variables, stack_t **stacktop, extra_parameters *extra) { //g_hwndParent=hwndParent; EXDLL_INIT(); { std::string param1( g_stringsize, ' ' ); int retVal = popstring( ¶m1[0] ); if ( retVal == 0 ) { std::string param2( g_stringsize, ' ' ); retVal = popstring( ¶m2[0] ); if ( retVal == 0 ) install( param1.c_str(), param2.c_str() ); return; } fprintf(stderr, "Not enough parameters.\n"); } } #endif /* int _tmain(int argc, _TCHAR* argv[]) { if ( argc<3 ) { std::cout << "This program is needed to install/uninstall KDiff3 for clearcase.\n" "It tries to patch the map file (clearcase-subdir\\lib\\mgrs\\map)\n" "Usage 1: ccInstHelper install pathToKdiff3.exe\n" "Usage 2: ccInstHelper uninstall pathToKdiff3.exe\n" "Backups of the original map files are created in the dir of the map file.\n"; } else { return install( argv[1], argv[2] ); } return 0; } */ kdiff3-0.9.97/src-QT4/kdiff3win.rc0000644000175100001440000000007611626145614015740 0ustar joachimusersIDI_ICON1 ICON DISCARDABLE "kdiff3.ico" kdiff3-0.9.97/src-QT4/kdiff3.pro0000644000175100001440000000533412000244602015400 0ustar joachimusersTEMPLATE = app # When unresolved items remain during linking: Try adding "shared" in the CONFIG. CONFIG += qt warn_on thread precompile_header !os2:PRECOMPILED_HEADER = stable.h HEADERS = version.h \ diff.h \ difftextwindow.h \ mergeresultwindow.h \ kdiff3.h \ merger.h \ optiondialog.h \ options.h \ progress.h \ kreplacements/kreplacements.h \ directorymergewindow.h \ fileaccess.h \ kdiff3_shell.h \ kdiff3_part.h \ smalldialogs.h SOURCES = main.cpp \ diff.cpp \ difftextwindow.cpp \ kdiff3.cpp \ merger.cpp \ mergeresultwindow.cpp \ optiondialog.cpp \ pdiff.cpp \ directorymergewindow.cpp \ fileaccess.cpp \ progress.cpp \ smalldialogs.cpp \ kdiff3_shell.cpp \ kdiff3_part.cpp \ gnudiff_analyze.cpp \ gnudiff_io.cpp \ gnudiff_xmalloc.cpp \ common.cpp \ stable.cpp \ kreplacements/kreplacements.cpp \ kreplacements/ShellContextMenu.cpp TARGET = kdiff3 INCLUDEPATH += . ./kreplacements win32 { # QMAKE_CXXFLAGS_DEBUG -= -Zi # QMAKE_CXXFLAGS_DEBUG += -GX -GR -Z7 /FR -DQT_NO_ASCII_CAST # QMAKE_LFLAGS_DEBUG += /PDB:NONE # QMAKE_CXXFLAGS_RELEASE += -GX -GR -DNDEBUG -DQT_NO_ASCII_CAST QMAKE_CXXFLAGS_DEBUG += -DQT_NO_ASCII_CAST QMAKE_CXXFLAGS_RELEASE += -DNDEBUG -DQT_NO_ASCII_CAST RC_FILE = kdiff3win.rc win32-g++ { QMAKE_LFLAGS += -luser32 -lshell32 QMAKE_LFLAGS_RELEASE += -static-libgcc # Remove dependency to libgcc_s_dw2-1.dll QMAKE_LFLAGS_EXCEPTIONS_ON -= -mthreads # Remove dependency to mingwm10.dll (hack, yet no problem if not multithreaded) # Better: configure -static -release -no-exceptions -fast } else { QMAKE_LFLAGS += user32.lib shell32.lib } } os2 { RC_FILE = kdiff3os2.rc } unix { documentation.path = /usr/local/share/doc/kdiff3 documentation.files = ../doc/* INSTALLS += documentation target.path = /usr/local/bin INSTALLS += target } kdiff3-0.9.97/src-QT4/diff.cpp0000644000175100001440000020523212000244602015123 0ustar joachimusers/*************************************************************************** diff.cpp - description ------------------- begin : Mon Mar 18 2002 copyright : (C) 2002-2007 by Joachim Eibl email : joachim.eibl at gmx.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "stable.h" #include #include "diff.h" #include "fileaccess.h" #include "gnudiff_diff.h" #include "options.h" #include "progress.h" #include #include #include #include #include #include #include #include #include #include //using namespace std; int LineData::width(int tabSize) const { int w=0; int j=0; for( int i=0; i=5 || l2.occurances>=5) ) return false; // Ignore white space diff const QChar* p1 = l1.pLine; const QChar* p1End = p1 + l1.size; const QChar* p2 = l2.pLine; const QChar* p2End = p2 + l2.size; if ( g_bIgnoreWhiteSpace ) { int nonWhite = 0; for(;;) { while( isWhite( *p1 ) && p1!=p1End ) ++p1; while( isWhite( *p2 ) && p2!=p2End ) ++p2; if ( p1 == p1End && p2 == p2End ) { if ( bStrict && g_bIgnoreTrivialMatches ) { // Then equality is not enough return nonWhite>2; } else // equality is enough return true; } else if ( p1 == p1End || p2 == p2End ) return false; if( *p1 != *p2 ) return false; ++p1; ++p2; ++nonWhite; } } else { if ( l1.size==l2.size && memcmp(p1, p2, l1.size)==0) return true; else return false; } } static bool isLineOrBufEnd( const QChar* p, int i, int size ) { return i>=size // End of file || p[i]=='\n' // Normal end of line // No support for Mac-end of line yet, because incompatible with GNU-diff-routines. // || ( p[i]=='\r' && (i>=size-1 || p[i+1]!='\n') // && (i==0 || p[i-1]!='\n') ) // Special case: '\r' without '\n' ; } /* Features of class SourceData: - Read a file (from the given URL) or accept data via a string. - Allocate and free buffers as necessary. - Run a preprocessor, when specified. - Run the line-matching preprocessor, when specified. - Run other preprocessing steps: Uppercase, ignore comments, remove carriage return, ignore numbers. Order of operation: 1. If data was given via a string then save it to a temp file. (see setData()) 2. If the specified file is nonlocal (URL) copy it to a temp file. 3. If a preprocessor was specified, run the input file through it. 4. Read the output of the preprocessor. 5. If Uppercase was specified: Turn the read data to uppercase. 6. Write the result to a temp file. 7. If a line-matching preprocessor was specified, run the temp file through it. 8. Read the output of the line-matching preprocessor. 9. If ignore numbers was specified, strip the LMPP-output of all numbers. 10. If ignore comments was specified, strip the LMPP-output of comments. Optimizations: Skip unneeded steps. */ SourceData::SourceData() { m_pOptions = 0; reset(); } SourceData::~SourceData() { reset(); } void SourceData::reset() { m_pEncoding = 0; m_fileAccess = FileAccess(); m_normalData.reset(); m_lmppData.reset(); if ( !m_tempInputFileName.isEmpty() ) { FileAccess::removeFile( m_tempInputFileName ); m_tempInputFileName = ""; } } void SourceData::setFilename( const QString& filename ) { if (filename.isEmpty()) { reset(); } else { FileAccess fa( filename ); setFileAccess( fa ); } } bool SourceData::isEmpty() { return getFilename().isEmpty(); } bool SourceData::hasData() { return m_normalData.m_pBuf != 0; } bool SourceData::isValid() { return isEmpty() || hasData(); } void SourceData::setOptions( Options* pOptions ) { m_pOptions = pOptions; } QString SourceData::getFilename() { return m_fileAccess.absoluteFilePath(); } QString SourceData::getAliasName() { return m_aliasName.isEmpty() ? m_fileAccess.prettyAbsPath() : m_aliasName; } void SourceData::setAliasName( const QString& name ) { m_aliasName = name; } void SourceData::setFileAccess( const FileAccess& fileAccess ) { m_fileAccess = fileAccess; m_aliasName = QString(); if ( !m_tempInputFileName.isEmpty() ) { FileAccess::removeFile( m_tempInputFileName ); m_tempInputFileName = ""; } } void SourceData::setEncoding(QTextCodec* pEncoding) { m_pEncoding = pEncoding; } QStringList SourceData::setData( const QString& data ) { QStringList errors; // Create a temp file for preprocessing: if ( m_tempInputFileName.isEmpty() ) { m_tempInputFileName = FileAccess::tempFileName(); } FileAccess f( m_tempInputFileName ); QByteArray ba = QTextCodec::codecForName("UTF-8")->fromUnicode(data); bool bSuccess = f.writeFile( ba.constData(), ba.length() ); if ( !bSuccess ) { errors.append( i18n("Writing clipboard data to temp file failed.") ); } else { m_aliasName = i18n("From Clipboard"); m_fileAccess = FileAccess(""); // Effect: m_fileAccess.isValid() is false } return errors; } const LineData* SourceData::getLineDataForDiff() const { if ( m_lmppData.m_pBuf==0 ) return m_normalData.m_v.size()>0 ? &m_normalData.m_v[0] : 0; else return m_lmppData.m_v.size()>0 ? &m_lmppData.m_v[0] : 0; } const LineData* SourceData::getLineDataForDisplay() const { return m_normalData.m_v.size()>0 ? &m_normalData.m_v[0] : 0; } int SourceData::getSizeLines() const { return m_normalData.m_vSize; } int SourceData::getSizeBytes() const { return m_normalData.m_size; } const char* SourceData::getBuf() const { return m_normalData.m_pBuf; } const QString& SourceData::getText() const { return m_normalData.m_unicodeBuf; } bool SourceData::isText() { return m_normalData.m_bIsText; } bool SourceData::isIncompleteConversion() { return m_normalData.m_bIncompleteConversion; } bool SourceData::isFromBuffer() { return !m_fileAccess.isValid(); } bool SourceData::isBinaryEqualWith( const SourceData& other ) const { return m_fileAccess.exists() && other.m_fileAccess.exists() && getSizeBytes() == other.getSizeBytes() && ( getSizeBytes()==0 || memcmp( getBuf(), other.getBuf(), getSizeBytes() )==0 ); } void SourceData::FileData::reset() { delete[] (char*)m_pBuf; m_pBuf = 0; m_v.clear(); m_size = 0; m_vSize = 0; m_bIsText = true; m_bIncompleteConversion = false; m_eLineEndStyle = eLineEndStyleUndefined; } bool SourceData::FileData::readFile( const QString& filename ) { reset(); if ( filename.isEmpty() ) { return true; } FileAccess fa( filename ); m_size = fa.sizeForReading(); char* pBuf; m_pBuf = pBuf = new char[m_size+100]; // Alloc 100 byte extra: Savety hack, not nice but does no harm. // Some extra bytes at the end of the buffer are needed by // the diff algorithm. See also GnuDiff::diff_2_files(). bool bSuccess = fa.readFile( pBuf, m_size ); if ( !bSuccess ) { delete pBuf; m_pBuf = 0; m_size = 0; } return bSuccess; } bool SourceData::saveNormalDataAs( const QString& fileName ) { return m_normalData.writeFile( fileName ); } bool SourceData::FileData::writeFile( const QString& filename ) { if ( filename.isEmpty() ) { return true; } FileAccess fa( filename ); bool bSuccess = fa.writeFile(m_pBuf, m_size); return bSuccess; } void SourceData::FileData::copyBufFrom( const FileData& src ) { reset(); char* pBuf; m_size = src.m_size; m_pBuf = pBuf = new char[m_size+100]; memcpy( pBuf, src.m_pBuf, m_size ); } // Convert the input file from input encoding to output encoding and write it to the output file. static bool convertFileEncoding( const QString& fileNameIn, QTextCodec* pCodecIn, const QString& fileNameOut, QTextCodec* pCodecOut ) { QFile in( fileNameIn ); if ( ! in.open(QIODevice::ReadOnly ) ) return false; QTextStream inStream( &in ); inStream.setCodec( pCodecIn ); inStream.setAutoDetectUnicode( false ); QFile out( fileNameOut ); if ( ! out.open( QIODevice::WriteOnly ) ) return false; QTextStream outStream( &out ); outStream.setCodec( pCodecOut ); QString data = inStream.readAll(); outStream << data; return true; } static QTextCodec* getEncodingFromTag( const QByteArray& s, const QByteArray& encodingTag ) { int encodingPos = s.indexOf( encodingTag ); if ( encodingPos>=0 ) { int apostrophPos = s.indexOf( '"', encodingPos + encodingTag.length() ); int apostroph2Pos = s.indexOf( '\'', encodingPos + encodingTag.length() ); char apostroph = '"'; if ( apostroph2Pos>=0 && ( apostrophPos<0 || (apostrophPos>=0 && apostroph2Pos < apostrophPos) ) ) { apostroph = '\''; apostrophPos = apostroph2Pos; } int encodingEnd = s.indexOf( apostroph, apostrophPos+1 ); if ( encodingEnd>=0 ) // e.g.: or { QByteArray encoding = s.mid( apostrophPos+1, encodingEnd - (apostrophPos + 1) ); return QTextCodec::codecForName( encoding ); } else // e.g.: { QByteArray encoding = s.mid( encodingPos+encodingTag.length(), apostrophPos - ( encodingPos+encodingTag.length() ) ); return QTextCodec::codecForName( encoding ); } } return 0; } static QTextCodec* detectEncoding( const char* buf, qint64 size, qint64& skipBytes ) { if (size>=2) { if (buf[0]=='\xFF' && buf[1]=='\xFE' ) { skipBytes = 2; return QTextCodec::codecForName( "UTF-16LE" ); } if (buf[0]=='\xFE' && buf[1]=='\xFF' ) { skipBytes = 2; return QTextCodec::codecForName( "UTF-16BE" ); } } if (size>=3) { if (buf[0]=='\xEF' && buf[1]=='\xBB' && buf[2]=='\xBF' ) { skipBytes = 3; return QTextCodec::codecForName( "UTF-8-BOM" ); } } skipBytes = 0; QByteArray s( buf, size ); int xmlHeaderPos = s.indexOf( "= 0 ) { int xmlHeaderEnd = s.indexOf( "?>", xmlHeaderPos ); if ( xmlHeaderEnd>=0 ) { QTextCodec* pCodec = getEncodingFromTag( s.mid( xmlHeaderPos, xmlHeaderEnd - xmlHeaderPos ), "encoding=" ); if (pCodec) return pCodec; } } else // HTML { int metaHeaderPos = s.indexOf( "= 0) { int metaHeaderEnd = s.indexOf( ">", metaHeaderPos ); if (metaHeaderEnd>=0) { QTextCodec* pCodec = getEncodingFromTag( s.mid( metaHeaderPos, metaHeaderEnd - metaHeaderPos ), "charset=" ); if (pCodec) return pCodec; metaHeaderPos = s.indexOf( ""1" "2"< => >1<, >2< * Eg. >'\'\\'< => >'\< backslash is a meta character between single quotes * Eg. > "\\" < => >\\< but not between double quotes * Eg. >"c:\sed" 's/a/\' /g'< => >c:\sed<, >s/a/' /g< */ static QString getArguments( QString cmd, QString& program, QStringList& args ) { program = QString(); args.clear(); for ( int i=0; i 0 ) { #if defined(_WIN32) || defined(Q_OS_OS2) QString catCmd = "type"; fileNameIn1.replace( '/', "\\" ); #else QString catCmd = "cat"; #endif // Run the first preprocessor if ( m_pOptions->m_PreProcessorCmd.isEmpty() ) { // No preprocessing: Read the file directly: m_normalData.readFile( fileNameIn1 ); } else { QString fileNameInPP = fileNameIn1; if ( pEncoding1 != m_pOptions->m_pEncodingPP ) { // Before running the preprocessor convert to the format that the preprocessor expects. fileNameInPP = FileAccess::tempFileName(); pEncoding1 = m_pOptions->m_pEncodingPP; convertFileEncoding( fileNameIn1, pEncoding, fileNameInPP, pEncoding1 ); } QString ppCmd = m_pOptions->m_PreProcessorCmd; fileNameOut1 = FileAccess::tempFileName(); QProcess ppProcess; ppProcess.setStandardInputFile( fileNameInPP ); ppProcess.setStandardOutputFile( fileNameOut1 ); QString program; QStringList args; QString errorReason = getArguments(ppCmd, program, args); if ( errorReason.isEmpty() ) { ppProcess.start( program, args ); ppProcess.waitForFinished(-1); } else errorReason = "\n("+errorReason+")"; //QString cmd = catCmd + " \"" + fileNameInPP + "\" | " + ppCmd + " >\"" + fileNameOut1+"\""; //::system( encodeString(cmd) ); bool bSuccess = errorReason.isEmpty() && m_normalData.readFile( fileNameOut1 ); if ( fileInSize >0 && ( !bSuccess || m_normalData.m_size==0 ) ) { errors.append( i18n("Preprocessing possibly failed. Check this command:\n\n %1" "\n\nThe preprocessing command will be disabled now." ).arg(ppCmd) + errorReason ); m_pOptions->m_PreProcessorCmd = ""; m_normalData.readFile( fileNameIn1 ); pEncoding1 = m_pEncoding; } if (fileNameInPP != fileNameIn1) { FileAccess::removeTempFile( fileNameInPP ); } } // LineMatching Preprocessor if ( ! m_pOptions->m_LineMatchingPreProcessorCmd.isEmpty() ) { fileNameIn2 = fileNameOut1.isEmpty() ? fileNameIn1 : fileNameOut1; QString fileNameInPP = fileNameIn2; pEncoding2 = pEncoding1; if ( pEncoding2 != m_pOptions->m_pEncodingPP ) { // Before running the preprocessor convert to the format that the preprocessor expects. fileNameInPP = FileAccess::tempFileName(); pEncoding2 = m_pOptions->m_pEncodingPP; convertFileEncoding( fileNameIn2, pEncoding1, fileNameInPP, pEncoding2 ); } QString ppCmd = m_pOptions->m_LineMatchingPreProcessorCmd; fileNameOut2 = FileAccess::tempFileName(); QProcess ppProcess; ppProcess.setStandardInputFile( fileNameInPP ); ppProcess.setStandardOutputFile( fileNameOut2 ); QString program; QStringList args; QString errorReason = getArguments(ppCmd, program, args); if ( errorReason.isEmpty() ) { ppProcess.start( program, args ); ppProcess.waitForFinished(-1); } else errorReason = "\n("+errorReason+")"; //QString cmd = catCmd + " \"" + fileNameInPP + "\" | " + ppCmd + " >\"" + fileNameOut2 + "\""; //::system( encodeString(cmd) ); bool bSuccess = errorReason.isEmpty() && m_lmppData.readFile( fileNameOut2 ); if ( FileAccess(fileNameIn2).size()>0 && ( !bSuccess || m_lmppData.m_size==0 ) ) { errors.append( i18n("The line-matching-preprocessing possibly failed. Check this command:\n\n %1" "\n\nThe line-matching-preprocessing command will be disabled now." ).arg(ppCmd) + errorReason ); m_pOptions->m_LineMatchingPreProcessorCmd = ""; m_lmppData.readFile( fileNameIn2 ); } FileAccess::removeTempFile( fileNameOut2 ); if (fileNameInPP != fileNameIn2) { FileAccess::removeTempFile( fileNameInPP ); } } else if ( m_pOptions->m_bIgnoreComments || m_pOptions->m_bIgnoreCase ) { // We need a copy of the normal data. m_lmppData.copyBufFrom( m_normalData ); } else { // We don't need any lmpp data at all. m_lmppData.reset(); } } m_normalData.preprocess( m_pOptions->m_bPreserveCarriageReturn, pEncoding1 ); m_lmppData.preprocess( false, pEncoding2 ); if ( m_lmppData.m_vSize < m_normalData.m_vSize ) { // This probably is the fault of the LMPP-Command, but not worth reporting. m_lmppData.m_v.resize( m_normalData.m_vSize ); for(int i=m_lmppData.m_vSize; im_bIgnoreCase ) { int i; QChar* pBuf = const_cast(m_lmppData.m_unicodeBuf.unicode()); int ucSize = m_lmppData.m_unicodeBuf.length(); for(i=0; im_bIgnoreComments ) { m_lmppData.removeComments(); int vSize = min2(m_normalData.m_vSize, m_lmppData.m_vSize); for(int i=0; i0 && m_pBuf[i-1]=='\r') || // normal file (i>3 && m_pBuf[i-1]=='\0' && m_pBuf[i-2]=='\r' && m_pBuf[i-3]=='\0')) // 16-bit unicode: TODO only little endian covered here m_eLineEndStyle = eLineEndStyleDos; else m_eLineEndStyle = eLineEndStyleUnix; break; // Only analyze first line } } qint64 skipBytes = 0; QTextCodec* pCodec = ::detectEncoding( m_pBuf, m_size, skipBytes ); if ( pCodec != pEncoding ) skipBytes=0; QByteArray ba = QByteArray::fromRawData( m_pBuf+skipBytes, m_size-skipBytes ); if ( m_eLineEndStyle == eLineEndStyleUndefined ) // normally only for one liners except when old mac line end style is used { for( int j=0; j0 && m_v[lineIdx].pLine[lineLength-1]=='\r' ) { --lineLength; } m_v[lineIdx].pFirstNonWhiteChar = m_v[lineIdx].pLine + min2(whiteLength,lineLength); m_v[lineIdx].size = lineLength; lineLength = 0; bNonWhiteFound = false; whiteLength = 0; ++lineIdx; } else { ++lineLength; if ( ! bNonWhiteFound && isWhite( p[i] ) ) ++whiteLength; else bNonWhiteFound = true; } } assert( lineIdx == lines ); m_vSize = lines; } // Must not be entered, when within a comment. // Returns either at a newline-character p[i]=='\n' or when i==size. // A line that contains only comments is still "white". // Comments in white lines must remain, while comments in // non-white lines are overwritten with spaces. static void checkLineForComments( QChar* p, // pointer to start of buffer int& i, // index of current position (in, out) int size, // size of buffer bool& bWhite, // false if this line contains nonwhite characters (in, out) bool& bCommentInLine, // true if any comment is within this line (in, out) bool& bStartsOpenComment // true if the line ends within an comment (out) ) { bStartsOpenComment = false; for(; i(m_unicodeBuf.unicode()); bool bWithinComment=false; int size = m_unicodeBuf.length(); for(int i=0; ibegin(); int lineA=0; int lineB=0; Diff d(0,0,0); for(;;) { if ( d.nofEquals==0 && d.diff1==0 && d.diff2==0 ) { if ( i!=pDiffListAB->end() ) { d=*i; ++i; } else break; } Diff3Line d3l; if( d.nofEquals>0 ) { d3l.bAEqB = true; d3l.lineA = lineA; d3l.lineB = lineB; --d.nofEquals; ++lineA; ++lineB; } else if ( d.diff1>0 && d.diff2>0 ) { d3l.lineA = lineA; d3l.lineB = lineB; --d.diff1; --d.diff2; ++lineA; ++lineB; } else if ( d.diff1>0 ) { d3l.lineA = lineA; --d.diff1; ++lineA; } else if ( d.diff2>0 ) { d3l.lineB = lineB; --d.diff2; ++lineB; } d3ll.push_back( d3l ); } } // Second step void calcDiff3LineListUsingAC( const DiffList* pDiffListAC, Diff3LineList& d3ll ) { //////////////// // Now insert data from C using pDiffListAC DiffList::const_iterator i=pDiffListAC->begin(); Diff3LineList::iterator i3 = d3ll.begin(); int lineA=0; int lineC=0; Diff d(0,0,0); for(;;) { if ( d.nofEquals==0 && d.diff1==0 && d.diff2==0 ) { if ( i!=pDiffListAC->end() ) { d=*i; ++i; } else break; } Diff3Line d3l; if( d.nofEquals>0 ) { // Find the corresponding lineA while( (*i3).lineA!=lineA ) ++i3; (*i3).lineC = lineC; (*i3).bAEqC = true; (*i3).bBEqC = (*i3).bAEqB; --d.nofEquals; ++lineA; ++lineC; ++i3; } else if ( d.diff1>0 && d.diff2>0 ) { d3l.lineC = lineC; d3ll.insert( i3, d3l ); --d.diff1; --d.diff2; ++lineA; ++lineC; } else if ( d.diff1>0 ) { --d.diff1; ++lineA; } else if ( d.diff2>0 ) { d3l.lineC = lineC; d3ll.insert( i3, d3l ); --d.diff2; ++lineC; } } } // Third step void calcDiff3LineListUsingBC( const DiffList* pDiffListBC, Diff3LineList& d3ll ) { //////////////// // Now improve the position of data from C using pDiffListBC // If a line from C equals a line from A then it is in the // same Diff3Line already. // If a line from C equals a line from B but not A, this // information will be used here. DiffList::const_iterator i=pDiffListBC->begin(); Diff3LineList::iterator i3b = d3ll.begin(); Diff3LineList::iterator i3c = d3ll.begin(); int lineB=0; int lineC=0; Diff d(0,0,0); for(;;) { if ( d.nofEquals==0 && d.diff1==0 && d.diff2==0 ) { if ( i!=pDiffListBC->end() ) { d=*i; ++i; } else break; } Diff3Line d3l; if( d.nofEquals>0 ) { // Find the corresponding lineB and lineC while( i3b!=d3ll.end() && (*i3b).lineB!=lineB ) ++i3b; while( i3c!=d3ll.end() && (*i3c).lineC!=lineC ) ++i3c; assert(i3b!=d3ll.end()); assert(i3c!=d3ll.end()); if ( i3b==i3c ) { assert( (*i3b).lineC == lineC ); (*i3b).bBEqC = true; } else { // Is it possible to move this line up? // Test if no other B's are used between i3c and i3b // First test which is before: i3c or i3b ? Diff3LineList::iterator i3c1 = i3c; Diff3LineList::iterator i3b1 = i3b; while( i3c1!=i3b && i3b1!=i3c ) { assert(i3b1!=d3ll.end() || i3c1!=d3ll.end()); if( i3c1!=d3ll.end() ) ++i3c1; if( i3b1!=d3ll.end() ) ++i3b1; } if( i3c1==i3b && !(*i3b).bAEqB ) // i3c before i3b { Diff3LineList::iterator i3 = i3c; int nofDisturbingLines = 0; while( i3 != i3b && i3!=d3ll.end() ) { if ( (*i3).lineB != -1 ) ++nofDisturbingLines; ++i3; } if ( nofDisturbingLines>0 )//&& nofDisturbingLines < d.nofEquals*d.nofEquals+4 ) { // Move the disturbing lines up, out of sight. i3 = i3c; while( i3 != i3b ) { if ( (*i3).lineB != -1 ) { Diff3Line d3l; d3l.lineB = (*i3).lineB; (*i3).lineB = -1; (*i3).bAEqB = false; (*i3).bBEqC = false; d3ll.insert( i3c, d3l ); } ++i3; } nofDisturbingLines=0; } if ( nofDisturbingLines == 0 ) { // Yes, the line from B can be moved. (*i3b).lineB = -1; // This might leave an empty line: removed later. (*i3b).bAEqB = false; (*i3b).bAEqC = false; (*i3b).bBEqC = false; (*i3c).lineB = lineB; (*i3c).bBEqC = true; } } else if( i3b1==i3c && !(*i3c).bAEqC) { Diff3LineList::iterator i3 = i3b; int nofDisturbingLines = 0; while( i3 != i3c && i3!=d3ll.end() ) { if ( (*i3).lineC != -1 ) ++nofDisturbingLines; ++i3; } if ( nofDisturbingLines>0 )//&& nofDisturbingLines < d.nofEquals*d.nofEquals+4 ) { // Move the disturbing lines up. i3 = i3b; while( i3 != i3c ) { if ( (*i3).lineC != -1 ) { Diff3Line d3l; d3l.lineC = (*i3).lineC; (*i3).lineC = -1; (*i3).bAEqC = false; (*i3).bBEqC = false; d3ll.insert( i3b, d3l ); } ++i3; } nofDisturbingLines=0; } if ( nofDisturbingLines == 0 ) { // Yes, the line from C can be moved. (*i3c).lineC = -1; // This might leave an empty line: removed later. (*i3c).bAEqC = false; (*i3c).bBEqC = false; (*i3b).lineC = lineC; (*i3b).bBEqC = true; } } } --d.nofEquals; ++lineB; ++lineC; ++i3b; ++i3c; } else if ( d.diff1>0 ) { Diff3LineList::iterator i3 = i3b; while( (*i3).lineB!=lineB ) ++i3; if( i3 != i3b && (*i3).bAEqB==false ) { // Take B from this line and move it up as far as possible d3l.lineB = lineB; d3ll.insert( i3b, d3l ); (*i3).lineB = -1; } else { i3b=i3; } --d.diff1; ++lineB; ++i3b; if( d.diff2>0 ) { --d.diff2; ++lineC; } } else if ( d.diff2>0 ) { --d.diff2; ++lineC; } } /* Diff3LineList::iterator it = d3ll.begin(); int li=0; for( ; it!=d3ll.end(); ++it, ++li ) { printf( "%4d %4d %4d %4d A%c=B A%c=C B%c=C\n", li, (*it).lineA, (*it).lineB, (*it).lineC, (*it).bAEqB ? '=' : '!', (*it).bAEqC ? '=' : '!', (*it).bBEqC ? '=' : '!' ); } printf("\n");*/ } #ifdef _WIN32 using ::equal; #endif // Test if the move would pass a barrier. Return true if not. static bool isValidMove( ManualDiffHelpList* pManualDiffHelpList, int line1, int line2, int winIdx1, int winIdx2 ) { if (line1>=0 && line2>=0) { ManualDiffHelpList::const_iterator i; for( i = pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i ) { const ManualDiffHelpEntry& mdhe = *i; // Barrier int l1 = winIdx1 == 1 ? mdhe.lineA1 : winIdx1==2 ? mdhe.lineB1 : mdhe.lineC1 ; int l2 = winIdx2 == 1 ? mdhe.lineA1 : winIdx2==2 ? mdhe.lineB1 : mdhe.lineC1 ; if ( l1>=0 && l2>=0 ) { if ( (line1>=l1 && line2=l2) ) return false; l1 = winIdx1 == 1 ? mdhe.lineA2 : winIdx1==2 ? mdhe.lineB2 : mdhe.lineC2 ; l2 = winIdx2 == 1 ? mdhe.lineA2 : winIdx2==2 ? mdhe.lineB2 : mdhe.lineC2 ; ++l1; ++l2; if ( (line1>=l1 && line2=l2) ) return false; } } } return true; // no barrier passed. } static bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList, Options *pOptions) { ProgressProxy pp; static GnuDiff gnuDiff; // All values are initialized with zeros. pp.setCurrent(0); diffList.clear(); if ( p1[0].pLine==0 || p2[0].pLine==0 || size1==0 || size2==0 ) { Diff d( 0,0,0); if ( p1[0].pLine==0 && p2[0].pLine==0 && size1 == size2 ) d.nofEquals = size1; else { d.diff1=size1; d.diff2=size2; } diffList.push_back(d); } else { GnuDiff::comparison comparisonInput; memset( &comparisonInput, 0, sizeof(comparisonInput) ); comparisonInput.parent = 0; comparisonInput.file[0].buffer = p1[0].pLine;//ptr to buffer comparisonInput.file[0].buffered = (p1[size1-1].pLine-p1[0].pLine+p1[size1-1].size); // size of buffer comparisonInput.file[1].buffer = p2[0].pLine;//ptr to buffer comparisonInput.file[1].buffered = (p2[size2-1].pLine-p2[0].pLine+p2[size2-1].size); // size of buffer gnuDiff.ignore_white_space = GnuDiff::IGNORE_ALL_SPACE; // I think nobody needs anything else ... gnuDiff.bIgnoreWhiteSpace = true; gnuDiff.bIgnoreNumbers = pOptions->m_bIgnoreNumbers; gnuDiff.minimal = pOptions->m_bTryHard; gnuDiff.ignore_case = false; GnuDiff::change* script = gnuDiff.diff_2_files( &comparisonInput ); int equalLinesAtStart = comparisonInput.file[0].prefix_lines; int currentLine1 = 0; int currentLine2 = 0; GnuDiff::change* p=0; for (GnuDiff::change* e = script; e; e = p) { Diff d(0,0,0); d.nofEquals = e->line0 - currentLine1; assert( d.nofEquals == e->line1 - currentLine2 ); d.diff1 = e->deleted; d.diff2 = e->inserted; currentLine1 += d.nofEquals + d.diff1; currentLine2 += d.nofEquals + d.diff2; diffList.push_back(d); p = e->link; free (e); } if ( diffList.empty() ) { Diff d(0,0,0); d.nofEquals = min2(size1,size2); d.diff1 = size1 - d.nofEquals; d.diff2 = size2 - d.nofEquals; diffList.push_back(d); /* Diff d(0,0,0); d.nofEquals = equalLinesAtStart; if ( gnuDiff.files[0].missing_newline != gnuDiff.files[1].missing_newline ) { d.diff1 = gnuDiff.files[0].missing_newline ? 0 : 1; d.diff2 = gnuDiff.files[1].missing_newline ? 0 : 1; ++d.nofEquals; } else if ( !gnuDiff.files[0].missing_newline ) { ++d.nofEquals; } diffList.push_back(d); */ } else { diffList.front().nofEquals += equalLinesAtStart; currentLine1 += equalLinesAtStart; currentLine2 += equalLinesAtStart; int nofEquals = min2(size1-currentLine1,size2-currentLine2); if ( nofEquals==0 ) { diffList.back().diff1 += size1-currentLine1; diffList.back().diff2 += size2-currentLine2; } else { Diff d( nofEquals,size1-currentLine1-nofEquals,size2-currentLine2-nofEquals); diffList.push_back(d); } /* if ( gnuDiff.files[0].missing_newline != gnuDiff.files[1].missing_newline ) { diffList.back().diff1 += gnuDiff.files[0].missing_newline ? 0 : 1; diffList.back().diff2 += gnuDiff.files[1].missing_newline ? 0 : 1; } else if ( !gnuDiff.files[0].missing_newline ) { ++ diffList.back().nofEquals; } */ } } #ifndef NDEBUG // Verify difflist { int l1=0; int l2=0; DiffList::iterator i; for( i = diffList.begin(); i!=diffList.end(); ++i ) { l1+= i->nofEquals + i->diff1; l2+= i->nofEquals + i->diff2; } //if( l1!=p1-p1start || l2!=p2-p2start ) if( l1!=size1 || l2!=size2 ) assert( false ); } #endif pp.setCurrent(1.0); return true; } bool runDiff( const LineData* p1, int size1, const LineData* p2, int size2, DiffList& diffList, int winIdx1, int winIdx2, ManualDiffHelpList *pManualDiffHelpList, Options *pOptions) { diffList.clear(); DiffList diffList2; int l1begin = 0; int l2begin = 0; ManualDiffHelpList::const_iterator i; for( i = pManualDiffHelpList->begin(); i!=pManualDiffHelpList->end(); ++i ) { const ManualDiffHelpEntry& mdhe = *i; int l1end = winIdx1 == 1 ? mdhe.lineA1 : winIdx1==2 ? mdhe.lineB1 : mdhe.lineC1 ; int l2end = winIdx2 == 1 ? mdhe.lineA1 : winIdx2==2 ? mdhe.lineB1 : mdhe.lineC1 ; if ( l1end>=0 && l2end>=0 ) { runDiff( p1+l1begin, l1end-l1begin, p2+l2begin, l2end-l2begin, diffList2, pOptions); diffList.splice( diffList.end(), diffList2 ); l1begin = l1end; l2begin = l2end; l1end = winIdx1 == 1 ? mdhe.lineA2 : winIdx1==2 ? mdhe.lineB2 : mdhe.lineC2 ; l2end = winIdx2 == 1 ? mdhe.lineA2 : winIdx2==2 ? mdhe.lineB2 : mdhe.lineC2 ; if ( l1end>=0 && l2end>=0 ) { ++l1end; // point to line after last selected line ++l2end; runDiff( p1+l1begin, l1end-l1begin, p2+l2begin, l2end-l2begin, diffList2, pOptions); diffList.splice( diffList.end(), diffList2 ); l1begin = l1end; l2begin = l2end; } } } runDiff( p1+l1begin, size1-l1begin, p2+l2begin, size2-l2begin, diffList2, pOptions); diffList.splice( diffList.end(), diffList2 ); return true; } void correctManualDiffAlignment( Diff3LineList& d3ll, ManualDiffHelpList* pManualDiffHelpList ) { if ( pManualDiffHelpList->empty() ) return; // If a line appears unaligned in comparison to the manual alignment, correct this. ManualDiffHelpList::iterator iMDHL; for( iMDHL = pManualDiffHelpList->begin(); iMDHL != pManualDiffHelpList->end(); ++iMDHL ) { Diff3LineList::iterator i3 = d3ll.begin(); int winIdxPreferred = 0; int missingWinIdx = 0; int alignedSum = (iMDHL->lineA1<0?0:1) + (iMDHL->lineB1<0?0:1) + (iMDHL->lineC1<0?0:1); if (alignedSum==2) { // If only A & B are aligned then let C rather be aligned with A // If only A & C are aligned then let B rather be aligned with A // If only B & C are aligned then let A rather be aligned with B missingWinIdx = iMDHL->lineA1<0 ? 1 : (iMDHL->lineB1<0 ? 2 : 3 ); winIdxPreferred = missingWinIdx == 1 ? 2 : 1; } else if (alignedSum<=1) { return; } // At the first aligned line, move up the two other lines into new d3ls until the second input is aligned // Then move up the third input until all three lines are aligned. int wi=0; for( ; i3!=d3ll.end(); ++i3 ) { for ( wi=1; wi<=3; ++wi ) { if ( i3->getLineInFile(wi) >= 0 && iMDHL->firstLine(wi) == i3->getLineInFile(wi) ) break; } if ( wi<=3 ) break; } if (wi>=1 && wi <= 3) { // Found manual alignment for one source Diff3LineList::iterator iDest = i3; // Move lines up until the next firstLine is found. Omit wi from move and search. int wi2=0; for( ; i3!=d3ll.end(); ++i3 ) { for ( wi2=1; wi2<=3; ++wi2 ) { if ( wi!=wi2 && i3->getLineInFile(wi2) >= 0 && iMDHL->firstLine(wi2) == i3->getLineInFile(wi2) ) break; } if (wi2>3) { // Not yet found // Move both others up Diff3Line d3l; // Move both up if (wi==1) // Move B and C up { d3l.bBEqC = i3->bBEqC; d3l.lineB = i3->lineB; d3l.lineC = i3->lineC; i3->lineB = -1; i3->lineC = -1; } if (wi==2) // Move A and C up { d3l.bAEqC = i3->bAEqC; d3l.lineA = i3->lineA; d3l.lineC = i3->lineC; i3->lineA = -1; i3->lineC = -1; } if (wi==3) // Move A and B up { d3l.bAEqB = i3->bAEqB; d3l.lineA = i3->lineA; d3l.lineB = i3->lineB; i3->lineA = -1; i3->lineB = -1; } i3->bAEqB = false; i3->bAEqC = false; i3->bBEqC = false; d3ll.insert( iDest, d3l ); } else { // align the found line with the line we already have here if ( i3 != iDest ) { if (wi2==1) { iDest->lineA = i3->lineA; i3->lineA = -1; i3->bAEqB = false; i3->bAEqC = false; } else if (wi2==2) { iDest->lineB = i3->lineB; i3->lineB = -1; i3->bAEqB = false; i3->bBEqC = false; } else if (wi2==3) { iDest->lineC = i3->lineC; i3->lineC = -1; i3->bBEqC = false; i3->bAEqC = false; } } if ( missingWinIdx!=0 ) { for( ; i3!=d3ll.end(); ++i3 ) { int wi3 = missingWinIdx; if ( i3->getLineInFile(wi3) >= 0 ) { // not found, move the line before iDest Diff3Line d3l; if ( wi3==1 ) { if (i3->bAEqB) // Stop moving lines up if one equal is found. break; d3l.lineA = i3->lineA; i3->lineA = -1; i3->bAEqB = false; i3->bAEqC = false; } if ( wi3==2 ) { if (i3->bAEqB) break; d3l.lineB = i3->lineB; i3->lineB = -1; i3->bAEqB = false; i3->bBEqC = false; } if ( wi3==3 ) { if (i3->bAEqC) break; d3l.lineC = i3->lineC; i3->lineC = -1; i3->bAEqC = false; i3->bBEqC = false; } d3ll.insert( iDest, d3l ); } } // for(), searching for wi3 } break; } } // for(), searching for wi2 } // if, wi found } // for (iMDHL) } // Fourth step void calcDiff3LineListTrim( Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC, ManualDiffHelpList* pManualDiffHelpList ) { const Diff3Line d3l_empty; d3ll.remove( d3l_empty ); Diff3LineList::iterator i3 = d3ll.begin(); Diff3LineList::iterator i3A = d3ll.begin(); Diff3LineList::iterator i3B = d3ll.begin(); Diff3LineList::iterator i3C = d3ll.begin(); int line=0; // diff3line counters int lineA=0; // int lineB=0; int lineC=0; ManualDiffHelpList::iterator iMDHL = pManualDiffHelpList->begin(); // The iterator i3 and the variable line look ahead. // The iterators i3A, i3B, i3C and corresponding lineA, lineB and lineC stop at empty lines, if found. // If possible, then the texts from the look ahead will be moved back to the empty places. for( ; i3!=d3ll.end(); ++i3, ++line ) { if ( iMDHL!=pManualDiffHelpList->end() ) { if ( (i3->lineA >= 0 && i3->lineA==iMDHL->lineA1) || (i3->lineB >= 0 && i3->lineB==iMDHL->lineB1) || (i3->lineC >= 0 && i3->lineC==iMDHL->lineC1) ) { i3A = i3; i3B = i3; i3C = i3; lineA = line; lineB = line; lineC = line; ++iMDHL; } } if( line>lineA && (*i3).lineA != -1 && (*i3A).lineB!=-1 && (*i3A).bBEqC && ::equal( pldA[(*i3).lineA], pldB[(*i3A).lineB], false ) && isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineB, 1, 2 ) && isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineC, 1, 3 ) ) { // Empty space for A. A matches B and C in the empty line. Move it up. (*i3A).lineA = (*i3).lineA; (*i3A).bAEqB = true; (*i3A).bAEqC = true; (*i3).lineA = -1; (*i3).bAEqB = false; (*i3).bAEqC = false; ++i3A; ++lineA; } if( line>lineB && (*i3).lineB != -1 && (*i3B).lineA!=-1 && (*i3B).bAEqC && ::equal( pldB[(*i3).lineB], pldA[(*i3B).lineA], false ) && isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineA, 2, 1 ) && isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineC, 2, 3 ) ) { // Empty space for B. B matches A and C in the empty line. Move it up. (*i3B).lineB = (*i3).lineB; (*i3B).bAEqB = true; (*i3B).bBEqC = true; (*i3).lineB = -1; (*i3).bAEqB = false; (*i3).bBEqC = false; ++i3B; ++lineB; } if( line>lineC && (*i3).lineC != -1 && (*i3C).lineA!=-1 && (*i3C).bAEqB && ::equal( pldC[(*i3).lineC], pldA[(*i3C).lineA], false )&& isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineA, 3, 1 ) && isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineB, 3, 2 ) ) { // Empty space for C. C matches A and B in the empty line. Move it up. (*i3C).lineC = (*i3).lineC; (*i3C).bAEqC = true; (*i3C).bBEqC = true; (*i3).lineC = -1; (*i3).bAEqC = false; (*i3).bBEqC = false; ++i3C; ++lineC; } if( line>lineA && (*i3).lineA != -1 && !(*i3).bAEqB && !(*i3).bAEqC && isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineB, 1, 2 ) && isValidMove( pManualDiffHelpList, (*i3).lineA, (*i3A).lineC, 1, 3 ) ) { // Empty space for A. A doesn't match B or C. Move it up. (*i3A).lineA = (*i3).lineA; (*i3).lineA = -1; ++i3A; ++lineA; } if( line>lineB && (*i3).lineB != -1 && !(*i3).bAEqB && !(*i3).bBEqC && isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineA, 2, 1 ) && isValidMove( pManualDiffHelpList, (*i3).lineB, (*i3B).lineC, 2, 3 ) ) { // Empty space for B. B matches neither A nor C. Move B up. (*i3B).lineB = (*i3).lineB; (*i3).lineB = -1; ++i3B; ++lineB; } if( line>lineC && (*i3).lineC != -1 && !(*i3).bAEqC && !(*i3).bBEqC && isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineA, 3, 1 ) && isValidMove( pManualDiffHelpList, (*i3).lineC, (*i3C).lineB, 3, 2 ) ) { // Empty space for C. C matches neither A nor B. Move C up. (*i3C).lineC = (*i3).lineC; (*i3).lineC = -1; ++i3C; ++lineC; } if( line>lineA && line>lineB && (*i3).lineA != -1 && (*i3).bAEqB && !(*i3).bAEqC ) { // Empty space for A and B. A matches B, but not C. Move A & B up. Diff3LineList::iterator i = lineA > lineB ? i3A : i3B; int l = lineA > lineB ? lineA : lineB; if ( isValidMove( pManualDiffHelpList, i->lineC, (*i3).lineA, 3, 1 ) && isValidMove( pManualDiffHelpList, i->lineC, (*i3).lineB, 3, 2 ) ) { (*i).lineA = (*i3).lineA; (*i).lineB = (*i3).lineB; (*i).bAEqB = true; (*i3).lineA = -1; (*i3).lineB = -1; (*i3).bAEqB = false; i3A = i; i3B = i; ++i3A; ++i3B; lineA=l+1; lineB=l+1; } } else if( line>lineA && line>lineC && (*i3).lineA != -1 && (*i3).bAEqC && !(*i3).bAEqB ) { // Empty space for A and C. A matches C, but not B. Move A & C up. Diff3LineList::iterator i = lineA > lineC ? i3A : i3C; int l = lineA > lineC ? lineA : lineC; if ( isValidMove( pManualDiffHelpList, i->lineB, (*i3).lineA, 2, 1 ) && isValidMove( pManualDiffHelpList, i->lineB, (*i3).lineC, 2, 3 ) ) { (*i).lineA = (*i3).lineA; (*i).lineC = (*i3).lineC; (*i).bAEqC = true; (*i3).lineA = -1; (*i3).lineC = -1; (*i3).bAEqC = false; i3A = i; i3C = i; ++i3A; ++i3C; lineA=l+1; lineC=l+1; } } else if( line>lineB && line>lineC && (*i3).lineB != -1 && (*i3).bBEqC && !(*i3).bAEqC ) { // Empty space for B and C. B matches C, but not A. Move B & C up. Diff3LineList::iterator i = lineB > lineC ? i3B : i3C; int l = lineB > lineC ? lineB : lineC; if ( isValidMove( pManualDiffHelpList, i->lineA, (*i3).lineB, 1, 2 ) && isValidMove( pManualDiffHelpList, i->lineA, (*i3).lineC, 1, 3 ) ) { (*i).lineB = (*i3).lineB; (*i).lineC = (*i3).lineC; (*i).bBEqC = true; (*i3).lineB = -1; (*i3).lineC = -1; (*i3).bBEqC = false; i3B = i; i3C = i; ++i3B; ++i3C; lineB=l+1; lineC=l+1; } } if ( (*i3).lineA != -1 ) { lineA = line+1; i3A = i3; ++i3A; } if ( (*i3).lineB != -1 ) { lineB = line+1; i3B = i3; ++i3B; } if ( (*i3).lineC != -1 ) { lineC = line+1; i3C = i3; ++i3C; } } d3ll.remove( d3l_empty ); /* Diff3LineList::iterator it = d3ll.begin(); int li=0; for( ; it!=d3ll.end(); ++it, ++li ) { printf( "%4d %4d %4d %4d A%c=B A%c=C B%c=C\n", li, (*it).lineA, (*it).lineB, (*it).lineC, (*it).bAEqB ? '=' : '!', (*it).bAEqC ? '=' : '!', (*it).bBEqC ? '=' : '!' ); } */ } void DiffBufferInfo::init( Diff3LineList* pD3ll, const Diff3LineVector* pD3lv, const LineData* pldA, int sizeA, const LineData* pldB, int sizeB, const LineData* pldC, int sizeC ) { m_pDiff3LineList = pD3ll; m_pDiff3LineVector = pD3lv; m_pLineDataA = pldA; m_pLineDataB = pldB; m_pLineDataC = pldC; m_sizeA = sizeA; m_sizeB = sizeB; m_sizeC = sizeC; Diff3LineList::iterator i3 = pD3ll->begin(); for( ; i3!=pD3ll->end(); ++i3 ) { i3->m_pDiffBufferInfo = this; } } void calcWhiteDiff3Lines( Diff3LineList& d3ll, const LineData* pldA, const LineData* pldB, const LineData* pldC ) { Diff3LineList::iterator i3 = d3ll.begin(); for( ; i3!=d3ll.end(); ++i3 ) { i3->bWhiteLineA = ( (*i3).lineA == -1 || pldA==0 || pldA[(*i3).lineA].whiteLine() || pldA[(*i3).lineA].bContainsPureComment ); i3->bWhiteLineB = ( (*i3).lineB == -1 || pldB==0 || pldB[(*i3).lineB].whiteLine() || pldB[(*i3).lineB].bContainsPureComment ); i3->bWhiteLineC = ( (*i3).lineC == -1 || pldC==0 || pldC[(*i3).lineC].whiteLine() || pldC[(*i3).lineC].bContainsPureComment ); } } inline bool equal( QChar c1, QChar c2, bool /*bStrict*/ ) { // If bStrict then white space doesn't match //if ( bStrict && ( c1==' ' || c1=='\t' ) ) // return false; return c1==c2; } // My own diff-invention: template void calcDiff( const T* p1, int size1, const T* p2, int size2, DiffList& diffList, int match, int maxSearchRange ) { diffList.clear(); const T* p1start = p1; const T* p2start = p2; const T* p1end=p1+size1; const T* p2end=p2+size2; for(;;) { int nofEquals = 0; while( p1!=p1end && p2!=p2end && equal(*p1, *p2, false) ) { ++p1; ++p2; ++nofEquals; } bool bBestValid=false; int bestI1=0; int bestI2=0; int i1=0; int i2=0; for( i1=0; ; ++i1 ) { if ( &p1[i1]==p1end || ( bBestValid && i1>= bestI1+bestI2)) { break; } for(i2=0;i2=bestI1+bestI2) ) { break; } else if( equal( p2[i2], p1[i1], true ) && ( match==1 || abs(i1-i2)<3 || ( &p2[i2+1]==p2end && &p1[i1+1]==p1end ) || ( &p2[i2+1]!=p2end && &p1[i1+1]!=p1end && equal( p2[i2+1], p1[i1+1], false )) ) ) { if ( i1+i2 < bestI1+bestI2 || bBestValid==false ) { bestI1 = i1; bestI2 = i2; bBestValid = true; break; } } } } // The match was found using the strict search. Go back if there are non-strict // matches. while( bestI1>=1 && bestI2>=1 && equal( p1[bestI1-1], p2[bestI2-1], false ) ) { --bestI1; --bestI2; } bool bEndReached = false; if (bBestValid) { // continue somehow Diff d(nofEquals, bestI1, bestI2); diffList.push_back( d ); p1 += bestI1; p2 += bestI2; } else { // Nothing else to match. Diff d(nofEquals, p1end-p1, p2end-p2); diffList.push_back( d ); bEndReached = true; //break; } // Sometimes the algorithm that chooses the first match unfortunately chooses // a match where later actually equal parts don't match anymore. // A different match could be achieved, if we start at the end. // Do it, if it would be a better match. int nofUnmatched = 0; const T* pu1 = p1-1; const T* pu2 = p2-1; while ( pu1>=p1start && pu2>=p2start && equal( *pu1, *pu2, false ) ) { ++nofUnmatched; --pu1; --pu2; } Diff d = diffList.back(); if ( nofUnmatched > 0 ) { // We want to go backwards the nofUnmatched elements and redo // the matching d = diffList.back(); Diff origBack = d; diffList.pop_back(); while ( nofUnmatched > 0 ) { if ( d.diff1 > 0 && d.diff2 > 0 ) { --d.diff1; --d.diff2; --nofUnmatched; } else if ( d.nofEquals > 0 ) { --d.nofEquals; --nofUnmatched; } if ( d.nofEquals==0 && (d.diff1==0 || d.diff2==0) && nofUnmatched>0 ) { if ( diffList.empty() ) break; d.nofEquals += diffList.back().nofEquals; d.diff1 += diffList.back().diff1; d.diff2 += diffList.back().diff2; diffList.pop_back(); bEndReached = false; } } if ( bEndReached ) diffList.push_back( origBack ); else { p1 = pu1 + 1 + nofUnmatched; p2 = pu2 + 1 + nofUnmatched; diffList.push_back( d ); } } if ( bEndReached ) break; } #ifndef NDEBUG // Verify difflist { int l1=0; int l2=0; DiffList::iterator i; for( i = diffList.begin(); i!=diffList.end(); ++i ) { l1+= i->nofEquals + i->diff1; l2+= i->nofEquals + i->diff2; } //if( l1!=p1-p1start || l2!=p2-p2start ) if( l1!=size1 || l2!=size2 ) assert( false ); } #endif } bool fineDiff( Diff3LineList& diff3LineList, int selector, const LineData* v1, const LineData* v2 ) { // Finetuning: Diff each line with deltas ProgressProxy pp; int maxSearchLength=500; Diff3LineList::iterator i; int k1=0; int k2=0; bool bTextsTotalEqual = true; int listSize = diff3LineList.size(); int listIdx = 0; for( i= diff3LineList.begin(); i!= diff3LineList.end(); ++i) { if (selector==1){ k1=i->lineA; k2=i->lineB; } else if (selector==2){ k1=i->lineB; k2=i->lineC; } else if (selector==3){ k1=i->lineC; k2=i->lineA; } else assert(false); if( (k1==-1 && k2!=-1) || (k1!=-1 && k2==-1) ) bTextsTotalEqual=false; if( k1!=-1 && k2!=-1 ) { if ( v1[k1].size != v2[k2].size || memcmp( v1[k1].pLine, v2[k2].pLine, v1[k1].size<<1)!=0 ) { bTextsTotalEqual = false; DiffList* pDiffList = new DiffList; calcDiff( v1[k1].pLine, v1[k1].size, v2[k2].pLine, v2[k2].size, *pDiffList, 2, maxSearchLength ); // Optimize the diff list. DiffList::iterator dli; bool bUsefulFineDiff = false; for( dli = pDiffList->begin(); dli!=pDiffList->end(); ++dli) { if( dli->nofEquals >= 4 ) { bUsefulFineDiff = true; break; } } for( dli = pDiffList->begin(); dli!=pDiffList->end(); ++dli) { if( dli->nofEquals < 4 && (dli->diff1>0 || dli->diff2>0) && !( bUsefulFineDiff && dli==pDiffList->begin() ) ) { dli->diff1 += dli->nofEquals; dli->diff2 += dli->nofEquals; dli->nofEquals = 0; } } if (selector==1){ delete (*i).pFineAB; (*i).pFineAB = pDiffList; } else if (selector==2){ delete (*i).pFineBC; (*i).pFineBC = pDiffList; } else if (selector==3){ delete (*i).pFineCA; (*i).pFineCA = pDiffList; } else assert(false); } if ( (v1[k1].bContainsPureComment || v1[k1].whiteLine()) && (v2[k2].bContainsPureComment || v2[k2].whiteLine())) { if (selector==1){ i->bAEqB = true; } else if (selector==2){ i->bBEqC = true; } else if (selector==3){ i->bAEqC = true; } else assert(false); } } ++listIdx; pp.setCurrent(double(listIdx)/listSize); } return bTextsTotalEqual; } // Convert the list to a vector of pointers void calcDiff3LineVector( Diff3LineList& d3ll, Diff3LineVector& d3lv ) { d3lv.resize( d3ll.size() ); Diff3LineList::iterator i; int j=0; for( i= d3ll.begin(); i!= d3ll.end(); ++i, ++j) { d3lv[j] = &(*i); } assert( j==(int)d3lv.size() ); } kdiff3-0.9.97/configure0000755000175100001440000000442112001541076014224 0ustar joachimusers#!/bin/bash # Manually created configure function showUsage { printf "Usage: %s: [-d] [-o directory] [kde4|qt4] \n" $0 echo Example 1: $0 kde4 echo Example 2: $0 -d qt4 echo Options: echo -d ... enable debug echo -o \ ... specify other build directory echo The default build directory is based on the specified arguments. E.g.: \"releaseKde\" echo For requirements, more options and details in case of failure see the README. exit 2 } echo "configure for KDiff3 Qt4/KDE4 by Joachim Eibl" config=release outputDir="" currentDir=`pwd` while getopts do: flag do case $flag in d) config="debug";; o) outputDir="$OPTARG";; ?) showUsage;; esac done if [ ! -z "$debug" ]; then printf "Option -d specified\n" fi shift $(($OPTIND - 1)) #printf "Remaining arguments are: %s\n" "$*" if [ "$1" = "kde4" ]; then if [ "$outputDir" = "" ]; then outputDir="${config}Kde" fi echo Trying to build for KDE4. If anything fails see the README for details. echo Creating and entering subdir "$outputDir" mkdir "$outputDir" # create sub directory cd "$outputDir" echo "Running cmake \"$currentDir\" -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`" if [ config = "debug" ]; then cmake "$currentDir" -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` -DCMAKE_BUILD_TYPE=debugfull else cmake "$currentDir" -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` # create Makefile fi echo Running make. make # run make (compile and link) echo If everything went OK then KDiff3 was built in the subdir "$outputDir". echo "Install as root (requires password)." sudo make install # install as root user elif [ "$1" = "qt4" ]; then if [ "$outputDir" = "" ]; then outputDir="${config}Qt" fi echo Trying to build for Qt4 without KDE echo Creating and entering subdir "$outputDir" mkdir "$outputDir" # create sub directory cd "$outputDir" qmakecmd="qmake CONFIG+=$config \"$currentDir/src-QT4/kdiff3.pro\"" echo "Running $qmakecmd" $qmakecmd echo "Running make" make echo "If everything went OK then KDiff3 was built as $outputDir/kdiff3" else showUsage fi kdiff3-0.9.97/cmake/0000755000175100001440000000000011626145654013412 5ustar joachimuserskdiff3-0.9.97/cmake/modules/0000755000175100001440000000000011626145654015062 5ustar joachimuserskdiff3-0.9.97/cmake/modules/FindLibKonq.cmake0000644000175100001440000000226611626145651020227 0ustar joachimusers# - Try to find konqueror library # Once done this will define # # LIBKONQ_FOUND - system has libkonq library # LIBKONQ_INCLUDE_DIR - the LIBKONQ include directory # LIBKONQ_LIBRARY - the libkonq library # # Original file: FindMarbleWidget.cmake (found in digikam-0.10.0-beta2) # copyright 2008 by Patrick Spendrin # use this file as you like # # Modifications to find libkonq by Joachim Eibl 2008 if(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY) # Already in cache set(LIBKONQ_FOUND TRUE) else(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY) find_path(LIBKONQ_INCLUDE_DIR konq_popupmenuplugin.h ) find_library(LIBKONQ_LIBRARY konq) if(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY) set(LIBKONQ_FOUND TRUE) endif(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY) if(LIBKONQ_FOUND) if (NOT LIBKONQ_FIND_QUIETLY) message(STATUS "Found libkonq: ${LIBKONQ_LIBRARY}") endif (NOT LIBKONQ_FIND_QUIETLY) else(LIBKONQ_FOUND) if(LIBKONQ_FIND_REQUIRED) message(FATAL_ERROR "Could NOT find KDE4 libkonq library") endif(LIBKONQ_FIND_REQUIRED) endif(LIBKONQ_FOUND) mark_as_advanced(LIBKONQ_INCLUDE_DIR LIBKONQ_LIBRARY) endif(LIBKONQ_INCLUDE_DIR AND LIBKONQ_LIBRARY) kdiff3-0.9.97/TODO0000644000175100001440000001165111626145654013026 0ustar joachimusersThis file contains some feature-wishes for future KDiff3-versions. TODO ==== - Verknüpfungsziel für Links relativ anzeigen - KDiff3-Plugin sollte auch in Dolphin arbeiten - Alignmenttechnik bei Merge von 3 Dateien wählbar - Horizontales Scrolling reparieren - Fix drawing in columns A/B/C-directory window - Qt4-translation files - Double clicking into empty area causes crash - Option window is too big (within KDE). (Scrollable?) - Windows issues: - Diff-Ext-For-KDiff3 included in the installer - language selection from within KDiff3 - Export to html-format file - Export to diff-format output (and import?) - Export to diff3-format output (and import?) - Use diff-output as input - Variable width fonts. - Use regular expression to ignore certain patterns - Start without visible compare widgets. (? what did I mean by that) - Hardlinks -performance support - Manual alignment during merge should tell user his data will be lost - Installer for windows for users. - "List Only Deltas" causes directory merge to delete files (https://sourceforge.net/tracker/index.php?func=detail&aid=1004853&group_id=58666&atid=488548) - Diff-view for binary files - Diff-view for pictures > > What I find weird is that KDiff3 first creates the 3-way merge view (so > > the window splits in 4 parts), then closes that and reopens in 2-way > > diff view. I've never seen the binary package do that. Can this be fixed? - Only show different lines. - ftp: Abbruch beim Einlesen von Verzeichnis stoppt nicht vollständig - Projekt-Verwaltung: Die ganze Config-Datei (=Projektdatei) an einen benutzerdefinierten Ort zu legen. (Keine Angabe->Default) - Bei Combobox-History alle Elemente von (A/B/C/Out) anzeigen. - Test on empty floppy drive. -I suppose this has been asked before, but are there any plans to use colors for change/insert/delete (i.e. blue = change, green = insert, red = delete)? > I want to compare two revisions of a file (eventually I wanna do this on > two directory hierarchies of files) and have an output of how many lines > of code were added, modified, and deleted for each file and overall. > Also, for "Send To" from Windows, it would be nice if I could pick one > file via Send To, find the second file (if it's in a different > directory), and click "Send To" again to compare. I.e., when user does > "Send To", if one instance is already open and waiting for a second > file, the first instance is used. - kdiff3 does not preserve the permissions of files it overwrites during a 'save' operation. - Insbesondere Ausführbarkeit "x" und Schreibschutz "w" sollten erhalten bleiben. - Under Windows: Shortcut Ctrl-Shift-2 (for select B everywhere doesn't work.) - Paste from Clipboard doesn't work. - Bug: Comment section isn't recognized as nonwhite difference if several lines are between /* and */ on one side. - Overview-option to show only remaining conflicts. - Overview bar for merge-window and for directory-window. - ??? The gutters (kdiff3 have 2 "gutters") fonts and background-foreground colors sholud be configured other than the "general" foreground-background colors. Otherwise they are confused with the main dialog. - Try to autodetect the line-end-style - Ignore cvs-keywords like $Revision: x.y$ - Undo function in the merge-editor. - More viewing options for directory widget. - And one observation. When select Cyrillic charset - it looks like it was not saved. When open this dialog again - Latin charset is selected anyway. - Add options to specify charset. - Ask before saving to a file that already exists (optionally). - Don't overwrite existing .orig-file, when saving the second time. - File Menu: Close (Ctrl-F4): Close current file (check if saved and forget the data) - Dirview: - Multiselections: Changing Operations or applying ops for all selected items. - Optionally show size/date for A/B/C - Choose what to see (all or only different items) - If only different items are visible: copy the others nevertheless to destdir. - Warnung wenn Datum in B oder C älter als A ist. - Zielverzeichnis nachträglich änderbar - Bei Kopie von Remote nach lokal: Auf jeden Fall das modification Datum setzen. - Ctrl-Space doesn't work when a file comparison takes place. - Option to allow case-insensitive filename-matching. - Options to show/suppress annoying messages - What's this-Help. - Tip of the day. More Statistics before the merge begins: - How many files are there? - How many files are equal/different? - How many files would be copies/merged/ignored? - Allow to view and merge CVS-conflict files (and diff3-output) and allow to save output with conflicts in diff3 output-format. - Provide configure-rules for systems without KDE. (I need help here.) - Allow different comment-styles (e.g. via a regexp for comments) - Possibility to jump to next difference in the same line (for very long lines). - Allow analysis of unified directory-diff/patch-file. - LineEdit for Save-Filename kdiff3-0.9.97/kdiff3.spec0000644000175100001440000000304411626145654014355 0ustar joachimusersName: kdiff3 Version: 0.9.95 Release: 1 URL: http://www.kde-apps.org/content/show.php?content=9807 License: GPL Summary: Tool for Comparison and Merge of Files and Directories Group: Development/Tools Source: http://heanet.dl.sourceforge.net/sourceforge/kdiff3/kdiff3-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root Requires: kdelibs > 4.1 BuildRequires: gcc-c++ >= 4.1 BuildRequires: xorg-x11-devel BuildRequires: qt-devel >= 4.4 BuildRequires: kdelibs-devel >= 4.1 BuildRequires: libkonq-devel >= 4.1 %description Shows the differences line by line and character by character (!). Provides an automatic merge-facility and an integrated editor for comfortable solving of merge-conflicts. Supports KIO on KDE (allows accessing ftp, sftp, fish, smb etc.). Unicode & UTF-8 support %prep %setup %build [ -n "$QTDIR" ] || . %{_sysconfdir}/profile.d/qt.sh export KDEDIR=%{_prefix} %configure --prefix=/usr %{__make} %{?_smp_mflags} %install %{__rm} -rf %{buildroot} source /etc/profile.d/qt.sh %makeinstall %clean %{__rm} -rf %{buildroot} %files %doc AUTHORS ChangeLog COPYING NEWS README TODO %{_bindir}/kdiff3 %{_datadir}/applnk/* %{_datadir}/apps/kdiff3/* %{_datadir}/apps/kdiff3part/* %{_datadir}/doc/HTML/* %{_datadir}/icons/* %{_datadir}/locale/* %{_datadir}/man/man1/kdiff3* %{_datadir}/services/kdiff3* %{_libdir}/kde4/libkdiff3* %changelog * Fri Nov 21 2008 Joachim Eibl - 0.9.94-1 - Untested changes for KDE4. * Mon May 15 2006 Vadim Likhota - 0.9.90-1.fc - write spec for fc/rhel/centos/asp for kdiff3 kdiff3-0.9.97/CMakeLists.txt0000644000175100001440000000365411626145604015075 0ustar joachimuserscmake_minimum_required(VERSION 2.6) project(kdiff3) find_package(KDE4 REQUIRED) include (MacroLibrary) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) include_directories( ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ) link_directories( ${KDE4_LIB_DIR} ) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-kdiff3.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdiff3.h ) add_subdirectory(src-QT4) add_subdirectory(po) add_subdirectory(doc) find_file(KFILEITEMACTIONPLUGIN_FOUND kfileitemactionplugin.h PATHS ${KDE4_INCLUDE_DIR} NO_DEFAULT_PATH) if(KFILEITEMACTIONPLUGIN_FOUND) message(STATUS "") message(STATUS "kfileitemactionplugin.h found........... YES") message(STATUS " => kdiff3fileitemactionplugin (KDiff3 contextmenu plugin for Konqueror/Dolphin, KDE>4.6) will be built.") message(STATUS "") add_subdirectory(kdiff3fileitemactionplugin) else(KFILEITEMACTIONPLUGIN_FOUND) message(STATUS "") message(STATUS "kfileitemactionplugin.h found........... NO") message(STATUS " => kdiff3fileitemactionplugin (KDiff3 contextmenu plugin for Konqueror/Dolphin, KDE>4.6) will not be built.)") message(STATUS "Trying fallback via libkonq (works with Konqueror only) ...") MACRO_OPTIONAL_FIND_PACKAGE(LibKonq) MACRO_BOOL_TO_01(LIBKONQ_FOUND HAVE_LIBKONQ) if(LIBKONQ_FOUND) message(STATUS "") message(STATUS "libkonq module found........... YES") message(STATUS " => kdiff3plugin (KDiff3 contextmenu plugin for Konqueror) will be built.") message(STATUS "") add_subdirectory(kdiff3plugin-QT4) else(LIBKONQ_FOUND) message(STATUS "") message(STATUS "libkonq module found........... NO") message(STATUS " => kdiff3plugin (KDiff3 contextmenu plugin for Konqueror) will not be built.)") message(STATUS "") endif(LIBKONQ_FOUND) endif(KFILEITEMACTIONPLUGIN_FOUND) kdiff3-0.9.97/INSTALL0000644000175100001440000000004711626145653013363 0ustar joachimusersPlease read the README-file. Joachim kdiff3-0.9.97/README0000644000175100001440000002254112011205630013172 0ustar joachimusersKDiff3-Readme ============= Author: Joachim Eibl (joachim.eibl at gmx.de) Copyright: (C) 2002-2012 by Joachim Eibl KDiff3-Version: 0.9.97 KDiff3 runs best on KDE but can be built without it, depending only on Qt-libs. These are available for Un*x, Windows, Mac. Thus there are many setup possibilities to consider. From version 0.9.94 on the main target platform is KDE4/Qt4. For KDiff3 for KDE3/Qt3 use KDiff3-0.9.92 or older. Contents -------- - Introduction - License - Requirements & Installation - For KDE4 - With Qt4-libs, without KDE - for Linux/Un*x - for Windows - Debugging with MinGW under Windows: - for Mac: Building KDiff3 for Mac OSX (with Intel processor) as a universal binary - Creating and installing translation messages - Additional hints Introduction ------------ KDiff3 is a program that - compares and merges two or three input files or directories, - shows the differences line by line and character by character (!), - provides an automatic merge-facility and - an integrated editor for comfortable solving of merge-conflicts - has support for KDE-KIO (ftp, sftp, http, fish, smb), - has an intuitive graphical user interface, - provides a context menu for KDE-Konqueror and Windows-Explorer, - supports 64 bit systems. (Some build issues are discussed in here.) Do you want help translating? Read the README in the po-subdirectory! License ------- GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor, Boston, MA 02111-1307 USA For details see file "COPYING". Requirements & Installation --------------------------- - for KDE4: From version 0.9.94 on KDiff3 supports KDE4. For installation on most distributions you usually also need these packages (names as on opensuse): - g++ (g++, version 3.4 or newer) - libqt4-devel (Qt4-libs, version 4.4.0 or newer) - libkde4-devel (KDE4 Header files and development libraries) - libkonq-devel (optional, needed for the kdiff3-plugin, if not installed then the contextmenu plugin for konqueror won't be built.) - cmake (>2.6, checks dependencies and creates the appropriate Makefiles for your system) Typically in a terminal (e.g. konsole) you cd into the kdiff3-directory and run "./configure kde4". This script is essentially the same as these commands: mkdir releaseKde cd releaseKde # Find out your KDE4-directory and note the result kde4-config --prefix # create Makefile, replace with the prior result cmake .. -DCMAKE_INSTALL_PREFIX= # run make (compile and link) make # install as root user sudo make install Now KDiff3 should be ready to use. Type "kdiff3" to start it. There should also be a entry in your KDE-start menu in "(Applications->)Development". For creating a debug version: mkdir debug cd debug # Find out your KDE4-directory and note the result kde4-config --prefix cmake .. -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=debugfull make sudo make install The depends on your distribution: The command "kde4-config --prefix" should tell you. - For opensuse 11 use "/usr". - Building KDiff3 with Qt4-libs, but without KDE - for Linux/Un*x - for Windows - for Mac The version 0.9.97 requires Qt 4.4.0 or newer (from http://qt-project.org/) for compilation. You always need: - kdiff3-0.9.97.tar.gz - for Un*x: gcc, g++ with version >=3.4.2 Qt-X11-libraries - for Windows: Qt-win-libs If you have the Qt4 commercial edition, then compile with Visual Studio.NET 2003 or newer. If you use the Qt4 open source edition, then you'll need MinGW. I verified that compilation and debugging works with these packages (probably newer ones will also work): - Use MinGW-5.1.4.exe or newer to install the following or newer: - gcc-core-3.4.5-20060117-1.tar.gz - binutils-2.17.50-20060824-1.tar.gz - gcc-g++-3.4.5-20060117-1.tar.gz - mingw-runtime-3.14.tar.gz - mingw32-make-3.81-2.tar.gz - w32api-3.11.tar.gz - gdb-6.3-2.exe (for debugging) - for Mac: gcc, g++ with version >=3.4.2 Qt-Mac-libraries - Optional: Qt Creator IDE: Development environment optimized for Qt (from http://qt-project.org) Build-instructions (Un*x): Assuming Qt is correctly installed run "./configure qt4" which essentially does the same as: - mkdir releaseQt - cd releaseQt - qmake ../src-QT4/kdiff3.pro - make (or "gmake" for GNU-Make) Build-instructions (Windows): - If you use Qt Creator from the SDK just load the src-QT4\kdiff3.pro file and build. On the command line (cmd.exe): - set QTDIR= e.g.: c:\qt\4.4.1 set "PATH=%QTDIR%\bin;%PATH%" - Prepare compiler settings: For Visual Studio run the respective vsvars32.bat For MinGW add the path: E.g. set "PATH=c:\mingw\bin;%PATH%" - cd into the directory kdiff3-0.9.97\src-Qt4 and type - qmake kdiff3.pro - Either "nmake" for Visual Studio or "mingw32-make" depending on what you have. Debugging with MinGW under Windows: - Qt Creator worked very well as debugger frontend too! - Debugging without gdb on the console: - The qt-win-opensource-4.4.1-mingw.exe only installs release dlls. You will have to compile the debug dlls yourself. Enter the qt-4.4.1-directory and run "configure -debug" and then "mingw32-make". - cd into the directory kdiff3-0.9.97\src-Qt4 - edit the file "Makefile.Debug" and in the LFLAGS replace "-Wl,-subsystem,windows" with "-Wl,-subsystem,console" (this is necessary so that gdb can send a break signal to the running program) - mingw32-make debug (create a debuggable executable) - gdb debug\kdiff3.exe - At the "(gdb)"-prompt type "run" and enter to start. - While the program runs you can't set breakpoints, first interrupt it with Ctrl-C. - Use "help" to find out about how to use gdb. (Important commands: run, break, backtrace, print, quit) Using break with c++-methods requires to specify the parameter types too. Breakpoints in constructors might not work. Building KDiff3 (Qt4) for Mac OSX: 0) Build with Qt Creator from the SDK and src-QT4\kdiff3.pro. Building a universal binary (by Michael Schmidt, perhaps outdated): 1) Install Qt/Mac 4.x with thread support, static libraries and universal flag. (For Qt4 run "configure -static"; only necessary if the final binary should not require shared Qt4-libs.) 2) cd .../kdiff3-0.9.97/src-QT4 3a) Create a makefile for kdiff3 by executing: qmake kdiff3.pro 3b) optionally generate XCode-Project (for debugging purposes only) by executing: qmake -spec macx-xcode kdiff3.pro 4) Execute: make 5) After the build completes copy kdiff3 from the kdiff3-0.9.97/src-QT4 directory to: /Applications Creating and installing the translation messages The po directory contains translations from the KDE-translation teams. If you use the Qt-only-version of KDiff3, then the installation described above won't install translations automatically. To create and install the translations: 1) cd .../kdiff3-0.9.97/po 2) sh create_qm_files install (asks for a super user password) Just to create the files in the po directory (as needed for the windows version): 2) sh create_qm_files local (End of KDiff3 with Qt4-instructions) ------------------------------------------------------------------------ Additional hints ---------------- Start from commandline: - Comparing 2 files: kdiff3 file1 file2 - Merging 2 files: kdiff3 file1 file2 -o outputfile - Comparing 3 files: kdiff3 file1 file2 file3 - Merging 3 files: kdiff3 file1 file2 file3 -o outputfile Note that file1 will be treated as base of file2 and file3. If all files have the same name but are in different directories, you can reduce typework by specifying the filename only for the first file. E.g.: - Comparing 3 files: kdiff3 dir1/filename dir2 dir3 (This also works in the open-dialog.) If you start without arguments, then a dialog will appear where you can select your files via a filebrowser. For more documentation, see the help-menu or the subdirectory doc. Have fun! kdiff3-0.9.97/kdiff3fileitemactionplugin/0000755000175100001440000000000012010303403017604 5ustar joachimuserskdiff3-0.9.97/kdiff3fileitemactionplugin/kdiff3fileitemaction.cpp0000644000175100001440000002312411561040152024406 0ustar joachimusers/* This file is part of the KDiff3 project Copyright (C) 2008 Joachim Eibl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "kdiff3fileitemaction.h" #include #include #include #include #include #include #include #include #include #include #include #include //#include static QStringList* s_pHistory=0; class KDiff3PluginHistory { KConfig* m_pConfig; KConfigGroup* m_pConfigGroup; public: KDiff3PluginHistory() { m_pConfig = 0; if (s_pHistory==0) { //std::cout << "New History: " << instanceName << std::endl; s_pHistory = new QStringList; m_pConfig = new KConfig( "kdiff3fileitemactionrc", KConfig::SimpleConfig ); m_pConfigGroup = new KConfigGroup( m_pConfig, "KDiff3Plugin" ); *s_pHistory = m_pConfigGroup->readEntry("HistoryStack", QStringList() ); } } ~KDiff3PluginHistory() { //std::cout << "Delete History" << std::endl; if ( s_pHistory && m_pConfigGroup ) m_pConfigGroup->writeEntry("HistoryStack",*s_pHistory); delete s_pHistory; delete m_pConfigGroup; delete m_pConfig; s_pHistory = 0; m_pConfig = 0; } }; static KDiff3PluginHistory s_history; K_PLUGIN_FACTORY(KDiff3FileItemActionFactory, registerPlugin();) K_EXPORT_PLUGIN(KDiff3FileItemActionFactory("kdiff3fileitemactionplugin")) KDiff3FileItemAction::KDiff3FileItemAction (QObject* pParent, const QVariantList & /*args*/) : KFileItemActionPlugin(pParent) { } QList KDiff3FileItemAction::actions( const KFileItemListProperties& fileItemInfos, QWidget* pParentWidget ) const { QList< QAction* > actions; if (KStandardDirs::findExe("kdiff3").isNull ()) return actions; KDiff3FileItemAction *pThis = const_cast(this); //pThis->m_fileItemInfos = fileItemInfos; pThis->m_pParentWidget = pParentWidget; QAction *pMenuAction = new QAction(KIcon("kdiff3"), i18n("KDiff3 ..."), pThis); QMenu *pActionMenu = new QMenu(); pMenuAction->setMenu( pActionMenu ); // remember currently selected files (copy to a QStringList) KUrl::List itemList = fileItemInfos.urlList(); foreach ( const KUrl& item, itemList ) { //m_urlList.append( item.url() ); pThis->m_list.append( item.url() ); } /* Menu structure: KDiff3 -> (1 File selected): Save 'selection' for later comparison (push onto history stack) Compare 'selection' with first file on history stack. Compare 'selection' with -> choice from history stack Merge 'selection' with first file on history stack. Merge 'selection' with last two files on history stack. (2 Files selected): Compare 's1' with 's2' Merge 's1' with 's2' (3 Files selected): Compare 's1', 's2' and 's3' */ QAction* pAction = 0; QString s; if(m_list.count() == 1) { int historyCount = s_pHistory ? s_pHistory->count() : 0; s = i18n("Compare with %1", (historyCount>0 ? s_pHistory->front() : QString()) ); pAction = new QAction ( s,pThis ); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWith())); pAction->setEnabled( m_list.count()>0 && historyCount>0 ); pActionMenu->addAction(pAction); s = i18n("Merge with %1", historyCount>0 ? s_pHistory->front() : QString() ); pAction = new QAction( s, pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeWith())); pAction->setEnabled( m_list.count()>0 && historyCount>0 ); pActionMenu->addAction (pAction); s = i18n("Save '%1' for later", ( m_list.front() ) ); pAction = new QAction ( s, pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotSaveForLater())); pAction->setEnabled( m_list.count()>0 ); pActionMenu->addAction(pAction); pAction = new QAction (i18n("3-way merge with base"), pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotMergeThreeWay())); pAction->setEnabled( m_list.count()>0 && historyCount>=2 ); pActionMenu->addAction (pAction); if ( s_pHistory && !s_pHistory->empty() ) { QAction* pHistoryMenuAction = new QAction( i18n("Compare with ..."), pThis ); QMenu* pHistoryMenu = new QMenu(); pHistoryMenuAction->setMenu( pHistoryMenu ); pHistoryMenu->setEnabled( m_list.count()>0 && historyCount>0 ); pActionMenu->addAction(pHistoryMenuAction); for (QStringList::iterator i = s_pHistory->begin(); i!=s_pHistory->end(); ++i) { pAction = new QAction( *i, pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareWithHistoryItem())); pHistoryMenu->addAction (pAction); } pAction = new QAction (i18n("Clear list"), pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotClearList())); pActionMenu->addAction (pAction); pAction->setEnabled( historyCount>0 ); } } else if(m_list.count() == 2) { pAction = new QAction (i18n("Compare"), pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareTwoFiles())); pActionMenu->addAction (pAction); } else if ( m_list.count() == 3 ) { pAction = new QAction (i18n("3 way comparison"), pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotCompareThreeFiles())); pActionMenu->addAction (pAction); } pAction = new QAction (i18n("About KDiff3 menu plugin ..."), pThis); connect( pAction, SIGNAL(triggered(bool)), this, SLOT(slotAbout())); pActionMenu->addAction (pAction); //pMenu->addSeparator(); //pMenu->addAction( pActionMenu ); //pMenu->addSeparator(); actions << pMenuAction; return actions; } KDiff3FileItemAction::~KDiff3FileItemAction () { } void KDiff3FileItemAction::slotCompareWith() { if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() ) { QStringList args; args << s_pHistory->front(); args << m_list.front(); KProcess::startDetached("kdiff3", args); } } void KDiff3FileItemAction::slotCompareWithHistoryItem() { const QAction* pAction = dynamic_cast( sender() ); if ( m_list.count() > 0 && pAction ) { QStringList args; args << pAction->text(); args << m_list.front(); KProcess::startDetached ("kdiff3", args); } } void KDiff3FileItemAction::slotCompareTwoFiles() { if ( m_list.count() == 2 ) { QStringList args; args << m_list.front(); args << m_list.back(); KProcess::startDetached ("kdiff3", args); } } void KDiff3FileItemAction::slotCompareThreeFiles() { if ( m_list.count() == 3 ) { QStringList args; args << m_list[0]; args << m_list[1]; args << m_list[2]; KProcess::startDetached ("kdiff3", args); } } void KDiff3FileItemAction::slotMergeWith() { if ( m_list.count() > 0 && s_pHistory && ! s_pHistory->empty() ) { QStringList args; args << s_pHistory->front(); args << m_list.front(); args << ( "-o" + m_list.front() ); KProcess::startDetached ("kdiff3", args); } } void KDiff3FileItemAction::slotMergeThreeWay() { if ( m_list.count() > 0 && s_pHistory && s_pHistory->count()>=2 ) { QStringList args; args << (*s_pHistory)[1]; args << (*s_pHistory)[0]; args << m_list.front(); args << ("-o" + m_list.front()); KProcess::startDetached ("kdiff3", args); } } void KDiff3FileItemAction::slotSaveForLater() { if ( !m_list.isEmpty() && s_pHistory ) { while ( s_pHistory->count()>=10 ) s_pHistory->pop_back(); s_pHistory->push_front( m_list.front() ); } } void KDiff3FileItemAction::slotClearList() { if ( s_pHistory ) s_pHistory->clear(); } void KDiff3FileItemAction::slotAbout() { QString s = i18n("KDiff3 File Item Action Plugin: Copyright (C) 2011 Joachim Eibl\n" "KDiff3 homepage: http://kdiff3.sourceforge.net\n\n"); s += i18n("Using the contextmenu extension:\n" "For simple comparison of two selected files choose \"Compare\".\n" "If the other file is somewhere else \"Save\" the first file for later. " "It will appear in the \"Compare With ...\" submenu. " "Then use \"Compare With\" on second file.\n" "For a 3-way merge first \"Save\" the base file, then the branch to merge and " "choose \"3-way merge with base\" on the other branch which will be used as destination.\n" "Same also applies to directory comparison and merge."); KMessageBox::information(m_pParentWidget, s, i18n("About KDiff3 File Item Action Plugin") ); } kdiff3-0.9.97/kdiff3fileitemactionplugin/CMakeLists.txt0000644000175100001440000000045311626145654022376 0ustar joachimuserskde4_add_plugin(kdiff3fileitemaction kdiff3fileitemaction.cpp) target_link_libraries(kdiff3fileitemaction ${KDE4_KIO_LIBS} ${LibKDiff3_LIBRARIES}) install(TARGETS kdiff3fileitemaction DESTINATION ${PLUGIN_INSTALL_DIR}) install(FILES kdiff3fileitemaction.desktop DESTINATION ${SERVICES_INSTALL_DIR}) kdiff3-0.9.97/kdiff3fileitemactionplugin/kdiff3fileitemaction.desktop0000644000175100001440000000704611632456710025314 0ustar joachimusers[Desktop Entry] Encoding=UTF-8 Type=Service Name=Compare/Merge Files/Directories with KDiff3 Name[bg]=Сравняване/Сливане на файлове/директории с KDiff3 Name[bs]=Poredi/Spoji datoteke/Direktorije sa KDiff3 Name[ca]=Compara/fusiona fitxers/directoris amb KDiff3 Name[ca@valencia]=Compara/fusiona fitxers/directoris amb KDiff3 Name[cs]=Porovnat/spojit soubory/adresáře pomocí KDiff3 Name[da]=Sammenlign/sammenflet filer/mapper med KDiff3 Name[de]=Dateien und Ordner vergleichen und zusammenführen mit KDiff3 Name[el]=Σύγκριση/Συγχώνευση αρχείων/καταλόγων με το KDiff3 Name[en_GB]=Compare/Merge Files/Directories with KDiff3 Name[es]=Comparar/fusionar archivos/directorios con KDiff3 Name[et]=Failide/kataloogide võrdlemine/liitmine KDiff3-ga Name[fr]=Comparaison / Fusion de fichiers / de dossiers à l'aide de KDiff3 Name[ga]=Cuir Comhaid/Comhadlanna i gComparáid agus Cumaisc iad le KDiff3 Name[gl]=Compara e fusionar ficheiros e cartafoles con KDiff3 Name[hi]=केडिफ़३ के साथ तुलना करें/मिलाएं फ़ाइलें/डिरेक्ट्रीज़ Name[hne]=केडिफ३ के साथ तुलना करव/मिलाव फाइल/डिरेक्टरीज मन ल Name[hu]=Fájlok/Könyvtárat KDiff3-mal való összehasonlítása/egyesítése Name[it]=Confronta o fondi file e cartelle con KDiff3 Name[ja]=KDiff3 でファイルやディレクトリを比較/マージ Name[km]=ប្រៀបធៀប/បញ្ចូល​ឯកសារ​ចូល​គ្នា/ថត​ជាមួយ KDiff3 Name[ko]=KDiff3으로 파일과 디렉터리를 비교하거나 병합합니다 Name[ml]=ഫയലുകള്‍/അറകള്‍ താരതമ്യം ചെയ്യുക/കെഡിഫ്3 ഉപയോഗിച്ചു് ലയിപ്പിക്കുക Name[nb]=Samenlikne/flette filer/mapper med KDiff3 Name[nds]=Verglieken Tosamenföhren vun Dateien/Ornern mit KDiff3 Name[nl]=Bestanden/mappen vergelijken/samenvoegen met KDiff3 Name[nn]=Samanlikn/flett filer og mapper med KDiff3 Name[pl]=Porównaj/Scal pliki/katalogi przy pomocy KDiff3 Name[pt]=Comparar/Juntar os Ficheiros/Pastas com o KDiff3 Name[pt_BR]=Comparar/Mesclar arquivos/pastas com o KDiff3 Name[ro]=Compară/unește fișiere/directoare cu KDiff3 Name[ru]=Сравнение и объединение файлов и каталогов в KDiff3 Name[sv]=Jämför, sammanfoga filer, kataloger med Kdiff3 Name[tr]=KDiff3 ile Dosyaları/Klasörleri Karşılaştır/Birleştir Name[uk]=Порівнюйте або з’єднуйте файли або теки з KDiff3 Name[x-test]=xxCompare/Merge Files/Directories with KDiff3xx Name[zh_CN]=使用 KDiff3 比较/合并 文件/目录 Name[zh_TW]=用 KDiff3 比較/合併檔案與目錄 X-KDE-Library=kdiff3fileitemaction X-KDE-Submenu=KDiff3 X-KDE-Submenu[bg]=KDiff3 X-KDE-Submenu[bs]=KDiff3 X-KDE-Submenu[ca]=KDiff3 X-KDE-Submenu[cs]=KDiff3 X-KDE-Submenu[da]=KDiff3 X-KDE-Submenu[de]=KDiff3 X-KDE-Submenu[el]=KDiff3 X-KDE-Submenu[es]=KDiff3 X-KDE-Submenu[et]=KDiff3 X-KDE-Submenu[fr]=KDiff3 X-KDE-Submenu[hu]=KDiff3 X-KDE-Submenu[it]=KDiff3 X-KDE-Submenu[nb]=KDiff3 X-KDE-Submenu[nds]=KDiff3 X-KDE-Submenu[nl]=KDiff3 X-KDE-Submenu[pl]=KDiff3 X-KDE-Submenu[pt]=KDiff3 X-KDE-Submenu[pt_BR]=KDiff3 X-KDE-Submenu[ru]=KDiff3 X-KDE-Submenu[sv]=Kdiff3 X-KDE-Submenu[uk]=KDiff3 X-KDE-Submenu[x-test]=xxKDiff3xx X-KDE-Submenu[zh_TW]=KDiff3 ServiceTypes=KFileItemAction/Plugin,inode/directory MimeType=application/octet-stream; kdiff3-0.9.97/kdiff3fileitemactionplugin/kdiff3fileitemaction.h0000644000175100001440000000332711626145654024075 0ustar joachimusers/* This file is part of the KDiff3 project Copyright (C) 2008 Joachim Eibl This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _KDIFF3FILEITEMACTIONPLUGIN_H_ #define _KDIFF3FILEITEMACTIONPLUGIN_H_ #include #include #include class QStringList; class KDiff3FileItemAction : public KFileItemActionPlugin { Q_OBJECT public: KDiff3FileItemAction (QObject* pParent, const QVariantList & args); virtual ~KDiff3FileItemAction(); // implement pure virtual method from KonqPopupMenuPlugin virtual QList actions( const KFileItemListProperties& fileItemInfos, QWidget* pParentWidget ) const; private slots: void slotCompareWith(); void slotCompareTwoFiles(); void slotCompareThreeFiles(); void slotMergeWith(); void slotMergeThreeWay(); void slotSaveForLater(); void slotClearList(); void slotCompareWithHistoryItem(); void slotAbout(); private: QStringList m_list; QWidget* m_pParentWidget; //KFileItemListProperties m_fileItemInfos; }; #endif kdiff3-0.9.97/AUTHORS0000644000175100001440000000004311626145604013372 0ustar joachimusersJoachim Eibl kdiff3-0.9.97/Doxyfile0000644000175100001440000002123011626145654014036 0ustar joachimusers# Doxyfile 1.3.7-KDevelop #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- PROJECT_NAME = kdiff3 PROJECT_NUMBER = 0.9.85 OUTPUT_DIRECTORY = CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ABBREVIATE_BRIEF = ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = STRIP_FROM_INC_PATH = SHORT_NAMES = NO JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 ALIASES = OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- EXTRACT_ALL = YES EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = NO HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES SORT_BRIEF_DOCS = NO SORT_BY_SCOPE_NAME = NO GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = /home/joachim/kdiff3 FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.idl \ *.odl \ *.C \ *.H \ *.tlh \ *.diff \ *.patch \ *.moc \ *.xpm RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = NO INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = NO TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DOT_IMAGE_FORMAT = png DOT_PATH = DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 0 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO kdiff3-0.9.97/NEWS0000644000175100001440000000002211626145651013020 0ustar joachimusersSee the ChangeLog kdiff3-0.9.97/config-kdiff3.h.cmake0000644000175100001440000000017611626145654016177 0ustar joachimusers/* config-kdiff3.h.cmake. */ /* Define to 1 if you have KDE4 libkonq shared library installed */ #cmakedefine HAVE_LIBKONQ 1 kdiff3-0.9.97/diff_ext_for_kdiff3/0000755000175100001440000000000012010303403016166 5ustar joachimuserskdiff3-0.9.97/diff_ext_for_kdiff3/LICENSE0000644000175100001440000000261611626145653017227 0ustar joachimusersDiff-Ext: Copyright (c) 2003-2006, Sergey Zorin All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. kdiff3-0.9.97/diff_ext_for_kdiff3/class_factory.cpp0000644000175100001440000000304211626145654021555 0ustar joachimusers/* * Copyright (c) 2003, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms * of the BSD license in the LICENSE file provided with this software. * */ #include "class_factory.h" #include "diff_ext.h" #include "server.h" CLASS_FACTORY::CLASS_FACTORY() { _ref_count = 0L; SERVER::instance()->lock(); } CLASS_FACTORY::~CLASS_FACTORY() { SERVER::instance()->release(); } STDMETHODIMP CLASS_FACTORY::QueryInterface(REFIID riid, void** ppv) { HRESULT ret = E_NOINTERFACE; *ppv = 0; if(IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) { *ppv = static_cast(this); AddRef(); ret = NOERROR; } return ret; } STDMETHODIMP_(ULONG) CLASS_FACTORY::AddRef() { return InterlockedIncrement((LPLONG)&_ref_count); } STDMETHODIMP_(ULONG) CLASS_FACTORY::Release() { ULONG ret = 0L; if(InterlockedDecrement((LPLONG)&_ref_count) != 0) ret = _ref_count; else delete this; return ret; } STDMETHODIMP CLASS_FACTORY::CreateInstance(IUnknown* outer, REFIID refiid, void** obj) { HRESULT ret = CLASS_E_NOAGGREGATION; *obj = 0; // Shell extensions typically don't support aggregation (inheritance) if(outer == 0) { DIFF_EXT* ext = new DIFF_EXT(); if(ext == 0) ret = E_OUTOFMEMORY; else ret = ext->QueryInterface(refiid, obj); } return ret; } STDMETHODIMP CLASS_FACTORY::LockServer(BOOL) { return NOERROR; } kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext_for_kdiff3.rc0000644000175100001440000000240711626145653022432 0ustar joachimusers/* * Copyright (c) 2003-2006, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms * of the BSD license in the LICENSE file provided with this software. * */ #include LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US VS_VERSION_INFO VERSIONINFO FILEVERSION 1,6,1,145 PRODUCTVERSION 1,6,1,145 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS VS_FF_DEBUG #else FILEFLAGS 0L #endif FILEOS VOS_NT_WINDOWS32 FILETYPE VFT_DLL FILESUBTYPE VFT_UNKNOWN { BLOCK "StringFileInfo" { BLOCK "040904b0" { VALUE "Comments", "" VALUE "CompanyName", "" VALUE "FileDescription", "diff shell extension" VALUE "FileVersion", "Release 1.6.1" VALUE "InternalName", "diff shell extension" VALUE "LegalCopyright", "Copyright 2003-2005 Sergey Zorin" VALUE "LegalTrademarks", "" VALUE "OriginalFilename", "diff_ext.dll" VALUE "PrivateBuild", "" VALUE "ProductName", "Diff Context Menu Extension" VALUE "ProductVersion", "Release 1.6.1" } } BLOCK "VarFileInfo" { VALUE "Translation", 0x409, 1200 } } kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext.h0000644000175100001440000000344712010036276020152 0ustar joachimusers/* * Copyright (c) 2003-2004, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms * of the BSD license in the LICENSE file provided with this software. * */ #ifndef __diff_ext_h__ #define __diff_ext_h__ #include #include #include #include "server.h" // this is the actual OLE Shell context menu handler class DIFF_EXT : public IContextMenu, IShellExtInit { public: DIFF_EXT(); virtual ~DIFF_EXT(); //IUnknown members STDMETHODIMP QueryInterface(REFIID interface_id, void** result); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); //IShell members STDMETHODIMP QueryContextMenu(HMENU menu, UINT index, UINT cmd_first, UINT cmd_last, UINT flags); STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO info); STDMETHODIMP GetCommandString(UINT_PTR cmd, UINT flags, UINT* reserved, LPSTR name, UINT name_length); //IShellExtInit methods STDMETHODIMP Initialize(LPCITEMIDLIST folder, IDataObject* subj, HKEY key); private: void diff( const tstring& arguments ); void diff_with(unsigned int num, bool bMerge); tstring cut_to_length(const tstring&, size_t length = 64); void initialize_language(); private: UINT m_nrOfSelectedFiles; tstring _file_name1; tstring _file_name2; tstring _file_name3; HINSTANCE _resource; HWND _hwnd; ULONG _ref_count; std::list< tstring >& m_recentFiles; UINT m_id_FirstCmd; UINT m_id_Diff; UINT m_id_DiffWith; UINT m_id_DiffLater; UINT m_id_MergeWith; UINT m_id_Merge3; UINT m_id_Diff3; UINT m_id_DiffWith_Base; UINT m_id_About; UINT m_id_ClearList; }; #endif // __diff_ext_h__ kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext_for_kdiff3.vcproj0000644000175100001440000001120311626145654023324 0ustar joachimusers kdiff3-0.9.97/diff_ext_for_kdiff3/diffextstring.h0000644000175100001440000000660211626145653021252 0ustar joachimusers/* * Copyright (c) 2003, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms of the * BSD license in the LICENSE file provided with this software. * */ #ifndef __string_h__ #define __string_h__ #include #include #include #include class STRING; inline STRING operator+( const STRING& s1, const STRING& s2); class STRING { public: static const int begin = 0; static const int end = -1; public: STRING(const STRING& s) { _str = new TCHAR[s.length()+1]; lstrcpy(_str, s); } STRING(const TCHAR* str = TEXT("")) { _str = new TCHAR[lstrlen(str)+1]; lstrcpy(_str, str); } ~STRING() { delete[] _str; } void resize( size_t newLength ) { size_t oldLength = length(); if ( newLength < oldLength ) { _str[newLength] = 0; // Just truncate the string } else if( newLength>oldLength) { TCHAR* p = new TCHAR[ newLength + 1 ]; lstrcpy(p, _str); for( size_t i=oldLength; i #include class CLASS_FACTORY : public IClassFactory { public: CLASS_FACTORY(); virtual ~CLASS_FACTORY(); //IUnknown members STDMETHODIMP QueryInterface(REFIID, void**); STDMETHODIMP_(ULONG) AddRef(); STDMETHODIMP_(ULONG) Release(); //ICLASS_FACTORY members STDMETHODIMP CreateInstance(IUnknown*, REFIID, void**); STDMETHODIMP LockServer(BOOL); private: ULONG _ref_count; }; #endif //__class_factory_h__ kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext.cpp0000644000175100001440000004512612010036276020505 0ustar joachimusers/* * Copyright (c) 2003-2006, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms * of the BSD license in the LICENSE file provided with this software. * */ #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include "diff_ext.h" #include #include #ifdef UNICODE static void parseString( const std::wstring& s, size_t& i /*pos*/, std::wstring& r /*result*/ ) { size_t size = s.size(); ++i; // Skip initial '"' for( ; i s_translationMap; static tstring s_translationFileName; void readTranslationFile() { s_translationMap.clear(); FILE* pFile = _tfopen( s_translationFileName.c_str(), TEXT("rb") ); if ( pFile ) { MESSAGELOG( TEXT( "Reading translations: " ) + s_translationFileName ); std::vector buffer; try { if ( fseek(pFile, 0, SEEK_END)==0 ) { size_t length = ftell(pFile); // Get the file length buffer.resize(length); fseek(pFile, 0, SEEK_SET ); fread(&buffer[0], 1, length, pFile ); } } catch(...) { } fclose(pFile); if (buffer.size()>0) { size_t bufferSize = buffer.size(); int offset = 0; if ( buffer[0]=='\xEF' && buffer[1]=='\xBB' && buffer[2]=='\xBF' ) { offset += 3; bufferSize -= 3; } size_t sLength = MultiByteToWideChar(CP_UTF8,0,&buffer[offset], (int)bufferSize, 0, 0 ); std::wstring s( sLength, L' ' ); MultiByteToWideChar(CP_UTF8,0,&buffer[offset], (int)bufferSize, &s[0], (int)s.size() ); // Now analyse the file and extract translation strings std::wstring msgid; std::wstring msgstr; msgid.reserve( 1000 ); msgstr.reserve( 1000 ); bool bExpectingId = true; for( size_t i=0; i5 && wcsncmp( &s[i], L"msgid", 5 )==0 ) { if ( !msgid.empty() && !msgstr.empty() ) { s_translationMap[msgid] = msgstr; } bExpectingId = true; msgid.clear(); i+=4; } else if ( sLength-i>6 && wcsncmp( &s[i], L"msgstr", 6 )==0 ) { bExpectingId = false; msgstr.clear(); i+=5; } else { // Unexpected ? } } } } else { ERRORLOG( TEXT( "Reading translations failed: " ) + s_translationFileName ); } } static tstring getTranslation( const tstring& fallback ) { std::map< std::wstring, std::wstring >::iterator i = s_translationMap.find( fallback ); if (i!=s_translationMap.end()) return i->second; return fallback; } #else static tstring getTranslation( const tstring& fallback ) { return fallback; } #endif static void replaceArgs( tstring& s, const tstring& r1, const tstring& r2=TEXT(""), const tstring& r3=TEXT("") ) { tstring arg1 = TEXT("%1"); size_t pos1 = s.find( arg1 ); tstring arg2 = TEXT("%2"); size_t pos2 = s.find( arg2 ); tstring arg3 = TEXT("%3"); size_t pos3 = s.find( arg3 ); if ( pos1 != size_t(-1) ) { s.replace( pos1, arg1.length(), r1 ); if ( pos2 != size_t(-1) && pos1recent_files() ) { LOG(); _resource = SERVER::instance()->handle(); SERVER::instance()->lock(); } DIFF_EXT::~DIFF_EXT() { LOG(); if(_resource != SERVER::instance()->handle()) { FreeLibrary(_resource); } SERVER::instance()->release(); } STDMETHODIMP DIFF_EXT::QueryInterface(REFIID refiid, void** ppv) { HRESULT ret = E_NOINTERFACE; *ppv = 0; if(IsEqualIID(refiid, IID_IShellExtInit) || IsEqualIID(refiid, IID_IUnknown)) { *ppv = static_cast(this); } else if (IsEqualIID(refiid, IID_IContextMenu)) { *ppv = static_cast(this); } if(*ppv != 0) { AddRef(); ret = NOERROR; } return ret; } STDMETHODIMP_(ULONG) DIFF_EXT::AddRef() { return InterlockedIncrement((LPLONG)&_ref_count); } STDMETHODIMP_(ULONG) DIFF_EXT::Release() { ULONG ret = 0L; if(InterlockedDecrement((LPLONG)&_ref_count) != 0) { ret = _ref_count; } else { delete this; } return ret; } STDMETHODIMP DIFF_EXT::Initialize(LPCITEMIDLIST /*folder not used*/, IDataObject* data, HKEY /*key not used*/) { LOG(); #ifdef UNICODE tstring installDir = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("InstallDir") ); tstring language = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("Language") ); tstring translationFileName = installDir + TEXT("\\translations\\diff_ext_") + language + TEXT(".po"); if ( s_translationFileName != translationFileName ) { s_translationFileName = translationFileName; readTranslationFile(); } #endif FORMATETC format = {CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL}; STGMEDIUM medium; medium.tymed = TYMED_HGLOBAL; HRESULT ret = E_INVALIDARG; if(data->GetData(&format, &medium) == S_OK) { HDROP drop = (HDROP)medium.hGlobal; m_nrOfSelectedFiles = DragQueryFile(drop, 0xFFFFFFFF, 0, 0); TCHAR tmp[MAX_PATH]; //initialize_language(); if (m_nrOfSelectedFiles >= 1 && m_nrOfSelectedFiles <= 3) { DragQueryFile(drop, 0, tmp, MAX_PATH); _file_name1 = tmp; if(m_nrOfSelectedFiles >= 2) { DragQueryFile(drop, 1, tmp, MAX_PATH); _file_name2 = tmp; } if( m_nrOfSelectedFiles == 3) { DragQueryFile(drop, 2, tmp, MAX_PATH); _file_name3 = tmp; } ret = S_OK; } } else { SYSERRORLOG(TEXT("GetData")); } return ret; } static int insertMenuItemHelper( HMENU menu, UINT id, UINT position, const tstring& text, UINT fState = MFS_ENABLED, HMENU hSubMenu=0 ) { MENUITEMINFO item_info; ZeroMemory(&item_info, sizeof(item_info)); item_info.cbSize = sizeof(MENUITEMINFO); item_info.wID = id; if (text.empty()) { // Separator item_info.fMask = MIIM_TYPE; item_info.fType = MFT_SEPARATOR; item_info.dwTypeData = 0; } else { item_info.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | (hSubMenu!=0 ? MIIM_SUBMENU : 0); item_info.fType = MFT_STRING; item_info.fState = fState; item_info.dwTypeData = (LPTSTR)text.c_str(); item_info.hSubMenu = hSubMenu; } if ( 0 == InsertMenuItem(menu, position, TRUE, &item_info) ) SYSERRORLOG(TEXT("InsertMenuItem")); return id; } STDMETHODIMP DIFF_EXT::QueryContextMenu(HMENU menu, UINT position, UINT first_cmd, UINT /*last_cmd not used*/, UINT flags) { LOG(); SERVER::instance()->recent_files(); // updates recent files list (reads from registry) m_id_Diff = UINT(-1); m_id_DiffWith = UINT(-1); m_id_DiffLater = UINT(-1); m_id_MergeWith = UINT(-1); m_id_Merge3 = UINT(-1); m_id_Diff3 = UINT(-1); m_id_DiffWith_Base = UINT(-1); m_id_ClearList = UINT(-1); m_id_About = UINT(-1); HRESULT ret = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0); if(!(flags & CMF_DEFAULTONLY)) { /* Menu structure: KDiff3 -> (1 File selected): Save 'selection' for later comparison (push onto history stack) Compare 'selection' with first file on history stack. Compare 'selection' with -> choice from history stack Merge 'selection' with first file on history stack. Merge 'selection' with last two files on history stack. (2 Files selected): Compare 's1' with 's2' Merge 's1' with 's2' (3 Files selected): Compare 's1', 's2' and 's3' */ HMENU subMenu = CreateMenu(); UINT id = first_cmd; m_id_FirstCmd = first_cmd; insertMenuItemHelper( menu, id++, position++, TEXT("") ); // begin separator tstring menuString; UINT pos2=0; if(m_nrOfSelectedFiles == 1) { size_t nrOfRecentFiles = m_recentFiles.size(); tstring menuStringCompare = i18n("Compare with %1"); tstring menuStringMerge = i18n("Merge with %1"); tstring firstFileName; if( nrOfRecentFiles>=1 ) { firstFileName = TEXT("'") + cut_to_length( m_recentFiles.front() ) + TEXT("'"); } replaceArgs( menuStringCompare, firstFileName ); replaceArgs( menuStringMerge, firstFileName ); m_id_DiffWith = insertMenuItemHelper( subMenu, id++, pos2++, menuStringCompare, nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED ); m_id_MergeWith = insertMenuItemHelper( subMenu, id++, pos2++, menuStringMerge, nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED ); //if( nrOfRecentFiles>=2 ) //{ // tstring firstFileName = cut_to_length( m_recentFiles.front() ); // tstring secondFileName = cut_to_length( *(++m_recentFiles.begin()) ); //} m_id_Merge3 = insertMenuItemHelper( subMenu, id++, pos2++, i18n("3-way merge with base"), nrOfRecentFiles >=2 ? MFS_ENABLED : MFS_DISABLED ); menuString = i18n("Save '%1' for later"); replaceArgs( menuString, _file_name1 ); m_id_DiffLater = insertMenuItemHelper( subMenu, id++, pos2++, menuString ); HMENU file_list = CreateMenu(); std::list::iterator i; m_id_DiffWith_Base = id; int n = 0; for( i = m_recentFiles.begin(); i!=m_recentFiles.end(); ++i ) { tstring s = cut_to_length( *i ); insertMenuItemHelper( file_list, id++, n, s ); ++n; } insertMenuItemHelper( subMenu, id++, pos2++, i18n("Compare with ..."), nrOfRecentFiles > 0 ? MFS_ENABLED : MFS_DISABLED, file_list ); m_id_ClearList = insertMenuItemHelper( subMenu, id++, pos2++, i18n("Clear list"), nrOfRecentFiles >=1 ? MFS_ENABLED : MFS_DISABLED ); } else if(m_nrOfSelectedFiles == 2) { //= "Diff " + cut_to_length(_file_name1, 20)+" and "+cut_to_length(_file_name2, 20); m_id_Diff = insertMenuItemHelper( subMenu, id++, pos2++, i18n("Compare") ); } else if ( m_nrOfSelectedFiles == 3 ) { m_id_Diff3 = insertMenuItemHelper( subMenu, id++, pos2++, i18n("3 way comparison") ); } else { // More than 3 files selected? } m_id_About = insertMenuItemHelper( subMenu, id++, pos2++, i18n("About Diff-Ext ...") ); insertMenuItemHelper( menu, id++, position++, TEXT("KDiff3"), MFS_ENABLED, subMenu ); insertMenuItemHelper( menu, id++, position++, TEXT("") ); // final separator ret = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, id-first_cmd); } return ret; } STDMETHODIMP DIFF_EXT::InvokeCommand(LPCMINVOKECOMMANDINFO ici) { HRESULT ret = NOERROR; _hwnd = ici->hwnd; if(HIWORD(ici->lpVerb) == 0) { UINT id = m_id_FirstCmd + LOWORD(ici->lpVerb); if(id == m_id_Diff) { LOG(); diff( TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\"") ); } else if(id == m_id_Diff3) { LOG(); diff( TEXT("\"") + _file_name1 + TEXT("\" \"") + _file_name2 + TEXT("\" \"") + _file_name3 + TEXT("\"") ); } else if(id == m_id_Merge3) { LOG(); std::list< tstring >::iterator iFrom = m_recentFiles.begin(); std::list< tstring >::iterator iBase = iFrom; ++iBase; diff( TEXT("-m \"") + *iBase + TEXT("\" \"") + *iFrom + TEXT("\" \"") + _file_name1 + TEXT("\"") ); } else if(id == m_id_DiffWith) { LOG(); diff_with(0, false); } else if(id == m_id_MergeWith) { LOG(); diff_with(0, true); } else if(id == m_id_ClearList) { LOG(); m_recentFiles.clear(); SERVER::instance()->save_history(); } else if(id == m_id_DiffLater) { MESSAGELOG(TEXT("Diff Later: ")+_file_name1); m_recentFiles.remove( _file_name1 ); m_recentFiles.push_front( _file_name1 ); SERVER::instance()->save_history(); } else if(id >= m_id_DiffWith_Base && id < m_id_DiffWith_Base+m_recentFiles.size()) { LOG(); diff_with(id-m_id_DiffWith_Base, false); } else if(id == m_id_About) { LOG(); std::wstring sBits = i18n("(32 Bit)"); if (sizeof(void*)==8) sBits = i18n("(64 Bit)"); MessageBox( _hwnd, (i18n("Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n") + i18n("This software is distributable under the BSD license.\n") + i18n("Some extensions for KDiff3 (c) 2006-2012 by Joachim Eibl.\n") + i18n("Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n") + i18n("Homepage for KDiff3: http://kdiff3.sourceforge.net")).c_str() , (i18n("About Diff-Ext for KDiff3 ")+sBits).c_str(), MB_OK ); } else { ret = E_INVALIDARG; TCHAR verb[80]; _sntprintf(verb, 79, TEXT("Command id: %d"), LOWORD(ici->lpVerb)); verb[79]=0; ERRORLOG(verb); } } else { ret = E_INVALIDARG; } return ret; } STDMETHODIMP DIFF_EXT::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT*, LPSTR pszName, UINT cchMax) { // LOG(); // Gets called very often HRESULT ret = NOERROR; if(uFlags == GCS_HELPTEXT) { tstring helpString; if( idCmd == m_id_Diff ) { helpString = i18n("Compare selected files"); } else if( idCmd == m_id_DiffWith ) { if(!m_recentFiles.empty()) { helpString = i18n("Compare '%1' with '%2'"); replaceArgs( helpString, _file_name1, m_recentFiles.front() ); } } else if(idCmd == m_id_DiffLater) { helpString = i18n("Save '%1' for later operation"); replaceArgs( helpString, _file_name1 ); } else if((idCmd >= m_id_DiffWith_Base) && (idCmd < m_id_DiffWith_Base+m_recentFiles.size())) { if( !m_recentFiles.empty() ) { unsigned int num = idCmd - m_id_DiffWith_Base; std::list::iterator i = m_recentFiles.begin(); for(unsigned int j = 0; j < num && i != m_recentFiles.end(); j++) i++; if ( i!=m_recentFiles.end() ) { helpString = i18n("Compare '%1' with '%2'"); replaceArgs( helpString, _file_name1, *i ); } } } lstrcpyn( (LPTSTR)pszName, helpString.c_str(), cchMax ); } return ret; } void DIFF_EXT::diff( const tstring& arguments ) { LOG(); STARTUPINFO si; PROCESS_INFORMATION pi; bool bError = true; tstring command = SERVER::instance()->getRegistryKeyString( TEXT(""), TEXT("diffcommand") ); tstring commandLine = TEXT("\"") + command + TEXT("\" ") + arguments; if ( ! command.empty() ) { ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); if (CreateProcess(command.c_str(), (LPTSTR)commandLine.c_str(), 0, 0, FALSE, 0, 0, 0, &si, &pi) == 0) { SYSERRORLOG(TEXT("CreateProcess") + command); } else { bError = false; CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); } } if (bError) { tstring message = i18n("Could not start KDiff3. Please rerun KDiff3 installation."); message += TEXT("\n") + i18n("Command") + TEXT(": ") + command; message += TEXT("\n") + i18n("CommandLine") + TEXT(": ") + commandLine; MessageBox(_hwnd, message.c_str(), i18n("Diff-Ext For KDiff3").c_str(), MB_OK); } } void DIFF_EXT::diff_with(unsigned int num, bool bMerge) { LOG(); std::list::iterator i = m_recentFiles.begin(); for(unsigned int j = 0; j < num && i!=m_recentFiles.end(); j++) { i++; } if ( i!=m_recentFiles.end() ) _file_name2 = *i; diff( (bMerge ? TEXT("-m \"") : TEXT("\"") ) + _file_name2 + TEXT("\" \"") + _file_name1 + TEXT("\"") ); } tstring DIFF_EXT::cut_to_length(const tstring& in, size_t max_len) { tstring ret; if( in.length() > max_len) { ret = in.substr(0, (max_len-3)/2); ret += TEXT("..."); ret += in.substr( in.length()-(max_len-3)/2 ); } else { ret = in; } return ret; } kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext_for_kdiff3.def0000644000175100001440000000032511626145653022561 0ustar joachimusersLIBRARY "diff_ext_for_kdiff3" EXPORTS DllCanUnloadNow=DllCanUnloadNow@0 DllGetClassObject=DllGetClassObject@12 DllRegisterServer=DllRegisterServer@0 DllUnregisterServer=DllUnregisterServer@0 kdiff3-0.9.97/diff_ext_for_kdiff3/README0000644000175100001440000000264211626145653017101 0ustar joachimusersDiff-Ext for KDiff3 - Readme ============================ Authors: Sergey Zorin (Author of diff-ext, see http://diff-ext.sourceforge.net) Joachim Eibl (KDiff3-specific extensions and integration, see http://kdiff3.sourceforge.net) Copyright (c): Original Diff-Ext: Copyright (c) 2003-2006, Sergey Zorin, All rights reserved. Extensions for KDiff3: Copyright (c) 2006, Joachim Eibl License: See file LICENSE in this subdirectory Building: Via MinGW-compiler package (http://www.mingw.org/): Compile via gnu-make (Makefile) Via MSVC2005: Use vcproj-file. Installation: For basic testing you can run "regsvr32 diff_ext_for_kdiff3.dll". To use all features the installation that comes with the KDiff3-setup*.exe is recommended. See also the nsi-file available on the KDiff3-subversion-repository: http://svn.sourceforge.net/viewvc/*checkout*/kdiff3/trunk/kdiff3/windows_installer/kdiff3.nsi Translation: If you would like help translating diff-ext-for-kdiff3 please copy the diff_ext.pot to diff_ext_xx.po (where xx is the language-shortcut). Then edit that file and fill in the msgstr-string for each respective msgid-string. Then place the for in the KDiff3-translations subdirectory. Use the language selection within KDiff3 to switch the language or set the language shortcut in the registry HKEY_CURRENT_USER\Software\KDiff3\diff-ext: Language If everything works, please send me the created file. Have fun, Joachim kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext_de.po0000644000175100001440000000521011626145653021013 0ustar joachimusers# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-09-04 15:35+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: diff_ext.cpp:363 msgid "Compare with %1" msgstr "Vergleichen mit %1" #: diff_ext.cpp:364 msgid "Merge with %1" msgstr "Zusammenführen mit %1" #: diff_ext.cpp:379 msgid "3-way merge with base" msgstr "3-Wege Zusammenführung mit Basis" #: diff_ext.cpp:382 msgid "Save '%1' for later" msgstr "Speichere '%1' für später" #: diff_ext.cpp:404 msgid "Compare with ..." msgstr "Vergleichen mit ..." #: diff_ext.cpp:403 msgid "Compare" msgstr "Vergleichen" #: diff_ext.cpp:403 msgid "Clear list" msgstr "Liste löschen" #: diff_ext.cpp:407 msgid "3 way comparison" msgstr "Vergleiche 3 Dateien" #: diff_ext.cpp:413 msgid "About Diff-Ext ..." msgstr "Über Diff-Ext ..." #: diff_ext.cpp:474 msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" msgstr "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. Alle Rechte vorbehalten.\n" #: diff_ext.cpp:475 msgid "This software is distributable under the BSD license.\n" msgstr "Weitergabe dieses Programms unter den Bedingungen der BSD Lizenz.\n" #: diff_ext.cpp:476 msgid "Some extensions for KDiff3 by Joachim Eibl.\n" msgstr "Einige Erweiterungen für KDiff3 von Joachim Eibl.\n" #: diff_ext.cpp:477 msgid "See the homepage http://diff-ext.sourceforge.net" msgstr "Siehe die Homepage http://diff-ext.sourceforge.net" #: diff_ext.cpp:478 msgid "About Diff-Ext for KDiff3" msgstr "Über Diff-Ext für KDiff3" #: diff_ext.cpp:503 msgid "Compare selected files" msgstr "Vergleiche markierte Dateien" #: diff_ext.cpp:509 diff_ext.cpp:529 msgid "Compare '%1' with '%2'" msgstr "Vergleiche '%1' mit '%2'" #: diff_ext.cpp:515 msgid "Merke '%1' für spätere Aktion" msgstr "" #: diff_ext.cpp:567 msgid "Could not start KDiff3. Please rerun KDiff3 installation." msgstr "Konnte KDiff3 nicht starten. Bitte wiederholen Sie die KDiff3 Installation." #: diff_ext.cpp:568 msgid "Command" msgstr "Kommando" #: diff_ext.cpp:569 msgid "CommandLine" msgstr "Kommandozeile" #: diff_ext.cpp:570 msgid "Diff-Ext For KDiff3" msgstr "Diff-Ext für KDiff3" kdiff3-0.9.97/diff_ext_for_kdiff3/Makefile0000644000175100001440000000230312010036276017637 0ustar joachimusers# Project: diff_ext # Generates diff_ext_for_kdiff3.dll with gcc. # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin) # PROJ := diff_ext_for_kdiff3 CXX ?= g++.exe ifdef DEBUG CXXFLAGS ?= -g else CXXFLAGS ?= -Os LDFLAGS += -s -static-libgcc endif CXXFLAGS += -pedantic -Wall -W -D_UNICODE -DUNICODE LIBS := -luuid -lole32 DEFFILE = $(PROJ).def STATICLIB = $(PROJ).a EXPLIB = $(PROJ).exp SRC-CXX = $(wildcard *.cpp) SRC-RC = $(wildcard *.rc) OBJ := $(SRC-CXX:.cpp=.o) RES := $(SRC-RC:.rc=.res) OBJ += $(RES) DLL := $(PROJ).dll .PHONY: all clean .SUFFIXES: .rc .res all: .depend $(DLL) debug: $(MAKE) DEBUG=YES UNICODE=YES release: $(MAKE) .depend: Makefile $(SRC-RC) $(SRC-CXX) $(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend include .depend clean: del .depend $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB) $(DLL): $(OBJ) dllwrap.exe \ --mno-cygwin \ --def $(DEFFILE) \ --output-exp ${EXPLIB} \ --driver-name c++ -L/usr/local/lib -L/usr/lib/mingw \ --implib $(STATICLIB) \ $(OBJ) $(LDFLAGS) $(LIBS) \ -o $@ .cpp.o: $(CXX) $(CXXFLAGS) -c $< -o $@ .rc.res: windres.exe $< -J rc -o $@ -O coff -DMING kdiff3-0.9.97/diff_ext_for_kdiff3/Makefile_64bit0000755000175100001440000000247311626145654020677 0ustar joachimusers# Project: diff_ext # Generates diff_ext_for_kdiff3.dll with gcc. # Can be used for Cygwin and MingW (MingW ignores -mno-cygwin) # PROJ := diff_ext_for_kdiff3 CXX := x86_64-w64-mingw32-g++.exe ifdef DEBUG CXXFLAGS ?= -g else CXXFLAGS ?= -Os LDFLAGS += -s endif CXXFLAGS += -ansi -pedantic -Wall -W -D_UNICODE -DUNICODE LIBS := -luuid -lole32 DEFFILE = $(PROJ).def STATICLIB = $(PROJ).a EXPLIB = $(PROJ).exp SRC-CXX = $(wildcard *.cpp) SRC-RC = $(wildcard *.rc) OBJ := $(SRC-CXX:.cpp=.o) RES := $(SRC-RC:.rc=.res) OBJ += $(RES) DLL := $(PROJ).dll .PHONY: all clean .SUFFIXES: .rc .res all: .depend $(DLL) debug: $(MAKE) DEBUG=YES UNICODE=YES release: $(MAKE) .depend: Makefile $(SRC-RC) $(SRC-CXX) $(CXX) -M $(CXXFLAGS) $(SRC-RC) $(SRC-CXX) > .depend include .depend clean: clean-custom ${RM} $(OBJ) $(DLL) ${EXPLIB} $(STATICLIB) $(DLL): $(OBJ) x86_64-w64-mingw32-dllwrap.exe \ --mno-cygwin \ --def $(DEFFILE) \ --output-exp ${EXPLIB} \ --driver-name x86_64-w64-mingw32-g++ -static-libgcc -L/Users/Joachim/qt/mingw-w64-bin_i686-mingw_20100105/mingw/lib \ --implib $(STATICLIB) \ $(OBJ) $(LDFLAGS) $(LIBS) \ -o $@ .cpp.o: $(CXX) $(CXXFLAGS) -c $< -o $@ .rc.res: x86_64-w64-mingw32-windres.exe $< -J rc -o $@ -O coff -DMING kdiff3-0.9.97/diff_ext_for_kdiff3/server.h0000644000175100001440000000455611626145654017707 0ustar joachimusers/* * Copyright (c) 2003-2005, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms * of the BSD license in the LICENSE file provided with this software. * */ #ifndef __server_h__ #define __server_h__ #include // std::list //#include #include #if 1 #include // std::wstring #ifdef UNICODE typedef std::wstring tstring; #else typedef std::string tstring; #endif #define i18n(x) getTranslation( TEXT(x) ) #else #include "diffextstring.h" typedef STRING tstring; #define i18n(x) TEXT(x) #endif #define MESSAGELOG( msg ) SERVER::logMessage( __FUNCTION__, __FILE__, __LINE__, msg ) #define LOG() MESSAGELOG( TEXT("") ) #define ERRORLOG( msg ) MESSAGELOG( TEXT("Error: ")+tstring(msg) ) #define SYSERRORLOG( msg ) \ { \ LPTSTR message; \ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, \ GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &message, 0, 0); \ ERRORLOG( (tstring(msg) + TEXT(": ")) + message ); \ LocalFree(message); \ } class SERVER { public: static SERVER* instance(); void initLogging(); public: virtual ~SERVER(); tstring getRegistryKeyString( const tstring& subKey, const tstring& value ); HINSTANCE handle() const; HRESULT do_register(); HRESULT do_unregister(); void lock(); void release(); ULONG reference_count() const { return _reference_count; } std::list< tstring >& recent_files(); void save_history() const; static void logMessage( const char* function, const char* file, int line, const tstring& msg ); private: SERVER(); SERVER(const SERVER&) {} private: LONG _reference_count; std::list* m_pRecentFiles; static SERVER* _instance; tstring m_registryBaseName; FILE* m_pLogFile; }; #endif // __server_h__ kdiff3-0.9.97/diff_ext_for_kdiff3/diff_ext.pot0000644000175100001440000000373511626145653020541 0ustar joachimusers# Diff-ext-for-KDiff3 # Copyright (C) 2006 Joachim Eibl # This file is distributed under the same license as the diff-ext-for-KDiff3 package. # PO-Template created by Joachim Eibl , 2006. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-10-03 06:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: diff_ext.cpp:368 diff_ext.cpp:402 msgid "Compare with" msgstr "" #: diff_ext.cpp:369 msgid "Merge with" msgstr "" #: diff_ext.cpp:384 msgid "3-way merge with base" msgstr "" #: diff_ext.cpp:387 msgid "Save '%1' for later comparison or merge" msgstr "" #: diff_ext.cpp:408 msgid "Compare" msgstr "" #: diff_ext.cpp:412 msgid "3 way comparison" msgstr "" #: diff_ext.cpp:418 msgid "About Diff-Ext ..." msgstr "" #: diff_ext.cpp:482 msgid "Diff-Ext Copyright (c) 2003-2006, Sergey Zorin. All rights reserved.\n" msgstr "" #: diff_ext.cpp:483 msgid "This software is distributable under the BSD license.\n" msgstr "" #: diff_ext.cpp:484 msgid "Some extensions for KDiff3 by Joachim Eibl.\n" msgstr "" #: diff_ext.cpp:485 msgid "Homepage for Diff-Ext: http://diff-ext.sourceforge.net\n" msgstr "" #: diff_ext.cpp:486 msgid "Homepage for KDiff3: http://kdiff3.sourceforge.net" msgstr "" #: diff_ext.cpp:487 msgid "About Diff-Ext for KDiff3" msgstr "" #: diff_ext.cpp:512 msgid "Compare selected files" msgstr "" #: diff_ext.cpp:518 diff_ext.cpp:538 msgid "Compare '%1' with '%2'" msgstr "" #: diff_ext.cpp:524 msgid "Save '%1' for later operation" msgstr "" #: diff_ext.cpp:576 msgid "Could not start KDiff3. Please rerun KDiff3 installation." msgstr "" #: diff_ext.cpp:577 msgid "Command" msgstr "" #: diff_ext.cpp:578 msgid "CommandLine" msgstr "" #: diff_ext.cpp:579 msgid "Diff-Ext For KDiff3" msgstr "" kdiff3-0.9.97/diff_ext_for_kdiff3/server.cpp0000644000175100001440000003273012010036276020220 0ustar joachimusers/* * Copyright (c) 2003-2005, Sergey Zorin. All rights reserved. * * This software is distributable under the BSD license. See the terms * of the BSD license in the LICENSE file provided with this software. * */ #define _WIN32_WINNT 0x0502 #define _CRT_NON_CONFORMING_SWPRINTFS #define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include #include //#include //#include //#include //#include #include "server.h" #include "class_factory.h" #define DllExport __declspec( dllexport ) // registry key util struct struct REGSTRUCT { LPCTSTR subkey; LPCTSTR name; LPCTSTR value; }; SERVER* SERVER::_instance = 0; static HINSTANCE server_instance; // Handle to this DLL itself. //DEFINE_GUID(CLSID_DIFF_EXT, 0xA0482097, 0xC69D, 0x4DEC, 0x8A, 0xB6, 0xD3, 0xA2, 0x59, 0xAC, 0xC1, 0x51); // New class id for DIFF_EXT for KDiff3 #ifdef _WIN64 // {34471FFB-4002-438b-8952-E4588D0C0FE9} DEFINE_GUID( CLSID_DIFF_EXT, 0x34471FFB, 0x4002, 0x438b, 0x89, 0x52, 0xE4, 0x58, 0x8D, 0x0C, 0x0F, 0xE9 ); #else DEFINE_GUID( CLSID_DIFF_EXT, 0x9f8528e4, 0xab20, 0x456e, 0x84, 0xe5, 0x3c, 0xe6, 0x9d, 0x87, 0x20, 0xf3 ); #endif tstring SERVER::getRegistryKeyString( const tstring& subKey, const tstring& value ) { tstring keyName = m_registryBaseName; if (!subKey.empty()) keyName += TEXT("\\")+subKey; HKEY key; HKEY baseKey = HKEY_CURRENT_USER; tstring result; for(;;) { if( RegOpenKeyEx( baseKey, keyName.c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &key ) == ERROR_SUCCESS ) { DWORD neededSizeInBytes = 0; if (RegQueryValueEx(key, value.c_str(), 0, 0, 0, &neededSizeInBytes) == ERROR_SUCCESS) { DWORD length = neededSizeInBytes / sizeof( TCHAR ); result.resize( length ); if ( RegQueryValueEx( key, value.c_str(), 0, 0, (LPBYTE)&result[0], &neededSizeInBytes ) == ERROR_SUCCESS) { //Everything is ok, but we want to cut off the terminating 0-character result.resize( length - 1 ); RegCloseKey(key); return result; } else { result.resize(0); } } RegCloseKey(key); } if (baseKey==HKEY_LOCAL_MACHINE) break; baseKey = HKEY_LOCAL_MACHINE; } // Error { LPTSTR message; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &message, 0, 0); ERRORLOG( (tstring(TEXT("RegOpenKeyEx: ")+keyName+TEXT("->")+value) + TEXT(": ")) + message ); \ LocalFree(message); } return result; } STDAPI DllCanUnloadNow(void) { HRESULT ret = S_FALSE; if(SERVER::instance()->reference_count() == 0) { ret = S_OK; } return ret; } extern "C" int APIENTRY DllMain(HINSTANCE instance, DWORD reason, LPVOID /* reserved */) { // char str[1024]; // char* reason_string[] = {"DLL_PROCESS_DETACH", "DLL_PROCESS_ATTACH", "DLL_THREAD_ATTACH", "DLL_THREAD_DETACH"}; // sprintf(str, "instance: %x; reason: '%s'", instance, reason_string[reason]); // MessageBox(0, str, TEXT("Info"), MB_OK); switch (reason) { case DLL_PROCESS_ATTACH: server_instance = instance; SERVER::instance()->save_history(); MESSAGELOG(TEXT("DLL_PROCESS_ATTACH")); break; case DLL_PROCESS_DETACH: MESSAGELOG(TEXT("DLL_PROCESS_DETACH")); SERVER::instance()->save_history(); break; } return 1; } STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** class_object) { HRESULT ret = CLASS_E_CLASSNOTAVAILABLE; *class_object = 0; if (IsEqualIID(rclsid, CLSID_DIFF_EXT)) { CLASS_FACTORY* pcf = new CLASS_FACTORY(); ret = pcf->QueryInterface(riid, class_object); } return ret; } /*extern "C" HRESULT STDAPICALLTYPE*/ STDAPI DllRegisterServer() { return SERVER::instance()->do_register(); } STDAPI DllUnregisterServer() { return SERVER::instance()->do_unregister(); } SERVER* SERVER::instance() { if(_instance == 0) { _instance = new SERVER(); _instance->initLogging(); MESSAGELOG(TEXT("New Server instance")); } return _instance; } SERVER::SERVER() : _reference_count(0) { m_registryBaseName = TEXT("Software\\KDiff3\\diff-ext"); m_pRecentFiles = 0; m_pLogFile = 0; } void SERVER::initLogging() { tstring logFileName = getRegistryKeyString( TEXT(""), TEXT("LogFile") ); if ( !logFileName.empty() ) { m_pLogFile = _tfopen( logFileName.c_str(), TEXT("a+, ccs=UTF-8") ); if (m_pLogFile) { _ftprintf( m_pLogFile, TEXT("\nSERVER::SERVER()\n") ); } } } SERVER::~SERVER() { if ( m_pLogFile ) { _ftprintf( m_pLogFile, TEXT("SERVER::~SERVER()\n\n") ); fclose( m_pLogFile ); } delete m_pRecentFiles; } HINSTANCE SERVER::handle() const { return server_instance; } void SERVER::lock() { InterlockedIncrement(&_reference_count); } void SERVER::release() { InterlockedDecrement(&_reference_count); //if(InterlockedDecrement((LPLONG)&_reference_count) == 0) // delete this; } void SERVER::logMessage( const char* function, const char* file, int line, const tstring& msg ) { SERVER* pServer = SERVER::instance(); if ( pServer && pServer->m_pLogFile ) { SYSTEMTIME st; GetSystemTime( &st ); _ftprintf( pServer->m_pLogFile, TEXT("%04d/%02d/%02d %02d:%02d:%02d ") #ifdef UNICODE TEXT("%S (%S:%d) %s\n"), // integrate char-string into wchar_t string #else TEXT("%s (%s:%d) %s\n"), #endif st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, function, file, line, msg.c_str() ); fflush(pServer->m_pLogFile); } } std::list& SERVER::recent_files() { LOG(); if ( m_pRecentFiles==0 ) { m_pRecentFiles = new std::list; } else { m_pRecentFiles->clear(); } MESSAGELOG(TEXT("Reading history from registry...")); for( int i=0; i<32; ++i ) // Max history size { TCHAR numAsString[10]; _sntprintf( numAsString, 10, TEXT("%d"), i ); tstring historyItem = getRegistryKeyString( TEXT("history"), numAsString ); if ( ! historyItem.empty() ) m_pRecentFiles->push_back( historyItem ); } return *m_pRecentFiles; } void SERVER::save_history() const { if( m_pRecentFiles ) { HKEY key; if( RegCreateKeyEx(HKEY_CURRENT_USER, (m_registryBaseName + TEXT("\\history")).c_str(), 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_WOW64_64KEY, 0, &key, 0) == ERROR_SUCCESS ) { LOG(); //DWORD len = MAX_PATH; int n = 0; std::list::const_iterator i; for(i = m_pRecentFiles->begin(); i!=m_pRecentFiles->end(); ++i, ++n ) { tstring str = *i; TCHAR numAsString[10]; _sntprintf( numAsString, 10, TEXT("%d"), n ); if(RegSetValueEx(key, numAsString, 0, REG_SZ, (const BYTE*)str.c_str(), (DWORD)(str.size()+1)*sizeof(TCHAR) ) != ERROR_SUCCESS) { LPTSTR message; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language (LPTSTR) &message, 0, 0); MessageBox(0, message, TEXT("KDiff3-diff-ext: Save history failed"), MB_OK | MB_ICONINFORMATION); LocalFree(message); } } for(; n<32; ++n ) { TCHAR numAsString[10]; _sntprintf( numAsString, 10, TEXT("%d"), n ); RegDeleteValue(key, numAsString ); } RegCloseKey(key); } else { SYSERRORLOG(TEXT("RegOpenKeyEx")); } } } HRESULT SERVER::do_register() { LOG(); TCHAR class_id[MAX_PATH]; LPWSTR tmp_guid; HRESULT ret = SELFREG_E_CLASS; if (StringFromIID(CLSID_DIFF_EXT, &tmp_guid) == S_OK) { #ifdef UNICODE _tcsncpy(class_id, tmp_guid, MAX_PATH); #else wcstombs(class_id, tmp_guid, MAX_PATH); #endif CoTaskMemFree((void*)tmp_guid); TCHAR subkey[MAX_PATH]; TCHAR server_path[MAX_PATH]; HKEY key; LRESULT result = NOERROR; DWORD dwDisp; GetModuleFileName(SERVER::instance()->handle(), server_path, MAX_PATH); REGSTRUCT entry[] = { {TEXT("Software\\Classes\\CLSID\\%s"), 0, TEXT("diff-ext-for-kdiff3")}, {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), 0, TEXT("%s")}, {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), TEXT("ThreadingModel"), TEXT("Apartment")} }; for(unsigned int i = 0; (i < sizeof(entry)/sizeof(entry[0])) && (result == NOERROR); i++) { _sntprintf(subkey, MAX_PATH, entry[i].subkey, class_id); result = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp); if(result == NOERROR) { TCHAR szData[MAX_PATH]; _sntprintf(szData, MAX_PATH, entry[i].value, server_path); szData[MAX_PATH-1]=0; result = RegSetValueEx(key, entry[i].name, 0, REG_SZ, (LPBYTE)szData, DWORD(_tcslen(szData)*sizeof(TCHAR))); } RegCloseKey(key); } if(result == NOERROR) { result = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Classes\\*\\shellex\\ContextMenuHandlers\\diff-ext-for-kdiff3"), 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp); if(result == NOERROR) { result = RegSetValueEx(key, 0, 0, REG_SZ, (LPBYTE)class_id, DWORD(_tcslen(class_id)*sizeof(TCHAR))); RegCloseKey(key); //If running on NT, register the extension as approved. OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(osvi); GetVersionEx(&osvi); // NT needs to have shell extensions "approved". if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { result = RegCreateKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), 0, 0, REG_OPTION_NON_VOLATILE, KEY_WRITE, 0, &key, &dwDisp); if(result == NOERROR) { TCHAR szData[MAX_PATH]; lstrcpy(szData, TEXT("diff-ext")); result = RegSetValueEx(key, class_id, 0, REG_SZ, (LPBYTE)szData, DWORD(_tcslen(szData)*sizeof(TCHAR))); RegCloseKey(key); ret = S_OK; } else if (result == ERROR_ACCESS_DENIED) { TCHAR msg[] = TEXT("Warning! You have unsufficient rights to write to a specific registry key.\n") TEXT("The application may work anyway, but it is advised to register this module ") TEXT("again while having administrator rights."); MessageBox(0, msg, TEXT("Warning"), MB_ICONEXCLAMATION); ret = S_OK; } } else { ret = S_OK; } } } } return ret; } HRESULT SERVER::do_unregister() { LOG(); TCHAR class_id[MAX_PATH]; LPWSTR tmp_guid; HRESULT ret = SELFREG_E_CLASS; if (StringFromIID(CLSID_DIFF_EXT, &tmp_guid) == S_OK) { #ifdef UNICODE _tcsncpy(class_id, tmp_guid, MAX_PATH); #else wcstombs(class_id, tmp_guid, MAX_PATH); #endif CoTaskMemFree((void*)tmp_guid); LRESULT result = NOERROR; TCHAR subkey[MAX_PATH]; REGSTRUCT entry[] = { {TEXT("Software\\Classes\\CLSID\\%s\\InProcServer32"), 0, 0}, {TEXT("Software\\Classes\\CLSID\\%s"), 0, 0} }; for(unsigned int i = 0; (i < sizeof(entry)/sizeof(entry[0])) && (result == NOERROR); i++) { _stprintf(subkey, entry[i].subkey, class_id); result = RegDeleteKey(HKEY_CURRENT_USER, subkey); } if(result == NOERROR) { result = RegDeleteKey(HKEY_CURRENT_USER, TEXT("Software\\Classes\\*\\shellex\\ContextMenuHandlers\\diff-ext-for-kdiff3")); if(result == NOERROR) { //If running on NT, register the extension as approved. OSVERSIONINFO osvi; osvi.dwOSVersionInfoSize = sizeof(osvi); GetVersionEx(&osvi); // NT needs to have shell extensions "approved". if(osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) { HKEY key; RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"), 0, KEY_ALL_ACCESS, &key); result = RegDeleteValue(key, class_id); RegCloseKey(key); if(result == ERROR_SUCCESS) { ret = S_OK; } } else { ret = S_OK; } } } } return ret; }