local と locale は英語だと区別がつく発音だが、
カタカナで書くと両方「ローカル」になって区別がつかない。
そのために後者を「ロケール」と書いて区別がつくようにしている。
化学の世界でも allyl と aryl が両方「アリル」になって区別がつかないから
後者を「アリール」と書くようにしている。
カタカナ語にはいろいろな制約と慣習があるから、
英語の発音通りになるとは限らない。

warning に関しては "war" は「ウォー」 "warm" は「ウォーム」 と書かれるし、
「ウォーニング」としたところで別に区別がつかない別の語があるわけでもないので、
「ウォーニング」にするのが妥当。