Due to a new law in Québec that required French language versions of video games to be provided for sale if they exist elsewhere, HeartGold was the first Pokémon game in Canada to be offered entirely in French. The game itself was identical to the version sold in France, making it incompatible with the Pal Park, Poke Transfer, and Dream Radar features in the releases of the other, English-language games that had been available up to this point. However, it still got a unique country code for the serial number: CDF.
Unlike most Canadian products, including previous Pokémon games, the box for this version of HeartGold was entirely in French. Legally, "games designed for use in a specific language" is listed as an exception to the usual prohibition on monolingual product packaging, so this was legal. This version's packaging was nearly identical to France's packaging, just with an added "Play in French" logo, so it displayed a PEGI rating.
Since this was an official release, it was likely offered at the usual mainstream video game outlets (e.g., EB Games).
It may interest you to know that the French release was viewed unfavorably by some people, as French-language materials displaced some of the English and bilingual materials that older fans had grown familiar with. Up to this point, even translated content (such as the anime) had retained the English names for people and Pokémon. Since Pokémon have different names in France, copying the content used there without any further localization contributed to a divide in communication where different fans in the same geographical region are now learning totally different names for the same Pokémon. Additionally, the use of European French instead of Canadian French is a sensitive cultural issue for some Québécois.
Source