Traffic signs are one of the most important real world user interfaces. Their role is to coordinate that actions of drivers, each of whom is managing about 400,000 Joules of energy within a few metres of other drivers through a very information-sparse interface. (You can assume that drivers are neither extremely perceptive, nor extremely analytical, nor even aware of the difficulty of the problem they are solving. 400,000 Joules is the amount of energy that is dissipated when a typical car driving 72 kph comes to a stop.) Thus, road signs occur in a very demanding, mission-critical application, and their user interface qualities must be good.
Road signs should, of course, contain as little language as possible. Why? (Two reasons. The first one you think of is the less important one.) There is an international code for road signs, which specifies:
What is the international code for common signs?
Of course, this is only the explicit information in a road sign. The explicit information is essential to understand, and licensing regulations everywhere require drivers to understand the meaning off all road signs. But, there is other information which is just as important: the context in which the road sign appears. A trivial example: a red octagon means `stop', but where should the driver stop? as soon as they see the sign? a specific distance from the sign? Obviously not. There is a white line painted on the pavement, associated with the sign, and the driver is to stop with the front of the car at that location. The relative positions of the sign, of the line, of the road configuration, and the surrounding objects determine that association. That is, the sign and its context tell the driver what to do, just as in the user interface, the presentation of the interface components combines with the context in which the presentation occurs to provide information on the basis of which the user decides what to do.
As much as possible, highway engineers try to create roads with obvious locations for signs, so that their meaning is obvious to the driver, but sometimes this is impossible.
Are there any signs that retain ambiguity even when their context is taken into account?
There are a few other things you should consider while doing this.