French pronunciation follows strict rules based on spelling, but French spelling is often based more on history than phonology. The rules for pronunciation vary between dialects, but the standard rules are:
~ liaison or linking: Final single consonants, in particular s, x, z, t, d, n and m, are normally silent. (The final letters 'c', 'r', 'f', and 'l' however are normally pronounced.) When the following word begins with a vowel, though, a silent consonant may once again be pronounced, to provide a "link" between the two words and avoid a glottal stop between them. Some liaisons are mandatory, for example the s in les amants or vous avez; some are optional, depending on dialect and register, for example the first s in deux cents euros or euros irlandais; and some are forbidden, for example the s in beaucoup d'hommes aiment. The t of et is never pronounced and the silent final consonant of a noun is only pronounced in the plural and in set phrases like pied-à-terre. Doubling a final consonant and adding a silent e at the end of a word (e.g. Parisien --> Parisienne) makes it clearly pronounced, always.
~ elision or vowel dropping: Monosyllabic words such as je or que drop their final vowel before another word beginning with a vowel. The missing vowel is replaced by an apostrophe. (e.g. je ai is instead pronounced and spelled --> j'ai)
~ nasal "n" and "m". When "n" or "m" follows a vowel combination, the "n" and "m" become silent and cause the preceding vowel to become nasalized (i.e. pronounced with the soft palate extended downward so as to allow part of the air to leave through the nostrils). Exceptions are when the "n" or "m" is doubled, or immediately followed by a vowel. The prefixes en- and em- are always nasalized. The rules get more complex than this but may vary between dialects.
~ digraphs: French does not introduce extra letters or diacritics to specify its large range of vowel sounds and diphthongs, rather it uses specific combinations of vowels, sometimes with following consonants, to show which sound is intended. (See French phonology and orthography or French Pronunciation Guide for more details.)
~ accents are used sometimes for pronunciation, sometimes to distinguish
similar words, and sometimes for etymology alone.
Accents that affect pronunciation:
+ dieresis (e.g. naïve, Noël) as in English, specifies that this vowel is pronounced separately from the preceding one (or following one in some cases), not combined,
+ the "ç" means that the letter c is pronounced /s/ in front of A, O, or U. ("c" is otherwise hard /k/ before a hard vowel.)
Accents that don't affect pronunciation:
+ The circumflex does not affect the pronunciation of the letters i or u, and in most dialects, a as well.
+ All other accents are used only to distinguish similar words or for etymological reasons, as in the case of distinguishing the adverbs là and où ("there", "where") from the article la and the conjunction ou ("the fem. sing.", "or") respectively.