Is there an option which changes default title of table of contents in Org mode?
My document is not in English so I want to translate table of content's title.

Answer

As JeanPierre said, It's about export settings. You can set LANGUAGE at the top of your org document this way:

#+LANGUAGE: fr

And French will be used as default language of all strings that org produces during export.
The constant responsible for translation mappings is org-export-dictionary in ox.el and if your language is not supported you can drop it there and then eval-defun to let change take place. In my case:

As JeanPierre answer pointed, you need to specify the language export setting. For French the next line does the work:

#+LANGUAGE: fr

No all languages are supported and, as you said, is possible to see which ones are viewing the org-latex-export-dictionary variable (you can use the emacs command C-h v then write the variable name). Some languages might be only partially supported or not supported at all like Serbian. If you want it to work with an unsupported language add the translated strings to the variable and preferably send them to the devs so it ends up org-mode.

LaTex and PDF

If you are exporting to LaTex and want to let Babel change the text use:

#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[AUTO]{babel}

This will work in both HTML and latex as the AUTO keyword will be substituted by the corresponding Babel language name. To view which languages are supported view the org-latex-babel-language-alist variable. Not all languages available in Babel are there but Serbian is and works (tested it and "Contents" appears as "Sadržaj").

If your language is not in org-latex-babel-language-alist but is available in babel, like Breton, use:

#+LANGUAGE: br
#+LATEX_HEADER: \usepackage[breton]{babel}

As Breton is not in org-latex-export-dictionary theLANGUAGE variable won't do anything for HTML export, it will be in English, but is necessary. That's because what will end up in the LaTex file will be \usepackage[breton, <default-lang>]{babel} where default-lang will be English if LANGUAGE is not present and the last language is considered the default by Babel. As br is not in org-latex-babel-language-alist we end up with \usepackage[breton, ]{babel}, there Breton is the default.

If Breton is added to org-latex-babel-language-alist it will work anyway (\usepackage[breton, breton]{babel}). If Breton is included in org-latex-export-dictionary it will now work in HTML too. If Breton wasn't supported by babel it will work anyway but be in English, so this configuration is the one who gives you as much in the specified language as possible with English as a fall back. I rather use AUTO if available as there is only one place to put the language.

If you don't like what Babel puts as "Contents" but still want to use it you can do something like:

I currently don't have LATEX environment set so I can't try it with PDF. Now I want to export to ODT and HTML so LATEX command doesn't help here (tell me if I'm wrong).
– fokiMar 27 '16 at 8:27

1

When exporting to LaTeX, you'd better use LaTeX's own handling of languages \usepackage[mylanguage]{babel}.
– JeanPierreMar 27 '16 at 13:45

@JeanPierre I've just noticed a weird behavior. Tyler's approach don't work for me, but behavior manifested using JeanPierre's is even more interesting - I have declared both, #+LANGUAGE: fr and #+LATEX_HEADER: \usepackage[english]{babel} and in this case Latex export respects the first setting and translates strings in French counterparts. If I declare de in the first and french or frenchb in the second - de is used. I've also noticed that in described cases exporter does not use org-export-dictionary, more likely it use Latex languages. Have any idea?
– fokiMar 30 '16 at 12:13

Strange, if I use #+LANGUAGE: fr on it's own, it is ignored - the output LaTeX is in English. If I use it and #+LATEX_HEADER: \usepackage[english]{babel}, the resulting LaTeX includes the line \usepackage[english, frenchb]{babel}. And if I only use #+LATEX_HEADER: \usepackage[french]{babel}, without setting LANGUAGE:, what actually gets inserted is \usepackage[frenchb, english]{babel}. None of them change the PDF, it's always English.
– TylerMar 30 '16 at 15:32