The answer depends on whether or not you use a language package like babel or polyglossia.
Without babel or polyglossia
Names like "Figure" and "Contents" are stored in macros like \figurename and \contentsname, i.e., to change them, you have to change the definition of the respective macros. Add the following to your preamble:
\renewcommand{\figurename}{Fig.}
\renewcommand{\contentsname}{Table of Contents}
Here's a list of the "name macros" (and their default meaning) defined by the LaTeX standard classes article, book, and report:
\abstractname [only article, report]: Abstract
\appendixname: Appendix
\bibname [only book, report]: Bibliography
\chaptername [only book, report]: Chapter
\contentsname: Contents
\figurename: Figure
\indexname: Index
\listfigurename: List of Figures
\listtablename: List of Tables
\partname: Part
\refname [only article]: References
\tablename: Table
Other classes and packages may define additional "name macros"; here are some you're likely to come up against (plus their source):
\acronymname [glossaries]: Acronyms
\alsoname [makeidx]: see also
\ccname [letter]: cc
\enclname [letter]: encl
\glossaryname [glossaries]: Glossary
\headtoname [letter]: To
\lstlistingname [listings]: Listing (the environment)
\lstlistlistingname [listings]: Listings (the "List of")
\nomname [nomencl]: Nomenclature
\notesname [endnotes]: Notes
\pagename [letter]: Page
\prefacename [babel]: Preface
\proofname [amsthm]: Proof
\seename [makeidx]: see (misdefined as "see also" in the AMS classes)
\seeonlyname [AMS classes]: see
With babel
There is a specific macro to redefine (or define) captions, as shown:
\setlocalecaption{english}{contents}{Table of Contents}
\setlocalecaption{arabic}{abstract}{ملخص}
\setlocalecaption{ancientgreek}{also}{ὃρα ὡσαύτως}
The first argument is the language, the second argument is a shortened name of the caption, so that contents defines \contentsname, and the last is the string. You shouldn’t add any macros to switch the direction or the script, because babel takes care of that. There are other ways to modify the captions, but this is the recommended one.
With polyglossia
The same principles as sec. “Without babel or polyglossia” apply – with one crucial difference: for every language, "name macros" must be redefined in the argument of \addto\captions<language> (instead of a simple \renewcommand). That is, for the English language, you'd have to add the following to your preamble (after loading polyglossia):
\addto\captionsenglish{%
\renewcommand{\figurename}{Fig.}%
\renewcommand{\contentsname}{Table of Contents}%
}
Don’t forget to add a % at the end of line after each redefinition.
Changing "Bibliography" and "References" with biblatex
The biblatex package is an exception to the rule: It uses "bibliography strings" for (among other things) the headings of bibliographies, so redefining \bibname or \refname won't work (whether you use babel or not). To rename both "Bibliography" and "References" to "Works Cited" for the English language, add the following to your preamble:
\DefineBibliographyStrings{english}{%
bibliography = {Works Cited},
references = {Works Cited},
}
Afterword
"Name macros" should only contain the string to be printed. Don't add formatting instructions like \renewcommand{\contentsname}{\vspace{20pt}{\Huge Table of Contents}} – they may "work" in the document body, but are likely to play havoc with, e.g., headers and bookmarks. To change the formatting of the "Contents" heading, either redefine \tableofcontents as shown in this answer or, if you want your changes to apply to all sectioning headings, have a look at the titlesec package. For captions, the caption package offers a host of customization possibilities.
\seenamewas badly misdefined in the original release (to be "see also"), but since it was too late to fix it by the time someone complained,\seeonlyname( = "see") was added to provide the correct value. is it worth adding this to the list? – barbara beeton Nov 17 '12 at 16:23\addto\captionsbritishworks for me in changing 'Bibliography' to 'References' even in the presence of the babel package. This contrasts lockstep's answer but I can't really explain why or how it happened. – Sep 11 '13 at 17:02\addtoroutine is obsolete for some languages (French, Spanish, and others). The new way is\renewcommand\frenchfigurename{Figure}, wherefrenchis your language andfigureis to be replaced with the float/element in question. – Felix Emanuel Sep 06 '18 at 15:38